GlDrawFrameRect.smali

.class public Lcom/mmc/player/opengles/GlDrawFrameRect;
.super Ljava/lang/Object;
.source "SourceFile"


# instance fields
.field private mProgram:Lcom/mmc/player/opengles/GlProgram;

.field private final mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;


# direct methods
.method public constructor <init>(Lcom/mmc/player/opengles/GlProgram;)V
    .registers 4

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2
    new-instance v0, Lcom/mmc/player/opengles/GlDrawable2d;

    sget-object v1, Lcom/mmc/player/opengles/GlDrawable2d$Prefab;->FULL_RECTANGLE:Lcom/mmc/player/opengles/GlDrawable2d$Prefab;

    invoke-direct {v0, v1}, Lcom/mmc/player/opengles/GlDrawable2d;-><init>(Lcom/mmc/player/opengles/GlDrawable2d$Prefab;)V

    iput-object v0, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 3
    iput-object p1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    return-void
.end method


# virtual methods
.method public drawFrame(I[F)V
    .registers 14

    .line 1
    iget-object v0, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    sget-object v1, Lcom/mmc/player/opengles/GlUtil;->IDENTITY_MATRIX:[F

    iget-object v2, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    invoke-virtual {v2}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexArray()Ljava/nio/FloatBuffer;

    move-result-object v2

    iget-object v3, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 2
    invoke-virtual {v3}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexCount()I

    move-result v4

    iget-object v3, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    invoke-virtual {v3}, Lcom/mmc/player/opengles/GlDrawable2d;->getCoordsPerVertex()I

    move-result v5

    iget-object v3, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 3
    invoke-virtual {v3}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexStride()I

    move-result v6

    iget-object v3, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 4
    invoke-virtual {v3}, Lcom/mmc/player/opengles/GlDrawable2d;->getTexCoordArray()Ljava/nio/FloatBuffer;

    move-result-object v8

    iget-object v3, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 5
    invoke-virtual {v3}, Lcom/mmc/player/opengles/GlDrawable2d;->getTexCoordStride()I

    move-result v10

    const/4 v3, 0x0

    move-object v7, p2

    move v9, p1

    .line 6
    invoke-virtual/range {v0 .. v10}, Lcom/mmc/player/opengles/GlProgram;->draw([FLjava/nio/FloatBuffer;IIII[FLjava/nio/FloatBuffer;II)V

    return-void
.end method

.method public drawFrameYUV420([I)V
    .registers 15

    if-nez p1, :cond_3

    return-void

    .line 1
    :cond_3
    iget-object v0, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    sget-object v7, Lcom/mmc/player/opengles/GlUtil;->IDENTITY_MATRIX:[F

    iget-object v1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    invoke-virtual {v1}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexArray()Ljava/nio/FloatBuffer;

    move-result-object v2

    const/4 v3, 0x0

    iget-object v1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 2
    invoke-virtual {v1}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexCount()I

    move-result v4

    iget-object v1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    invoke-virtual {v1}, Lcom/mmc/player/opengles/GlDrawable2d;->getCoordsPerVertex()I

    move-result v5

    iget-object v1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 3
    invoke-virtual {v1}, Lcom/mmc/player/opengles/GlDrawable2d;->getVertexStride()I

    move-result v6

    iget-object v1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 4
    invoke-virtual {v1}, Lcom/mmc/player/opengles/GlDrawable2d;->getTexCoordArray()Ljava/nio/FloatBuffer;

    move-result-object v8

    const/4 v1, 0x0

    aget v9, p1, v1

    const/4 v1, 0x1

    aget v10, p1, v1

    const/4 v1, 0x2

    aget v11, p1, v1

    iget-object p1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mRectDrawable:Lcom/mmc/player/opengles/GlDrawable2d;

    .line 5
    invoke-virtual {p1}, Lcom/mmc/player/opengles/GlDrawable2d;->getTexCoordStride()I

    move-result v12

    move-object v1, v7

    .line 6
    invoke-virtual/range {v0 .. v12}, Lcom/mmc/player/opengles/GlProgram;->draw([FLjava/nio/FloatBuffer;IIII[FLjava/nio/FloatBuffer;IIII)V

    return-void
.end method

.method public getProgram()Lcom/mmc/player/opengles/GlProgram;
    .registers 2

    iget-object v0, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    return-object v0
.end method

.method public release(Z)V
    .registers 3

    .line 1
    iget-object v0, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    if-eqz v0, :cond_c

    if-eqz p1, :cond_9

    .line 2
    invoke-virtual {v0}, Lcom/mmc/player/opengles/GlProgram;->release()V

    :cond_9
    const/4 p1, 0x0

    .line 3
    iput-object p1, p0, Lcom/mmc/player/opengles/GlDrawFrameRect;->mProgram:Lcom/mmc/player/opengles/GlProgram;

    :cond_c
    return-void
.end method