.class final Landroidx/media3/common/util/GlUtil$Api17; .super Ljava/lang/Object; .source "GlUtil.java" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/media3/common/util/GlUtil; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x1a name = "Api17" .end annotation # direct methods .method private constructor ()V .locals 0 .line 689 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method public static createEglContext(Landroid/opengl/EGLContext;Landroid/opengl/EGLDisplay;I[I)Landroid/opengl/EGLContext; .locals 2 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation const/16 v0, 0x3098 const/16 v1, 0x3038 filled-new-array {v0, p2, v1}, [I move-result-object v0 .line 715 invoke-static {p1, p3}, Landroidx/media3/common/util/GlUtil$Api17;->getEglConfig(Landroid/opengl/EGLDisplay;[I)Landroid/opengl/EGLConfig; move-result-object p3 const/4 v1, 0x0 .line 713 invoke-static {p1, p3, p0, v0, v1}, Landroid/opengl/EGL14;->eglCreateContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Landroid/opengl/EGLContext;[II)Landroid/opengl/EGLContext; move-result-object p0 if-eqz p0, :cond_0 .line 726 invoke-static {}, Landroidx/media3/common/util/GlUtil;->checkGlError()V return-object p0 .line 720 :cond_0 invoke-static {p1}, Landroid/opengl/EGL14;->eglTerminate(Landroid/opengl/EGLDisplay;)Z .line 721 new-instance p0, Landroidx/media3/common/util/GlUtil$GlException; new-instance p1, Ljava/lang/StringBuilder; const-string p3, "eglCreateContext() failed to create a valid context. The device may not support EGL version " invoke-direct {p1, p3}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1}, Landroidx/media3/common/util/GlUtil$GlException;->(Ljava/lang/String;)V throw p0 .end method .method public static createEglDisplay()Landroid/opengl/EGLDisplay; .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation const/4 v0, 0x0 .line 693 invoke-static {v0}, Landroid/opengl/EGL14;->eglGetDisplay(I)Landroid/opengl/EGLDisplay; move-result-object v1 .line 694 sget-object v2, Landroid/opengl/EGL14;->EGL_NO_DISPLAY:Landroid/opengl/EGLDisplay; invoke-virtual {v1, v2}, Landroid/opengl/EGLDisplay;->equals(Ljava/lang/Object;)Z move-result v2 const/4 v3, 0x1 xor-int/2addr v2, v3 const-string v4, "No EGL display." invoke-static {v2, v4}, Landroidx/media3/common/util/GlUtil;->checkGlException(ZLjava/lang/String;)V new-array v2, v3, [I new-array v3, v3, [I .line 696 invoke-static {v1, v2, v0, v3, v0}, Landroid/opengl/EGL14;->eglInitialize(Landroid/opengl/EGLDisplay;[II[II)Z move-result v0 const-string v2, "Error in eglInitialize." .line 695 invoke-static {v0, v2}, Landroidx/media3/common/util/GlUtil;->checkGlException(ZLjava/lang/String;)V .line 703 invoke-static {}, Landroidx/media3/common/util/GlUtil;->checkGlError()V return-object v1 .end method .method public static createEglPbufferSurface(Landroid/opengl/EGLDisplay;[I[I)Landroid/opengl/EGLSurface; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation .line 751 invoke-static {p0, p1}, Landroidx/media3/common/util/GlUtil$Api17;->getEglConfig(Landroid/opengl/EGLDisplay;[I)Landroid/opengl/EGLConfig; move-result-object p1 const/4 v0, 0x0 .line 749 invoke-static {p0, p1, p2, v0}, Landroid/opengl/EGL14;->eglCreatePbufferSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;[II)Landroid/opengl/EGLSurface; move-result-object p0 const-string p1, "Error creating surface" .line 754 invoke-static {p1}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V return-object p0 .end method .method public static createEglSurface(Landroid/opengl/EGLDisplay;Ljava/lang/Object;[I[I)Landroid/opengl/EGLSurface; .locals 1 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation .line 737 invoke-static {p0, p2}, Landroidx/media3/common/util/GlUtil$Api17;->getEglConfig(Landroid/opengl/EGLDisplay;[I)Landroid/opengl/EGLConfig; move-result-object p2 const/4 v0, 0x0 .line 735 invoke-static {p0, p2, p1, p3, v0}, Landroid/opengl/EGL14;->eglCreateWindowSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLConfig;Ljava/lang/Object;[II)Landroid/opengl/EGLSurface; move-result-object p0 const-string p1, "Error creating surface" .line 741 invoke-static {p1}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V return-object p0 .end method .method public static destroyEglContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation if-nez p0, :cond_0 return-void .line 794 :cond_0 sget-object v0, Landroid/opengl/EGL14;->EGL_NO_SURFACE:Landroid/opengl/EGLSurface; sget-object v1, Landroid/opengl/EGL14;->EGL_NO_SURFACE:Landroid/opengl/EGLSurface; sget-object v2, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext; invoke-static {p0, v0, v1, v2}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z const-string v0, "Error releasing context" .line 796 invoke-static {v0}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V if-eqz p1, :cond_1 .line 798 invoke-static {p0, p1}, Landroid/opengl/EGL14;->eglDestroyContext(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;)Z const-string p1, "Error destroying context" .line 799 invoke-static {p1}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V .line 801 :cond_1 invoke-static {}, Landroid/opengl/EGL14;->eglReleaseThread()Z const-string p1, "Error releasing thread" .line 802 invoke-static {p1}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V .line 803 invoke-static {p0}, Landroid/opengl/EGL14;->eglTerminate(Landroid/opengl/EGLDisplay;)Z const-string p0, "Error terminating display" .line 804 invoke-static {p0}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V return-void .end method .method public static destroyEglSurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation if-eqz p0, :cond_1 if-nez p1, :cond_0 goto :goto_0 .line 813 :cond_0 invoke-static {p0, p1}, Landroid/opengl/EGL14;->eglDestroySurface(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;)Z const-string p0, "Error destroying surface" .line 814 invoke-static {p0}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V :cond_1 :goto_0 return-void .end method .method public static focusFramebufferUsingCurrentContext(III)V .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation .line 776 invoke-static {}, Landroid/opengl/EGL14;->eglGetCurrentContext()Landroid/opengl/EGLContext; move-result-object v0 sget-object v1, Landroid/opengl/EGL14;->EGL_NO_CONTEXT:Landroid/opengl/EGLContext; invoke-static {v0, v1}, Landroidx/media3/common/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v0 const/4 v1, 0x1 xor-int/2addr v0, v1 const-string v2, "No current context" .line 775 invoke-static {v0, v2}, Landroidx/media3/common/util/GlUtil;->checkGlException(ZLjava/lang/String;)V new-array v0, v1, [I const v1, 0x8ca6 const/4 v2, 0x0 .line 779 invoke-static {v1, v0, v2}, Landroid/opengl/GLES20;->glGetIntegerv(I[II)V aget v0, v0, v2 if-eq v0, p0, :cond_0 const v0, 0x8d40 .line 781 invoke-static {v0, p0}, Landroid/opengl/GLES20;->glBindFramebuffer(II)V .line 783 :cond_0 invoke-static {}, Landroidx/media3/common/util/GlUtil;->checkGlError()V .line 784 invoke-static {v2, v2, p1, p2}, Landroid/opengl/GLES20;->glViewport(IIII)V .line 785 invoke-static {}, Landroidx/media3/common/util/GlUtil;->checkGlError()V return-void .end method .method public static focusRenderTarget(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;Landroid/opengl/EGLSurface;III)V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation .line 767 invoke-static {p0, p2, p2, p1}, Landroid/opengl/EGL14;->eglMakeCurrent(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLSurface;Landroid/opengl/EGLSurface;Landroid/opengl/EGLContext;)Z const-string p0, "Error making context current" .line 768 invoke-static {p0}, Landroidx/media3/common/util/GlUtil;->access$000(Ljava/lang/String;)V .line 769 invoke-static {p3, p4, p5}, Landroidx/media3/common/util/GlUtil$Api17;->focusFramebufferUsingCurrentContext(III)V return-void .end method .method private static getEglConfig(Landroid/opengl/EGLDisplay;[I)Landroid/opengl/EGLConfig; .locals 10 .annotation system Ldalvik/annotation/Throws; value = { Landroidx/media3/common/util/GlUtil$GlException; } .end annotation const/4 v0, 0x1 new-array v9, v0, [Landroid/opengl/EGLConfig; const/4 v3, 0x0 const/4 v5, 0x0 const/4 v6, 0x1 new-array v7, v0, [I const/4 v8, 0x0 move-object v1, p0 move-object v2, p1 move-object v4, v9 .line 821 invoke-static/range {v1 .. v8}, Landroid/opengl/EGL14;->eglChooseConfig(Landroid/opengl/EGLDisplay;[II[Landroid/opengl/EGLConfig;II[II)Z move-result p0 if-eqz p0, :cond_0 const/4 p0, 0x0 aget-object p0, v9, p0 return-object p0 .line 830 :cond_0 new-instance p0, Landroidx/media3/common/util/GlUtil$GlException; const-string p1, "eglChooseConfig failed." invoke-direct {p0, p1}, Landroidx/media3/common/util/GlUtil$GlException;->(Ljava/lang/String;)V throw p0 .end method