.class public final Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer; .super Ljava/lang/Object; .source "SourceFile" # static fields .field public static final FRAGMENT_SHADER_CODE:[Ljava/lang/String; .field public static final TEX_MATRIX_BOTTOM:[F .field public static final TEX_MATRIX_LEFT:[F .field public static final TEX_MATRIX_RIGHT:[F .field public static final TEX_MATRIX_TOP:[F .field public static final TEX_MATRIX_WHOLE:[F .field public static final VERTEX_SHADER_CODE:[Ljava/lang/String; # instance fields .field public mvpMatrixHandle:I .field public positionHandle:I .field public program:I .field public texCoordsHandle:I .field public textureHandle:I .field public uTexMatrixHandle:I # direct methods .method static constructor ()V .locals 9 const-string v0, "uniform mat4 uMvpMatrix;" const-string v1, "uniform mat3 uTexMatrix;" const-string v2, "attribute vec4 aPosition;" const-string v3, "attribute vec2 aTexCoords;" const-string v4, "varying vec2 vTexCoords;" const-string v5, "void main() {" const-string v6, " gl_Position = uMvpMatrix * aPosition;" const-string v7, " vTexCoords = (uTexMatrix * vec3(aTexCoords, 1)).xy;" const-string v8, "}" filled-new-array/range {v0 .. v8}, [Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->VERTEX_SHADER_CODE:[Ljava/lang/String; const-string v1, "#extension GL_OES_EGL_image_external : require" const-string v2, "precision mediump float;" const-string v3, "uniform samplerExternalOES uTexture;" const-string v4, "varying vec2 vTexCoords;" const-string v5, "void main() {" const-string v6, " gl_FragColor = texture2D(uTexture, vTexCoords);" const-string v7, "}" filled-new-array/range {v1 .. v7}, [Ljava/lang/String; move-result-object v0 sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->FRAGMENT_SHADER_CODE:[Ljava/lang/String; const/16 v0, 0x9 new-array v1, v0, [F fill-array-data v1, :array_0 sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_WHOLE:[F new-array v1, v0, [F fill-array-data v1, :array_1 sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_TOP:[F new-array v1, v0, [F fill-array-data v1, :array_2 sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_BOTTOM:[F new-array v1, v0, [F fill-array-data v1, :array_3 sput-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_LEFT:[F new-array v0, v0, [F fill-array-data v0, :array_4 sput-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->TEX_MATRIX_RIGHT:[F return-void :array_0 .array-data 4 0x3f800000 # 1.0f 0x0 0x0 0x0 -0x40800000 # -1.0f 0x0 0x0 0x3f800000 # 1.0f 0x3f800000 # 1.0f .end array-data :array_1 .array-data 4 0x3f800000 # 1.0f 0x0 0x0 0x0 -0x41000000 # -0.5f 0x0 0x0 0x3f000000 # 0.5f 0x3f800000 # 1.0f .end array-data :array_2 .array-data 4 0x3f800000 # 1.0f 0x0 0x0 0x0 -0x41000000 # -0.5f 0x0 0x0 0x3f800000 # 1.0f 0x3f800000 # 1.0f .end array-data :array_3 .array-data 4 0x3f000000 # 0.5f 0x0 0x0 0x0 -0x40800000 # -1.0f 0x0 0x0 0x3f800000 # 1.0f 0x3f800000 # 1.0f .end array-data :array_4 .array-data 4 0x3f000000 # 0.5f 0x0 0x0 0x0 -0x40800000 # -1.0f 0x0 0x3f000000 # 0.5f 0x3f800000 # 1.0f 0x3f800000 # 1.0f .end array-data .end method .method public constructor ()V .locals 0 .line 31 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method # virtual methods .method public draw(I[FZ)V .locals 0 return-void .end method .method public init()V .locals 2 sget-object v0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->VERTEX_SHADER_CODE:[Ljava/lang/String; sget-object v1, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->FRAGMENT_SHADER_CODE:[Ljava/lang/String; .line 122 invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/GlUtil;->compileProgram([Ljava/lang/String;[Ljava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I const-string v1, "uMvpMatrix" .line 123 invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->mvpMatrixHandle:I iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I const-string v1, "uTexMatrix" .line 124 invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->uTexMatrixHandle:I iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I const-string v1, "aPosition" .line 125 invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->positionHandle:I iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I const-string v1, "aTexCoords" .line 126 invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetAttribLocation(ILjava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->texCoordsHandle:I iget v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->program:I const-string v1, "uTexture" .line 127 invoke-static {v0, v1}, Landroid/opengl/GLES20;->glGetUniformLocation(ILjava/lang/String;)I move-result v0 iput v0, p0, Lcom/google/android/exoplayer2/video/spherical/ProjectionRenderer;->textureHandle:I return-void .end method