AParser$TextureAtlas.smali
.class public Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;
.super Ljava/lang/Object;
.source "AParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/censivn/C3DEngine/parser/AParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x4
name = "TextureAtlas"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas$BitmapHeightComparer;
}
.end annotation
# instance fields
.field private atlas:Landroid/graphics/Bitmap;
.field private atlasElement:Lcom/censivn/C3DEngine/api/element/TextureElement;
.field private bitmaps:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;",
">;"
}
.end annotation
.end field
.field final synthetic this$0:Lcom/censivn/C3DEngine/parser/AParser;
# direct methods
.method public constructor <init>(Lcom/censivn/C3DEngine/parser/AParser;)V
.registers 3
.prologue
.line 136
iput-object p1, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->this$0:Lcom/censivn/C3DEngine/parser/AParser;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 137
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
.line 138
return-void
.end method
# virtual methods
.method public addBitmapAsset(Lcom/censivn/C3DEngine/Engine;Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;)V
.registers 7
.prologue
const/4 v2, 0x0
.line 143
iget-object v0, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
invoke-virtual {p0, v0}, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->getBitmapAssetByResourceID(Ljava/lang/String;)Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
move-result-object v0
.line 145
if-nez v0, :cond_59
.line 146
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->this$0:Lcom/censivn/C3DEngine/parser/AParser;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser;->resources:Landroid/content/res/Resources;
iget-object v1, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
invoke-virtual {v0, v1, v2, v2}, Landroid/content/res/Resources;->getIdentifier(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
move-result v0
.line 147
if-nez v0, :cond_30
.line 148
const-string v0, "Censivn3D"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Texture not found: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
iget-object v2, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 162
:goto_2f
return-void
.line 152
:cond_30
const-string v1, "Censivn3D"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Adding texture "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
iget-object v3, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 154
invoke-static {p1, v0}, Lcom/censivn/C3DEngine/utils/Utils;->makeBitmapFromResourceId(Lcom/censivn/C3DEngine/Engine;I)Landroid/graphics/Bitmap;
move-result-object v0
.line 155
const/4 v1, 0x1
iput-boolean v1, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->useForAtlasDimensions:Z
.line 156
iput-object v0, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
.line 161
:goto_53
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_2f
.line 158
:cond_59
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
iput-object v0, p2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
goto :goto_53
.end method
.method public cleanup()V
.registers 4
.prologue
.line 259
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v2
.line 261
const/4 v0, 0x0
move v1, v0
:goto_8
if-ge v1, v2, :cond_1b
.line 262
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 261
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_8
.line 265
:cond_1b
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlas:Landroid/graphics/Bitmap;
if-eqz v0, :cond_24
.line 266
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlas:Landroid/graphics/Bitmap;
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 267
:cond_24
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 268
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->this$0:Lcom/censivn/C3DEngine/parser/AParser;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser;->vertices:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 269
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->this$0:Lcom/censivn/C3DEngine/parser/AParser;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser;->texCoords:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 270
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->this$0:Lcom/censivn/C3DEngine/parser/AParser;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser;->normals:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 271
return-void
.end method
.method public generate()V
.registers 24
.prologue
.line 176
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
new-instance v3, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas$BitmapHeightComparer;
const/4 v4, 0x0
move-object/from16 v0, p0
invoke-direct {v3, v0, v4}, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas$BitmapHeightComparer;-><init>(Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;Lcom/censivn/C3DEngine/parser/AParser$1;)V
invoke-static {v2, v3}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 178
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v2
if-nez v2, :cond_1a
.line 222
:cond_19
return-void
.line 181
:cond_1a
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
const/4 v3, 0x0
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
move-object/from16 v18, v2
check-cast v18, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.line 182
const/16 v20, 0x0
.line 183
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v22
.line 184
const/4 v14, 0x0
.line 185
const/4 v15, 0x0
.line 187
const/4 v2, 0x0
move v3, v2
:goto_35
move/from16 v0, v22
if-ge v3, v0, :cond_5e
.line 188
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
iget-boolean v2, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->useForAtlasDimensions:Z
if-eqz v2, :cond_106
.line 189
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
iget-object v2, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v2
add-int v2, v2, v20
.line 187
:goto_59
add-int/lit8 v3, v3, 0x1
move/from16 v20, v2
goto :goto_35
.line 192
:cond_5e
move-object/from16 v0, v18
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v2
sget-object v3, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
move/from16 v0, v20
invoke-static {v0, v2, v3}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v2
move-object/from16 v0, p0
iput-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlas:Landroid/graphics/Bitmap;
.line 194
const/4 v2, 0x0
move/from16 v21, v2
:goto_75
move/from16 v0, v21
move/from16 v1, v22
if-ge v0, v1, :cond_19
.line 195
move-object/from16 v0, p0
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
move/from16 v0, v21
invoke-virtual {v2, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v2
move-object/from16 v19, v2
check-cast v19, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.line 196
move-object/from16 v0, v19
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
move-object/from16 v0, p0
invoke-virtual {v0, v2}, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->getBitmapAssetByResourceID(Ljava/lang/String;)Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
move-result-object v2
.line 198
move-object/from16 v0, v19
iget-boolean v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->useForAtlasDimensions:Z
if-eqz v3, :cond_ed
.line 199
move-object/from16 v0, v19
iget-object v2, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
.line 200
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getWidth()I
move-result v5
.line 201
invoke-virtual {v2}, Landroid/graphics/Bitmap;->getHeight()I
move-result v9
.line 202
mul-int v3, v5, v9
new-array v3, v3, [I
.line 204
const/4 v4, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
move v8, v5
invoke-virtual/range {v2 .. v9}, Landroid/graphics/Bitmap;->getPixels([IIIIIII)V
.line 205
move-object/from16 v0, p0
iget-object v10, v0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlas:Landroid/graphics/Bitmap;
const/4 v12, 0x0
move-object v11, v3
move v13, v5
move/from16 v16, v5
move/from16 v17, v9
invoke-virtual/range {v10 .. v17}, Landroid/graphics/Bitmap;->setPixels([IIIIIII)V
.line 207
int-to-float v3, v14
move/from16 v0, v20
int-to-float v4, v0
div-float/2addr v3, v4
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uOffset:F
.line 208
const/4 v3, 0x0
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vOffset:F
.line 209
int-to-float v3, v5
move/from16 v0, v20
int-to-float v4, v0
div-float/2addr v3, v4
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uScale:F
.line 210
int-to-float v3, v9
move-object/from16 v0, v18
iget-object v4, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->bitmap:Landroid/graphics/Bitmap;
invoke-virtual {v4}, Landroid/graphics/Bitmap;->getHeight()I
move-result v4
int-to-float v4, v4
div-float/2addr v3, v4
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vScale:F
.line 212
add-int/2addr v14, v5
.line 213
invoke-virtual {v2}, Landroid/graphics/Bitmap;->recycle()V
.line 194
:goto_e8
add-int/lit8 v2, v21, 0x1
move/from16 v21, v2
goto :goto_75
.line 215
:cond_ed
iget v3, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uOffset:F
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uOffset:F
.line 216
iget v3, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vOffset:F
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vOffset:F
.line 217
iget v3, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uScale:F
move-object/from16 v0, v19
iput v3, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->uScale:F
.line 218
iget v2, v2, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vScale:F
move-object/from16 v0, v19
iput v2, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->vScale:F
goto :goto_e8
:cond_106
move/from16 v2, v20
goto/16 :goto_59
.end method
.method public getBitmap()Landroid/graphics/Bitmap;
.registers 2
.prologue
.line 225
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlas:Landroid/graphics/Bitmap;
return-object v0
.end method
.method public getBitmapAssetByName(Ljava/lang/String;)Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.registers 5
.prologue
.line 248
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v2
.line 250
const/4 v0, 0x0
move v1, v0
:goto_8
if-ge v1, v2, :cond_27
.line 251
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->key:Ljava/lang/String;
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_23
.line 252
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.line 255
:goto_22
return-object v0
.line 250
:cond_23
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_8
.line 255
:cond_27
const/4 v0, 0x0
goto :goto_22
.end method
.method public getBitmapAssetByResourceID(Ljava/lang/String;)Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.registers 5
.prologue
.line 165
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v2
.line 167
const/4 v0, 0x0
move v1, v0
:goto_8
if-ge v1, v2, :cond_27
.line 168
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
iget-object v0, v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;->resourceID:Ljava/lang/String;
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_23
.line 169
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/censivn/C3DEngine/parser/AParser$BitmapAsset;
.line 172
:goto_22
return-object v0
.line 167
:cond_23
add-int/lit8 v0, v1, 0x1
move v1, v0
goto :goto_8
.line 172
:cond_27
const/4 v0, 0x0
goto :goto_22
.end method
.method public getTextureElement()Lcom/censivn/C3DEngine/api/element/TextureElement;
.registers 2
.prologue
.line 278
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlasElement:Lcom/censivn/C3DEngine/api/element/TextureElement;
return-object v0
.end method
.method public hasBitmaps()Z
.registers 2
.prologue
.line 229
iget-object v0, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->bitmaps:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
if-lez v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public setTextureElement(Lcom/censivn/C3DEngine/api/element/TextureElement;)V
.registers 2
.prologue
.line 274
iput-object p1, p0, Lcom/censivn/C3DEngine/parser/AParser$TextureAtlas;->atlasElement:Lcom/censivn/C3DEngine/api/element/TextureElement;
.line 275
return-void
.end method