public class android.opengl.GLSurfaceView extends android.view.SurfaceView implements android.view.SurfaceHolder$Callback2
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.opengl.GLSurfaceView
  super_class: android.view.SurfaceView
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "GLSurfaceView"

  private static final boolean LOG_ATTACH_DETACH;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_THREADS;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_PAUSE_RESUME;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_SURFACE;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_RENDERER;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_RENDERER_DRAW_FRAME;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final boolean LOG_EGL;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int RENDERMODE_WHEN_DIRTY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int RENDERMODE_CONTINUOUSLY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int DEBUG_CHECK_GL_ERROR;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int DEBUG_LOG_GL_CALLS;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final android.opengl.GLSurfaceView$GLThreadManager sGLThreadManager;
    descriptor: Landroid/opengl/GLSurfaceView$GLThreadManager;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private final java.lang.ref.WeakReference<android.opengl.GLSurfaceView> mThisWeakRef;
    descriptor: Ljava/lang/ref/WeakReference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/lang/ref/WeakReference<Landroid/opengl/GLSurfaceView;>;

  private android.opengl.GLSurfaceView$GLThread mGLThread;
    descriptor: Landroid/opengl/GLSurfaceView$GLThread;
    flags: (0x0002) ACC_PRIVATE

  private android.opengl.GLSurfaceView$Renderer mRenderer;
    descriptor: Landroid/opengl/GLSurfaceView$Renderer;
    flags: (0x0002) ACC_PRIVATE

  private boolean mDetached;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.opengl.GLSurfaceView$EGLConfigChooser mEGLConfigChooser;
    descriptor: Landroid/opengl/GLSurfaceView$EGLConfigChooser;
    flags: (0x0002) ACC_PRIVATE

  private android.opengl.GLSurfaceView$EGLContextFactory mEGLContextFactory;
    descriptor: Landroid/opengl/GLSurfaceView$EGLContextFactory;
    flags: (0x0002) ACC_PRIVATE

  private android.opengl.GLSurfaceView$EGLWindowSurfaceFactory mEGLWindowSurfaceFactory;
    descriptor: Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
    flags: (0x0002) ACC_PRIVATE

  private android.opengl.GLSurfaceView$GLWrapper mGLWrapper;
    descriptor: Landroid/opengl/GLSurfaceView$GLWrapper;
    flags: (0x0002) ACC_PRIVATE

  private int mDebugFlags;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mEGLContextClientVersion;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean mPreserveEGLContextOnPause;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 1918
            new android.opengl.GLSurfaceView$GLThreadManager
            dup
            invokespecial android.opengl.GLSurfaceView$GLThreadManager.<init>:()V
            putstatic android.opengl.GLSurfaceView.sGLThreadManager:Landroid/opengl/GLSurfaceView$GLThreadManager;
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.content.Context context
         0: .line 212
            aload 0 /* this */
            aload 1 /* context */
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;)V
         1: .line 1920
            aload 0 /* this */
         2: .line 1921
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield android.opengl.GLSurfaceView.mThisWeakRef:Ljava/lang/ref/WeakReference;
         3: .line 213
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.init:()V
         4: .line 214
            return
        end local 1 // android.content.Context context
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/opengl/GLSurfaceView;
            0    5     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  public void <init>(android.content.Context, android.util.AttributeSet);
    descriptor: (Landroid/content/Context;Landroid/util/AttributeSet;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.content.Context context
        start local 2 // android.util.AttributeSet attrs
         0: .line 221
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* attrs */
            invokespecial android.view.SurfaceView.<init>:(Landroid/content/Context;Landroid/util/AttributeSet;)V
         1: .line 1920
            aload 0 /* this */
         2: .line 1921
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            putfield android.opengl.GLSurfaceView.mThisWeakRef:Ljava/lang/ref/WeakReference;
         3: .line 222
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.init:()V
         4: .line 223
            return
        end local 2 // android.util.AttributeSet attrs
        end local 1 // android.content.Context context
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/opengl/GLSurfaceView;
            0    5     1  context  Landroid/content/Context;
            0    5     2    attrs  Landroid/util/AttributeSet;
    MethodParameters:
         Name  Flags
      context  
      attrs    

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 228
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            ifnull 6
         1: .line 231
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.requestExitAndWait:()V
         2: .line 233
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 234
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         5: .line 235
            aload 1
            athrow
         6: .line 234
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         7: .line 236
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/opengl/GLSurfaceView;
      Exception table:
        from    to  target  type
           0     3       3  any
    Exceptions:
      throws java.lang.Throwable

  private void init();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 241
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.getHolder:()Landroid/view/SurfaceHolder;
            astore 1 /* holder */
        start local 1 // android.view.SurfaceHolder holder
         1: .line 242
            aload 1 /* holder */
            aload 0 /* this */
            invokeinterface android.view.SurfaceHolder.addCallback:(Landroid/view/SurfaceHolder$Callback;)V
         2: .line 250
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/opengl/GLSurfaceView;
            1    3     1  holder  Landroid/view/SurfaceHolder;

  public void setGLWrapper(android.opengl.GLSurfaceView$GLWrapper);
    descriptor: (Landroid/opengl/GLSurfaceView$GLWrapper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.opengl.GLSurfaceView$GLWrapper glWrapper
         0: .line 266
            aload 0 /* this */
            aload 1 /* glWrapper */
            putfield android.opengl.GLSurfaceView.mGLWrapper:Landroid/opengl/GLSurfaceView$GLWrapper;
         1: .line 267
            return
        end local 1 // android.opengl.GLSurfaceView$GLWrapper glWrapper
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/opengl/GLSurfaceView;
            0    2     1  glWrapper  Landroid/opengl/GLSurfaceView$GLWrapper;
    MethodParameters:
           Name  Flags
      glWrapper  

  public void setDebugFlags(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // int debugFlags
         0: .line 279
            aload 0 /* this */
            iload 1 /* debugFlags */
            putfield android.opengl.GLSurfaceView.mDebugFlags:I
         1: .line 280
            return
        end local 1 // int debugFlags
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/opengl/GLSurfaceView;
            0    2     1  debugFlags  I
    MethodParameters:
            Name  Flags
      debugFlags  

  public int getDebugFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 287
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mDebugFlags:I
            ireturn
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/opengl/GLSurfaceView;

  public void setPreserveEGLContextOnPause(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // boolean preserveOnPause
         0: .line 311
            aload 0 /* this */
            iload 1 /* preserveOnPause */
            putfield android.opengl.GLSurfaceView.mPreserveEGLContextOnPause:Z
         1: .line 312
            return
        end local 1 // boolean preserveOnPause
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Landroid/opengl/GLSurfaceView;
            0    2     1  preserveOnPause  Z
    MethodParameters:
                 Name  Flags
      preserveOnPause  

  public boolean getPreserveEGLContextOnPause();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 318
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mPreserveEGLContextOnPause:Z
            ireturn
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/opengl/GLSurfaceView;

  public void setRenderer(android.opengl.GLSurfaceView$Renderer);
    descriptor: (Landroid/opengl/GLSurfaceView$Renderer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.opengl.GLSurfaceView$Renderer renderer
         0: .line 348
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.checkRenderThreadState:()V
         1: .line 349
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mEGLConfigChooser:Landroid/opengl/GLSurfaceView$EGLConfigChooser;
            ifnonnull 3
         2: .line 350
            aload 0 /* this */
            new android.opengl.GLSurfaceView$SimpleEGLConfigChooser
            dup
            aload 0 /* this */
            iconst_1
            invokespecial android.opengl.GLSurfaceView$SimpleEGLConfigChooser.<init>:(Landroid/opengl/GLSurfaceView;Z)V
            putfield android.opengl.GLSurfaceView.mEGLConfigChooser:Landroid/opengl/GLSurfaceView$EGLConfigChooser;
         3: .line 352
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mEGLContextFactory:Landroid/opengl/GLSurfaceView$EGLContextFactory;
            ifnonnull 5
         4: .line 353
            aload 0 /* this */
            new android.opengl.GLSurfaceView$DefaultContextFactory
            dup
            aload 0 /* this */
            invokespecial android.opengl.GLSurfaceView$DefaultContextFactory.<init>:(Landroid/opengl/GLSurfaceView;)V
            putfield android.opengl.GLSurfaceView.mEGLContextFactory:Landroid/opengl/GLSurfaceView$EGLContextFactory;
         5: .line 355
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mEGLWindowSurfaceFactory:Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
            ifnonnull 7
         6: .line 356
            aload 0 /* this */
            new android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory
            dup
            invokespecial android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory.<init>:()V
            putfield android.opengl.GLSurfaceView.mEGLWindowSurfaceFactory:Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
         7: .line 358
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* renderer */
            putfield android.opengl.GLSurfaceView.mRenderer:Landroid/opengl/GLSurfaceView$Renderer;
         8: .line 359
            aload 0 /* this */
            new android.opengl.GLSurfaceView$GLThread
            dup
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mThisWeakRef:Ljava/lang/ref/WeakReference;
            invokespecial android.opengl.GLSurfaceView$GLThread.<init>:(Ljava/lang/ref/WeakReference;)V
            putfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
         9: .line 360
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.start:()V
        10: .line 361
            return
        end local 1 // android.opengl.GLSurfaceView$Renderer renderer
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   11     0      this  Landroid/opengl/GLSurfaceView;
            0   11     1  renderer  Landroid/opengl/GLSurfaceView$Renderer;
    MethodParameters:
          Name  Flags
      renderer  

  public void setEGLContextFactory(android.opengl.GLSurfaceView$EGLContextFactory);
    descriptor: (Landroid/opengl/GLSurfaceView$EGLContextFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.opengl.GLSurfaceView$EGLContextFactory factory
         0: .line 374
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.checkRenderThreadState:()V
         1: .line 375
            aload 0 /* this */
            aload 1 /* factory */
            putfield android.opengl.GLSurfaceView.mEGLContextFactory:Landroid/opengl/GLSurfaceView$EGLContextFactory;
         2: .line 376
            return
        end local 1 // android.opengl.GLSurfaceView$EGLContextFactory factory
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/opengl/GLSurfaceView;
            0    3     1  factory  Landroid/opengl/GLSurfaceView$EGLContextFactory;
    MethodParameters:
         Name  Flags
      factory  

  public void setEGLWindowSurfaceFactory(android.opengl.GLSurfaceView$EGLWindowSurfaceFactory);
    descriptor: (Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.opengl.GLSurfaceView$EGLWindowSurfaceFactory factory
         0: .line 388
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.checkRenderThreadState:()V
         1: .line 389
            aload 0 /* this */
            aload 1 /* factory */
            putfield android.opengl.GLSurfaceView.mEGLWindowSurfaceFactory:Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
         2: .line 390
            return
        end local 1 // android.opengl.GLSurfaceView$EGLWindowSurfaceFactory factory
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/opengl/GLSurfaceView;
            0    3     1  factory  Landroid/opengl/GLSurfaceView$EGLWindowSurfaceFactory;
    MethodParameters:
         Name  Flags
      factory  

  public void setEGLConfigChooser(android.opengl.GLSurfaceView$EGLConfigChooser);
    descriptor: (Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.opengl.GLSurfaceView$EGLConfigChooser configChooser
         0: .line 405
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.checkRenderThreadState:()V
         1: .line 406
            aload 0 /* this */
            aload 1 /* configChooser */
            putfield android.opengl.GLSurfaceView.mEGLConfigChooser:Landroid/opengl/GLSurfaceView$EGLConfigChooser;
         2: .line 407
            return
        end local 1 // android.opengl.GLSurfaceView$EGLConfigChooser configChooser
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Landroid/opengl/GLSurfaceView;
            0    3     1  configChooser  Landroid/opengl/GLSurfaceView$EGLConfigChooser;
    MethodParameters:
               Name  Flags
      configChooser  

  public void setEGLConfigChooser(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // boolean needDepth
         0: .line 424
            aload 0 /* this */
            new android.opengl.GLSurfaceView$SimpleEGLConfigChooser
            dup
            aload 0 /* this */
            iload 1 /* needDepth */
            invokespecial android.opengl.GLSurfaceView$SimpleEGLConfigChooser.<init>:(Landroid/opengl/GLSurfaceView;Z)V
            invokevirtual android.opengl.GLSurfaceView.setEGLConfigChooser:(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V
         1: .line 425
            return
        end local 1 // boolean needDepth
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/opengl/GLSurfaceView;
            0    2     1  needDepth  Z
    MethodParameters:
           Name  Flags
      needDepth  

  public void setEGLConfigChooser(int, int, int, int, int, int);
    descriptor: (IIIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=7, args_size=7
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // int redSize
        start local 2 // int greenSize
        start local 3 // int blueSize
        start local 4 // int alphaSize
        start local 5 // int depthSize
        start local 6 // int stencilSize
         0: .line 442
            aload 0 /* this */
            new android.opengl.GLSurfaceView$ComponentSizeChooser
            dup
            aload 0 /* this */
            iload 1 /* redSize */
            iload 2 /* greenSize */
         1: .line 443
            iload 3 /* blueSize */
            iload 4 /* alphaSize */
            iload 5 /* depthSize */
            iload 6 /* stencilSize */
            invokespecial android.opengl.GLSurfaceView$ComponentSizeChooser.<init>:(Landroid/opengl/GLSurfaceView;IIIIII)V
         2: .line 442
            invokevirtual android.opengl.GLSurfaceView.setEGLConfigChooser:(Landroid/opengl/GLSurfaceView$EGLConfigChooser;)V
         3: .line 444
            return
        end local 6 // int stencilSize
        end local 5 // int depthSize
        end local 4 // int alphaSize
        end local 3 // int blueSize
        end local 2 // int greenSize
        end local 1 // int redSize
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Landroid/opengl/GLSurfaceView;
            0    4     1      redSize  I
            0    4     2    greenSize  I
            0    4     3     blueSize  I
            0    4     4    alphaSize  I
            0    4     5    depthSize  I
            0    4     6  stencilSize  I
    MethodParameters:
             Name  Flags
      redSize      
      greenSize    
      blueSize     
      alphaSize    
      depthSize    
      stencilSize  

  public void setEGLContextClientVersion(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // int version
         0: .line 473
            aload 0 /* this */
            invokevirtual android.opengl.GLSurfaceView.checkRenderThreadState:()V
         1: .line 474
            aload 0 /* this */
            iload 1 /* version */
            putfield android.opengl.GLSurfaceView.mEGLContextClientVersion:I
         2: .line 475
            return
        end local 1 // int version
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/opengl/GLSurfaceView;
            0    3     1  version  I
    MethodParameters:
         Name  Flags
      version  

  public void setRenderMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // int renderMode
         0: .line 494
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            iload 1 /* renderMode */
            invokevirtual android.opengl.GLSurfaceView$GLThread.setRenderMode:(I)V
         1: .line 495
            return
        end local 1 // int renderMode
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/opengl/GLSurfaceView;
            0    2     1  renderMode  I
    MethodParameters:
            Name  Flags
      renderMode  

  public int getRenderMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 505
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.getRenderMode:()I
            ireturn
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/opengl/GLSurfaceView;

  public void requestRender();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 516
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.requestRender:()V
         1: .line 517
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/opengl/GLSurfaceView;

  public void surfaceCreated(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 524
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.surfaceCreated:()V
         1: .line 525
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/opengl/GLSurfaceView;
            0    2     1  holder  Landroid/view/SurfaceHolder;
    MethodParameters:
        Name  Flags
      holder  

  public void surfaceDestroyed(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 533
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.surfaceDestroyed:()V
         1: .line 534
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/opengl/GLSurfaceView;
            0    2     1  holder  Landroid/view/SurfaceHolder;
    MethodParameters:
        Name  Flags
      holder  

  public void surfaceChanged(android.view.SurfaceHolder, int, int, int);
    descriptor: (Landroid/view/SurfaceHolder;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.view.SurfaceHolder holder
        start local 2 // int format
        start local 3 // int w
        start local 4 // int h
         0: .line 541
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            iload 3 /* w */
            iload 4 /* h */
            invokevirtual android.opengl.GLSurfaceView$GLThread.onWindowResize:(II)V
         1: .line 542
            return
        end local 4 // int h
        end local 3 // int w
        end local 2 // int format
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/opengl/GLSurfaceView;
            0    2     1  holder  Landroid/view/SurfaceHolder;
            0    2     2  format  I
            0    2     3       w  I
            0    2     4       h  I
    MethodParameters:
        Name  Flags
      holder  
      format  
      w       
      h       

  public void surfaceRedrawNeededAsync(android.view.SurfaceHolder, java.lang.Runnable);
    descriptor: (Landroid/view/SurfaceHolder;Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.view.SurfaceHolder holder
        start local 2 // java.lang.Runnable finishDrawing
         0: .line 550
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            ifnull 2
         1: .line 551
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            aload 2 /* finishDrawing */
            invokevirtual android.opengl.GLSurfaceView$GLThread.requestRenderAndNotify:(Ljava/lang/Runnable;)V
         2: .line 553
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.lang.Runnable finishDrawing
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Landroid/opengl/GLSurfaceView;
            0    3     1         holder  Landroid/view/SurfaceHolder;
            0    3     2  finishDrawing  Ljava/lang/Runnable;
    MethodParameters:
               Name  Flags
      holder         
      finishDrawing  

  public void surfaceRedrawNeeded(android.view.SurfaceHolder);
    descriptor: (Landroid/view/SurfaceHolder;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // android.view.SurfaceHolder holder
         0: .line 564
            return
        end local 1 // android.view.SurfaceHolder holder
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/opengl/GLSurfaceView;
            0    1     1  holder  Landroid/view/SurfaceHolder;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
        Name  Flags
      holder  

  public void onPause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 578
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.onPause:()V
         1: .line 579
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/opengl/GLSurfaceView;

  public void onResume();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 591
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.onResume:()V
         1: .line 592
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/opengl/GLSurfaceView;

  public void queueEvent(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.opengl.GLSurfaceView this
        start local 1 // java.lang.Runnable r
         0: .line 601
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            aload 1 /* r */
            invokevirtual android.opengl.GLSurfaceView$GLThread.queueEvent:(Ljava/lang/Runnable;)V
         1: .line 602
            return
        end local 1 // java.lang.Runnable r
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/opengl/GLSurfaceView;
            0    2     1     r  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      r     

  protected void onAttachedToWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 610
            aload 0 /* this */
            invokespecial android.view.SurfaceView.onAttachedToWindow:()V
         1: .line 614
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mDetached:Z
            ifeq 9
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mRenderer:Landroid/opengl/GLSurfaceView$Renderer;
            ifnull 9
         2: .line 615
            iconst_1
            istore 1 /* renderMode */
        start local 1 // int renderMode
         3: .line 616
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            ifnull 5
         4: .line 617
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.getRenderMode:()I
            istore 1 /* renderMode */
         5: .line 619
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            new android.opengl.GLSurfaceView$GLThread
            dup
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mThisWeakRef:Ljava/lang/ref/WeakReference;
            invokespecial android.opengl.GLSurfaceView$GLThread.<init>:(Ljava/lang/ref/WeakReference;)V
            putfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
         6: .line 620
            iload 1 /* renderMode */
            iconst_1
            if_icmpeq 8
         7: .line 621
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            iload 1 /* renderMode */
            invokevirtual android.opengl.GLSurfaceView$GLThread.setRenderMode:(I)V
         8: .line 623
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.start:()V
        end local 1 // int renderMode
         9: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.opengl.GLSurfaceView.mDetached:Z
        10: .line 626
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/opengl/GLSurfaceView;
            3    9     1  renderMode  I

  protected void onDetachedFromWindow();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 633
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            ifnull 2
         1: .line 634
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            invokevirtual android.opengl.GLSurfaceView$GLThread.requestExitAndWait:()V
         2: .line 636
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.opengl.GLSurfaceView.mDetached:Z
         3: .line 637
            aload 0 /* this */
            invokespecial android.view.SurfaceView.onDetachedFromWindow:()V
         4: .line 638
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/opengl/GLSurfaceView;

  private void checkRenderThreadState();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.opengl.GLSurfaceView this
         0: .line 1892
            aload 0 /* this */
            getfield android.opengl.GLSurfaceView.mGLThread:Landroid/opengl/GLSurfaceView$GLThread;
            ifnull 4
         1: .line 1893
            new java.lang.IllegalStateException
            dup
         2: .line 1894
            ldc "setRenderer has already been called for this instance."
         3: .line 1893
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1896
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.opengl.GLSurfaceView this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/opengl/GLSurfaceView;
}
SourceFile: "GLSurfaceView.java"
NestMembers:
  android.opengl.GLSurfaceView$BaseConfigChooser  android.opengl.GLSurfaceView$ComponentSizeChooser  android.opengl.GLSurfaceView$DefaultContextFactory  android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory  android.opengl.GLSurfaceView$EGLConfigChooser  android.opengl.GLSurfaceView$EGLContextFactory  android.opengl.GLSurfaceView$EGLWindowSurfaceFactory  android.opengl.GLSurfaceView$EglHelper  android.opengl.GLSurfaceView$GLThread  android.opengl.GLSurfaceView$GLThreadManager  android.opengl.GLSurfaceView$GLWrapper  android.opengl.GLSurfaceView$LogWriter  android.opengl.GLSurfaceView$Renderer  android.opengl.GLSurfaceView$SimpleEGLConfigChooser
InnerClasses:
  private abstract BaseConfigChooser = android.opengl.GLSurfaceView$BaseConfigChooser of android.opengl.GLSurfaceView
  private ComponentSizeChooser = android.opengl.GLSurfaceView$ComponentSizeChooser of android.opengl.GLSurfaceView
  private DefaultContextFactory = android.opengl.GLSurfaceView$DefaultContextFactory of android.opengl.GLSurfaceView
  private DefaultWindowSurfaceFactory = android.opengl.GLSurfaceView$DefaultWindowSurfaceFactory of android.opengl.GLSurfaceView
  public abstract EGLConfigChooser = android.opengl.GLSurfaceView$EGLConfigChooser of android.opengl.GLSurfaceView
  public abstract EGLContextFactory = android.opengl.GLSurfaceView$EGLContextFactory of android.opengl.GLSurfaceView
  public abstract EGLWindowSurfaceFactory = android.opengl.GLSurfaceView$EGLWindowSurfaceFactory of android.opengl.GLSurfaceView
  private EglHelper = android.opengl.GLSurfaceView$EglHelper of android.opengl.GLSurfaceView
  GLThread = android.opengl.GLSurfaceView$GLThread of android.opengl.GLSurfaceView
  private GLThreadManager = android.opengl.GLSurfaceView$GLThreadManager of android.opengl.GLSurfaceView
  public abstract GLWrapper = android.opengl.GLSurfaceView$GLWrapper of android.opengl.GLSurfaceView
  LogWriter = android.opengl.GLSurfaceView$LogWriter of android.opengl.GLSurfaceView
  public abstract Renderer = android.opengl.GLSurfaceView$Renderer of android.opengl.GLSurfaceView
  private SimpleEGLConfigChooser = android.opengl.GLSurfaceView$SimpleEGLConfigChooser of android.opengl.GLSurfaceView
  public abstract Callback = android.view.SurfaceHolder$Callback of android.view.SurfaceHolder
  public abstract Callback2 = android.view.SurfaceHolder$Callback2 of android.view.SurfaceHolder