Weather/smali/com/badlogic/gdx/graphics/glutils/IndexBufferObject.smali
2021-05-10 10:13:34 +02:00

362 lines
9.0 KiB
Smali

.class public Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;
.super Ljava/lang/Object;
.source "IndexBufferObject.java"
# interfaces
.implements Lcom/badlogic/gdx/graphics/glutils/IndexData;
# instance fields
.field final a:Ljava/nio/ShortBuffer;
.field final b:Ljava/nio/ByteBuffer;
.field c:I
.field final d:Z
.field e:Z
.field f:Z
.field final g:I
.field private final h:Z
# direct methods
.method public constructor <init>(ZI)V
.locals 2
.line 70
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x1
.line 52
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
const/4 v1, 0x0
.line 53
iput-boolean v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->f:Z
if-nez p2, :cond_0
const/4 v1, 0x1
.line 72
:cond_0
iput-boolean v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->h:Z
.line 73
iget-boolean v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->h:Z
if-eqz v1, :cond_1
const/4 p2, 0x1
:cond_1
mul-int/lit8 p2, p2, 0x2
.line 77
invoke-static {p2}, Lcom/badlogic/gdx/utils/BufferUtils;->d(I)Ljava/nio/ByteBuffer;
move-result-object p2
iput-object p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
.line 78
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->d:Z
.line 80
iget-object p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
invoke-virtual {p2}, Ljava/nio/ByteBuffer;->asShortBuffer()Ljava/nio/ShortBuffer;
move-result-object p2
iput-object p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
.line 81
iget-object p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {p2}, Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;
.line 82
iget-object p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
invoke-virtual {p2}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;
.line 83
sget-object p2, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
invoke-interface {p2}, Lcom/badlogic/gdx/graphics/GL20;->glGenBuffer()I
move-result p2
iput p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
if-eqz p1, :cond_2
const p1, 0x88e4
goto :goto_0
:cond_2
const p1, 0x88e8
.line 84
:goto_0
iput p1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->g:I
return-void
.end method
# virtual methods
.method public a()I
.locals 1
.line 89
iget-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->h:Z
if-eqz v0, :cond_0
const/4 v0, 0x0
goto :goto_0
:cond_0
iget-object v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {v0}, Ljava/nio/ShortBuffer;->limit()I
move-result v0
:goto_0
return v0
.end method
.method public a([SII)V
.locals 3
const/4 v0, 0x1
.line 110
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
.line 111
iget-object v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {v1}, Ljava/nio/ShortBuffer;->clear()Ljava/nio/Buffer;
.line 112
iget-object v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {v1, p1, p2, p3}, Ljava/nio/ShortBuffer;->put([SII)Ljava/nio/ShortBuffer;
.line 113
iget-object p1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {p1}, Ljava/nio/ShortBuffer;->flip()Ljava/nio/Buffer;
.line 114
iget-object p1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
const/4 p2, 0x0
invoke-virtual {p1, p2}, Ljava/nio/ByteBuffer;->position(I)Ljava/nio/Buffer;
.line 115
iget-object p1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
shl-int/2addr p3, v0
invoke-virtual {p1, p3}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 117
iget-boolean p1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->f:Z
if-eqz p1, :cond_0
.line 118
sget-object p1, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
const p3, 0x8893
iget-object v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
invoke-virtual {v0}, Ljava/nio/ByteBuffer;->limit()I
move-result v0
iget-object v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
iget v2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->g:I
invoke-interface {p1, p3, v0, v1, v2}, Lcom/badlogic/gdx/graphics/GL20;->glBufferData(IILjava/nio/Buffer;I)V
.line 119
iput-boolean p2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
:cond_0
return-void
.end method
.method public b()Ljava/nio/ShortBuffer;
.locals 1
const/4 v0, 0x1
.line 161
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
.line 162
iget-object v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
return-object v0
.end method
.method public c()V
.locals 3
.line 192
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
const/4 v1, 0x0
const v2, 0x8893
invoke-interface {v0, v2, v1}, Lcom/badlogic/gdx/graphics/GL20;->glBindBuffer(II)V
.line 193
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
iget v2, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
invoke-interface {v0, v2}, Lcom/badlogic/gdx/graphics/GL20;->glDeleteBuffer(I)V
.line 194
iput v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
.line 196
iget-object v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
invoke-static {v0}, Lcom/badlogic/gdx/utils/BufferUtils;->a(Ljava/nio/ByteBuffer;)V
return-void
.end method
.method public d()V
.locals 5
.line 167
iget v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
if-eqz v0, :cond_1
.line 169
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
iget v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
const v2, 0x8893
invoke-interface {v0, v2, v1}, Lcom/badlogic/gdx/graphics/GL20;->glBindBuffer(II)V
.line 170
iget-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
if-eqz v0, :cond_0
.line 171
iget-object v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
iget-object v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->a:Ljava/nio/ShortBuffer;
invoke-virtual {v1}, Ljava/nio/ShortBuffer;->limit()I
move-result v1
mul-int/lit8 v1, v1, 0x2
invoke-virtual {v0, v1}, Ljava/nio/ByteBuffer;->limit(I)Ljava/nio/Buffer;
.line 172
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
iget-object v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
invoke-virtual {v1}, Ljava/nio/ByteBuffer;->limit()I
move-result v1
iget-object v3, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->b:Ljava/nio/ByteBuffer;
iget v4, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->g:I
invoke-interface {v0, v2, v1, v3, v4}, Lcom/badlogic/gdx/graphics/GL20;->glBufferData(IILjava/nio/Buffer;I)V
const/4 v0, 0x0
.line 173
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
:cond_0
const/4 v0, 0x1
.line 175
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->f:Z
return-void
.line 167
:cond_1
new-instance v0, Lcom/badlogic/gdx/utils/GdxRuntimeException;
const-string v1, "No buffer allocated!"
invoke-direct {v0, v1}, Lcom/badlogic/gdx/utils/GdxRuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public e()V
.locals 3
.line 180
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
const/4 v1, 0x0
const v2, 0x8893
invoke-interface {v0, v2, v1}, Lcom/badlogic/gdx/graphics/GL20;->glBindBuffer(II)V
.line 181
iput-boolean v1, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->f:Z
return-void
.end method
.method public f()V
.locals 1
.line 186
sget-object v0, Lcom/badlogic/gdx/Gdx;->f:Lcom/badlogic/gdx/graphics/GL20;
invoke-interface {v0}, Lcom/badlogic/gdx/graphics/GL20;->glGenBuffer()I
move-result v0
iput v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->c:I
const/4 v0, 0x1
.line 187
iput-boolean v0, p0, Lcom/badlogic/gdx/graphics/glutils/IndexBufferObject;->e:Z
return-void
.end method