public final class android.view.ThreadedRenderer
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.view.ThreadedRenderer
  super_class: java.lang.Object
{
  private static final java.lang.String LOG_TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ThreadedRenderer"

  private static final java.lang.String CACHE_PATH_SHADERS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.opengl.shaders_cache"

  private static final java.lang.String CACHE_PATH_SKIASHADERS;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.skia.shaders_cache"

  public static final java.lang.String PROFILE_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.profile"

  public static final java.lang.String PROFILE_PROPERTY_VISUALIZE_BARS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "visual_bars"

  static final java.lang.String PROFILE_MAXFRAMES_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.profile.maxframes"

  static final java.lang.String PRINT_CONFIG_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.print_config"

  public static final java.lang.String DEBUG_DIRTY_REGIONS_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.show_dirty_regions"

  public static final java.lang.String DEBUG_SHOW_LAYERS_UPDATES_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.show_layers_updates"

  public static final java.lang.String DEBUG_OVERDRAW_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.overdraw"

  public static final java.lang.String OVERDRAW_PROPERTY_SHOW;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "show"

  public static final java.lang.String DEBUG_SHOW_NON_RECTANGULAR_CLIP_PROPERTY;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.show_non_rect_clip"

  public static final java.lang.String DEBUG_FPS_DIVISOR;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "debug.hwui.fps_divisor"

  public static int EGL_CONTEXT_PRIORITY_HIGH_IMG;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int EGL_CONTEXT_PRIORITY_MEDIUM_IMG;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static int EGL_CONTEXT_PRIORITY_LOW_IMG;
    descriptor: I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean sRendererDisabled;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean sSystemRendererDisabled;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  public static boolean sTrimForeground;
    descriptor: Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC

  private static java.lang.Boolean sSupportsOpenGL;
    descriptor: Ljava/lang/Boolean;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static final int SYNC_OK;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int SYNC_INVALIDATE_REQUIRED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int SYNC_LOST_SURFACE_REWARD_IF_FOUND;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int SYNC_CONTEXT_IS_STOPPED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int SYNC_FRAME_DROPPED;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final java.lang.String[] VISUALIZERS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int FLAG_DUMP_FRAMESTATS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private static final int FLAG_DUMP_RESET;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private static final int FLAG_DUMP_ALL;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

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

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

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

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

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

  private final float mLightY;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float mLightZ;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final float mLightRadius;
    descriptor: F
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mAmbientShadowAlpha;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mSpotShadowAlpha;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private long mNativeProxy;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

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

  private android.view.RenderNode mRootNode;
    descriptor: Landroid/view/RenderNode;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 193
            sipush 12545
            putstatic android.view.ThreadedRenderer.EGL_CONTEXT_PRIORITY_HIGH_IMG:I
         1: .line 194
            sipush 12546
            putstatic android.view.ThreadedRenderer.EGL_CONTEXT_PRIORITY_MEDIUM_IMG:I
         2: .line 195
            sipush 12547
            putstatic android.view.ThreadedRenderer.EGL_CONTEXT_PRIORITY_LOW_IMG:I
         3: .line 199
            invokestatic android.view.ThreadedRenderer.isAvailable:()Z
            pop
         4: .line 208
            iconst_0
            putstatic android.view.ThreadedRenderer.sRendererDisabled:Z
         5: .line 215
            iconst_0
            putstatic android.view.ThreadedRenderer.sSystemRendererDisabled:Z
         6: .line 229
            iconst_0
            putstatic android.view.ThreadedRenderer.sTrimForeground:Z
         7: .line 334
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
         8: .line 335
            ldc "visual_bars"
            aastore
         9: .line 334
            putstatic android.view.ThreadedRenderer.VISUALIZERS:[Ljava/lang/String;
        10: .line 340
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void disable(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean system
         0: .line 223
            iconst_1
            putstatic android.view.ThreadedRenderer.sRendererDisabled:Z
         1: .line 224
            iload 0 /* system */
            ifeq 3
         2: .line 225
            iconst_1
            putstatic android.view.ThreadedRenderer.sSystemRendererDisabled:Z
         3: .line 227
      StackMap locals:
      StackMap stack:
            return
        end local 0 // boolean system
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0  system  Z
    MethodParameters:
        Name  Flags
      system  

  public static void enableForegroundTrimming();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 238
            iconst_1
            putstatic android.view.ThreadedRenderer.sTrimForeground:Z
         1: .line 239
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static boolean isAvailable();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 251
            getstatic android.view.ThreadedRenderer.sSupportsOpenGL:Ljava/lang/Boolean;
            ifnull 2
         1: .line 252
            getstatic android.view.ThreadedRenderer.sSupportsOpenGL:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
         2: .line 254
      StackMap locals:
      StackMap stack:
            ldc "ro.kernel.qemu"
            iconst_0
            invokestatic android.os.SystemProperties.getInt:(Ljava/lang/String;I)I
            ifne 5
         3: .line 256
            iconst_1
            invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putstatic android.view.ThreadedRenderer.sSupportsOpenGL:Ljava/lang/Boolean;
         4: .line 257
            iconst_1
            ireturn
         5: .line 259
      StackMap locals:
      StackMap stack:
            ldc "qemu.gles"
            iconst_m1
            invokestatic android.os.SystemProperties.getInt:(Ljava/lang/String;I)I
            istore 0 /* qemu_gles */
        start local 0 // int qemu_gles
         6: .line 260
            iload 0 /* qemu_gles */
            iconst_m1
            if_icmpne 8
         7: .line 263
            iconst_0
            ireturn
         8: .line 267
      StackMap locals: int
      StackMap stack:
            iload 0 /* qemu_gles */
            ifle 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: invokestatic java.lang.Boolean.valueOf:(Z)Ljava/lang/Boolean;
            putstatic android.view.ThreadedRenderer.sSupportsOpenGL:Ljava/lang/Boolean;
        11: .line 268
            getstatic android.view.ThreadedRenderer.sSupportsOpenGL:Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ireturn
        end local 0 // int qemu_gles
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            6   12     0  qemu_gles  I

  public static void setupDiskCache(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // java.io.File cacheDir
         0: .line 281
            new java.io.File
            dup
            aload 0 /* cacheDir */
            ldc "com.android.opengl.shaders_cache"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
         1: .line 282
            new java.io.File
            dup
            aload 0 /* cacheDir */
            ldc "com.android.skia.shaders_cache"
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
         2: .line 280
            invokestatic android.view.ThreadedRenderer.setupShadersDiskCache:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 283
            return
        end local 0 // java.io.File cacheDir
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0  cacheDir  Ljava/io/File;
    MethodParameters:
          Name  Flags
      cacheDir  

  public static android.view.ThreadedRenderer create(android.content.Context, boolean, java.lang.String);
    descriptor: (Landroid/content/Context;ZLjava/lang/String;)Landroid/view/ThreadedRenderer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.content.Context context
        start local 1 // boolean translucent
        start local 2 // java.lang.String name
         0: .line 293
            aconst_null
            astore 3 /* renderer */
        start local 3 // android.view.ThreadedRenderer renderer
         1: .line 294
            invokestatic android.view.ThreadedRenderer.isAvailable:()Z
            ifeq 3
         2: .line 295
            new android.view.ThreadedRenderer
            dup
            aload 0 /* context */
            iload 1 /* translucent */
            aload 2 /* name */
            invokespecial android.view.ThreadedRenderer.<init>:(Landroid/content/Context;ZLjava/lang/String;)V
            astore 3 /* renderer */
         3: .line 297
      StackMap locals: android.view.ThreadedRenderer
      StackMap stack:
            aload 3 /* renderer */
            areturn
        end local 3 // android.view.ThreadedRenderer renderer
        end local 2 // java.lang.String name
        end local 1 // boolean translucent
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0      context  Landroid/content/Context;
            0    4     1  translucent  Z
            0    4     2         name  Ljava/lang/String;
            1    4     3     renderer  Landroid/view/ThreadedRenderer;
    MethodParameters:
             Name  Flags
      context      
      translucent  
      name         

  public static void trimMemory(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int level
         0: .line 309
            iload 0 /* level */
            invokestatic android.view.ThreadedRenderer.nTrimMemory:(I)V
         1: .line 310
            return
        end local 0 // int level
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0  level  I
    MethodParameters:
       Name  Flags
      level  

  public static void overrideProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // java.lang.String name
        start local 1 // java.lang.String value
         0: .line 313
            aload 0 /* name */
            ifnull 1
            aload 1 /* value */
            ifnonnull 2
         1: .line 314
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "name and value must be non-null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 316
      StackMap locals:
      StackMap stack:
            aload 0 /* name */
            aload 1 /* value */
            invokestatic android.view.ThreadedRenderer.nOverrideProperty:(Ljava/lang/String;Ljava/lang/String;)V
         3: .line 317
            return
        end local 1 // java.lang.String value
        end local 0 // java.lang.String name
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   name  Ljava/lang/String;
            0    4     1  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      name   
      value  

  void <init>(android.content.Context, boolean, java.lang.String);
    descriptor: (Landroid/content/Context;ZLjava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.view.ThreadedRenderer this
         0: .line 39
            new java.lang.Error
            dup
            ldc "Unresolved compilation problems: \n\tThe import com.android.internal.R cannot be resolved\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n\tR cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;
    MethodParameters:
             Name  Flags
      context      
      translucent  
      name         

  void destroy();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 404
            aload 0 /* this */
            iconst_0
            putfield android.view.ThreadedRenderer.mInitialized:Z
         1: .line 405
            aload 0 /* this */
            aconst_null
            invokevirtual android.view.ThreadedRenderer.updateEnabledState:(Landroid/view/Surface;)V
         2: .line 406
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            getfield android.view.RenderNode.mNativeRenderNode:J
            invokestatic android.view.ThreadedRenderer.nDestroy:(JJ)V
         3: .line 407
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/view/ThreadedRenderer;

  boolean isEnabled();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 415
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mEnabled:Z
            ireturn
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;

  void setEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // boolean enabled
         0: .line 424
            aload 0 /* this */
            iload 1 /* enabled */
            putfield android.view.ThreadedRenderer.mEnabled:Z
         1: .line 425
            return
        end local 1 // boolean enabled
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/ThreadedRenderer;
            0    2     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  boolean isRequested();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 434
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRequested:Z
            ireturn
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;

  void setRequested(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // boolean requested
         0: .line 442
            aload 0 /* this */
            iload 1 /* requested */
            putfield android.view.ThreadedRenderer.mRequested:Z
         1: .line 443
            return
        end local 1 // boolean requested
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/view/ThreadedRenderer;
            0    2     1  requested  Z
    MethodParameters:
           Name  Flags
      requested  

  private void updateEnabledState(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.Surface surface
         0: .line 446
            aload 1 /* surface */
            ifnull 1
            aload 1 /* surface */
            invokevirtual android.view.Surface.isValid:()Z
            ifne 3
         1: .line 447
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual android.view.ThreadedRenderer.setEnabled:(Z)V
         2: .line 448
            goto 4
         3: .line 449
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInitialized:Z
            invokevirtual android.view.ThreadedRenderer.setEnabled:(Z)V
         4: .line 451
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.view.Surface surface
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Landroid/view/ThreadedRenderer;
            0    5     1  surface  Landroid/view/Surface;
    MethodParameters:
         Name  Flags
      surface  

  boolean initialize(android.view.Surface);
    descriptor: (Landroid/view/Surface;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.Surface surface
         0: .line 461
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInitialized:Z
            ifeq 1
            iconst_0
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: istore 2 /* status */
        start local 2 // boolean status
         3: .line 462
            aload 0 /* this */
            iconst_1
            putfield android.view.ThreadedRenderer.mInitialized:Z
         4: .line 463
            aload 0 /* this */
            aload 1 /* surface */
            invokevirtual android.view.ThreadedRenderer.updateEnabledState:(Landroid/view/Surface;)V
         5: .line 464
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* surface */
            invokestatic android.view.ThreadedRenderer.nInitialize:(JLandroid/view/Surface;)V
         6: .line 465
            iload 2 /* status */
            ireturn
        end local 2 // boolean status
        end local 1 // android.view.Surface surface
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/view/ThreadedRenderer;
            0    7     1  surface  Landroid/view/Surface;
            3    7     2   status  Z
    Exceptions:
      throws android.view.Surface$OutOfResourcesException
    MethodParameters:
         Name  Flags
      surface  

  boolean initializeIfNeeded(int, int, android.view.View$AttachInfo, android.view.Surface, android.graphics.Rect);
    descriptor: (IILandroid/view/View$AttachInfo;Landroid/view/Surface;Landroid/graphics/Rect;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // int width
        start local 2 // int height
        start local 3 // android.view.View$AttachInfo attachInfo
        start local 4 // android.view.Surface surface
        start local 5 // android.graphics.Rect surfaceInsets
         0: .line 486
            aload 0 /* this */
            invokevirtual android.view.ThreadedRenderer.isRequested:()Z
            ifeq 5
         1: .line 488
            aload 0 /* this */
            invokevirtual android.view.ThreadedRenderer.isEnabled:()Z
            ifne 5
         2: .line 489
            aload 0 /* this */
            aload 4 /* surface */
            invokevirtual android.view.ThreadedRenderer.initialize:(Landroid/view/Surface;)Z
            ifeq 5
         3: .line 490
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            aload 3 /* attachInfo */
            aload 5 /* surfaceInsets */
            invokevirtual android.view.ThreadedRenderer.setup:(IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V
         4: .line 491
            iconst_1
            ireturn
         5: .line 495
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 5 // android.graphics.Rect surfaceInsets
        end local 4 // android.view.Surface surface
        end local 3 // android.view.View$AttachInfo attachInfo
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    6     0           this  Landroid/view/ThreadedRenderer;
            0    6     1          width  I
            0    6     2         height  I
            0    6     3     attachInfo  Landroid/view/View$AttachInfo;
            0    6     4        surface  Landroid/view/Surface;
            0    6     5  surfaceInsets  Landroid/graphics/Rect;
    Exceptions:
      throws android.view.Surface$OutOfResourcesException
    MethodParameters:
               Name  Flags
      width          
      height         
      attachInfo     
      surface        
      surfaceInsets  

  void updateSurface(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.Surface surface
         0: .line 504
            aload 0 /* this */
            aload 1 /* surface */
            invokevirtual android.view.ThreadedRenderer.updateEnabledState:(Landroid/view/Surface;)V
         1: .line 505
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* surface */
            invokestatic android.view.ThreadedRenderer.nUpdateSurface:(JLandroid/view/Surface;)V
         2: .line 506
            return
        end local 1 // android.view.Surface surface
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Landroid/view/ThreadedRenderer;
            0    3     1  surface  Landroid/view/Surface;
    Exceptions:
      throws android.view.Surface$OutOfResourcesException
    MethodParameters:
         Name  Flags
      surface  

  boolean pauseSurface(android.view.Surface);
    descriptor: (Landroid/view/Surface;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.Surface surface
         0: .line 516
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* surface */
            invokestatic android.view.ThreadedRenderer.nPauseSurface:(JLandroid/view/Surface;)Z
            ireturn
        end local 1 // android.view.Surface surface
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Landroid/view/ThreadedRenderer;
            0    1     1  surface  Landroid/view/Surface;
    MethodParameters:
         Name  Flags
      surface  

  void setStopped(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // boolean stopped
         0: .line 524
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            iload 1 /* stopped */
            invokestatic android.view.ThreadedRenderer.nSetStopped:(JZ)V
         1: .line 525
            return
        end local 1 // boolean stopped
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/ThreadedRenderer;
            0    2     1  stopped  Z
    MethodParameters:
         Name  Flags
      stopped  

  void destroyHardwareResources(android.view.View);
    descriptor: (Landroid/view/View;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.View view
         0: .line 534
            aload 1 /* view */
            invokestatic android.view.ThreadedRenderer.destroyResources:(Landroid/view/View;)V
         1: .line 535
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nDestroyHardwareResources:(J)V
         2: .line 536
            return
        end local 1 // android.view.View view
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/view/ThreadedRenderer;
            0    3     1  view  Landroid/view/View;
    MethodParameters:
      Name  Flags
      view  

  private static void destroyResources(android.view.View);
    descriptor: (Landroid/view/View;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.View view
         0: .line 539
            aload 0 /* view */
            invokevirtual android.view.View.destroyHardwareResources:()V
         1: .line 540
            return
        end local 0 // android.view.View view
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  view  Landroid/view/View;
    MethodParameters:
      Name  Flags
      view  

  void detachSurfaceTexture(long);
    descriptor: (J)V
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // long hardwareLayer
         0: .line 547
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            lload 1 /* hardwareLayer */
            invokestatic android.view.ThreadedRenderer.nDetachSurfaceTexture:(JJ)V
         1: .line 548
            return
        end local 1 // long hardwareLayer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    2     0           this  Landroid/view/ThreadedRenderer;
            0    2     1  hardwareLayer  J
    MethodParameters:
               Name  Flags
      hardwareLayer  

  void setup(int, int, android.view.View$AttachInfo, android.graphics.Rect);
    descriptor: (IILandroid/view/View$AttachInfo;Landroid/graphics/Rect;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // int width
        start local 2 // int height
        start local 3 // android.view.View$AttachInfo attachInfo
        start local 4 // android.graphics.Rect surfaceInsets
         0: .line 559
            aload 0 /* this */
            iload 1 /* width */
            putfield android.view.ThreadedRenderer.mWidth:I
         1: .line 560
            aload 0 /* this */
            iload 2 /* height */
            putfield android.view.ThreadedRenderer.mHeight:I
         2: .line 562
            aload 4 /* surfaceInsets */
            ifnull 11
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            ifne 4
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.right:I
            ifne 4
         3: .line 563
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
            ifne 4
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.bottom:I
            ifeq 11
         4: .line 564
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.view.ThreadedRenderer.mHasInsets:Z
         5: .line 565
            aload 0 /* this */
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.left:I
            putfield android.view.ThreadedRenderer.mInsetLeft:I
         6: .line 566
            aload 0 /* this */
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.top:I
            putfield android.view.ThreadedRenderer.mInsetTop:I
         7: .line 567
            aload 0 /* this */
            iload 1 /* width */
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetLeft:I
            iadd
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.right:I
            iadd
            putfield android.view.ThreadedRenderer.mSurfaceWidth:I
         8: .line 568
            aload 0 /* this */
            iload 2 /* height */
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetTop:I
            iadd
            aload 4 /* surfaceInsets */
            getfield android.graphics.Rect.bottom:I
            iadd
            putfield android.view.ThreadedRenderer.mSurfaceHeight:I
         9: .line 571
            aload 0 /* this */
            iconst_0
            invokevirtual android.view.ThreadedRenderer.setOpaque:(Z)V
        10: .line 572
            goto 16
        11: .line 573
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield android.view.ThreadedRenderer.mHasInsets:Z
        12: .line 574
            aload 0 /* this */
            iconst_0
            putfield android.view.ThreadedRenderer.mInsetLeft:I
        13: .line 575
            aload 0 /* this */
            iconst_0
            putfield android.view.ThreadedRenderer.mInsetTop:I
        14: .line 576
            aload 0 /* this */
            iload 1 /* width */
            putfield android.view.ThreadedRenderer.mSurfaceWidth:I
        15: .line 577
            aload 0 /* this */
            iload 2 /* height */
            putfield android.view.ThreadedRenderer.mSurfaceHeight:I
        16: .line 580
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetLeft:I
            ineg
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetTop:I
            ineg
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mSurfaceWidth:I
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mSurfaceHeight:I
            invokevirtual android.view.RenderNode.setLeftTopRightBottom:(IIII)Z
            pop
        17: .line 581
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mLightRadius:F
        18: .line 582
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mAmbientShadowAlpha:I
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mSpotShadowAlpha:I
        19: .line 581
            invokestatic android.view.ThreadedRenderer.nSetup:(JFII)V
        20: .line 584
            aload 0 /* this */
            aload 3 /* attachInfo */
            invokevirtual android.view.ThreadedRenderer.setLightCenter:(Landroid/view/View$AttachInfo;)V
        21: .line 585
            return
        end local 4 // android.graphics.Rect surfaceInsets
        end local 3 // android.view.View$AttachInfo attachInfo
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   22     0           this  Landroid/view/ThreadedRenderer;
            0   22     1          width  I
            0   22     2         height  I
            0   22     3     attachInfo  Landroid/view/View$AttachInfo;
            0   22     4  surfaceInsets  Landroid/graphics/Rect;
    MethodParameters:
               Name  Flags
      width          
      height         
      attachInfo     
      surfaceInsets  

  void setLightCenter(android.view.View$AttachInfo);
    descriptor: (Landroid/view/View$AttachInfo;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.View$AttachInfo attachInfo
         0: .line 594
            aload 1 /* attachInfo */
            getfield android.view.View$AttachInfo.mPoint:Landroid/graphics/Point;
            astore 2 /* displaySize */
        start local 2 // android.graphics.Point displaySize
         1: .line 595
            aload 1 /* attachInfo */
            getfield android.view.View$AttachInfo.mDisplay:Landroid/view/Display;
            aload 2 /* displaySize */
            invokevirtual android.view.Display.getRealSize:(Landroid/graphics/Point;)V
         2: .line 596
            aload 2 /* displaySize */
            getfield android.graphics.Point.x:I
            i2f
            fconst_2
            fdiv
            aload 1 /* attachInfo */
            getfield android.view.View$AttachInfo.mWindowLeft:I
            i2f
            fsub
            fstore 3 /* lightX */
        start local 3 // float lightX
         3: .line 597
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mLightY:F
            aload 1 /* attachInfo */
            getfield android.view.View$AttachInfo.mWindowTop:I
            i2f
            fsub
            fstore 4 /* lightY */
        start local 4 // float lightY
         4: .line 599
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            fload 3 /* lightX */
            fload 4 /* lightY */
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mLightZ:F
            invokestatic android.view.ThreadedRenderer.nSetLightCenter:(JFFF)V
         5: .line 600
            return
        end local 4 // float lightY
        end local 3 // float lightX
        end local 2 // android.graphics.Point displaySize
        end local 1 // android.view.View$AttachInfo attachInfo
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Landroid/view/ThreadedRenderer;
            0    6     1   attachInfo  Landroid/view/View$AttachInfo;
            1    6     2  displaySize  Landroid/graphics/Point;
            3    6     3       lightX  F
            4    6     4       lightY  F
    MethodParameters:
            Name  Flags
      attachInfo  

  void setOpaque(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // boolean opaque
         0: .line 606
            aload 0 /* this */
            iload 1 /* opaque */
            ifeq 1
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mHasInsets:Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack: android.view.ThreadedRenderer
         1: iconst_0
      StackMap locals: android.view.ThreadedRenderer int
      StackMap stack: android.view.ThreadedRenderer int
         2: putfield android.view.ThreadedRenderer.mIsOpaque:Z
         3: .line 607
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mIsOpaque:Z
            invokestatic android.view.ThreadedRenderer.nSetOpaque:(JZ)V
         4: .line 608
            return
        end local 1 // boolean opaque
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Landroid/view/ThreadedRenderer;
            0    5     1  opaque  Z
    MethodParameters:
        Name  Flags
      opaque  

  boolean isOpaque();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 611
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mIsOpaque:Z
            ireturn
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;

  void setWideGamut(boolean);
    descriptor: (Z)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // boolean wideGamut
         0: .line 618
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            iload 1 /* wideGamut */
            invokestatic android.view.ThreadedRenderer.nSetWideGamut:(JZ)V
         1: .line 619
            return
        end local 1 // boolean wideGamut
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/view/ThreadedRenderer;
            0    2     1  wideGamut  Z
    MethodParameters:
           Name  Flags
      wideGamut  

  int getWidth();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 628
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mWidth:I
            ireturn
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;

  int getHeight();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 638
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mHeight:I
            ireturn
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/view/ThreadedRenderer;

  void dumpGfxInfo(java.io.PrintWriter, java.io.FileDescriptor, java.lang.String[]);
    descriptor: (Ljava/io/PrintWriter;Ljava/io/FileDescriptor;[Ljava/lang/String;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=7, args_size=4
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // java.io.PrintWriter pw
        start local 2 // java.io.FileDescriptor fd
        start local 3 // java.lang.String[] args
         0: .line 645
            aload 1 /* pw */
            invokevirtual java.io.PrintWriter.flush:()V
         1: .line 649
            aload 3 /* args */
            ifnull 2
            aload 3 /* args */
            arraylength
            ifne 3
      StackMap locals:
      StackMap stack:
         2: iconst_1
            goto 4
      StackMap locals:
      StackMap stack:
         3: iconst_0
      StackMap locals:
      StackMap stack: int
         4: istore 4 /* flags */
        start local 4 // int flags
         5: .line 650
            iconst_0
            istore 5 /* i */
        start local 5 // int i
         6: goto 17
         7: .line 651
      StackMap locals: int int
      StackMap stack:
            aload 3 /* args */
            iload 5 /* i */
            aaload
            dup
            astore 6
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 3
           -252053678: 8
                 1492: 9
            108404047: 10
              default: 16
          }
      StackMap locals: java.lang.String
      StackMap stack:
         8: aload 6
            ldc "framestats"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 11
            goto 16
      StackMap locals:
      StackMap stack:
         9: aload 6
            ldc "-a"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 15
            goto 16
      StackMap locals:
      StackMap stack:
        10: aload 6
            ldc "reset"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 13
            goto 16
        11: .line 653
      StackMap locals:
      StackMap stack:
            iload 4 /* flags */
            iconst_1
            ior
            istore 4 /* flags */
        12: .line 654
            goto 16
        13: .line 656
      StackMap locals:
      StackMap stack:
            iload 4 /* flags */
            iconst_2
            ior
            istore 4 /* flags */
        14: .line 657
            goto 16
        15: .line 659
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 4 /* flags */
        16: .line 650
      StackMap locals:
      StackMap stack:
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        17: iload 5 /* i */
            aload 3 /* args */
            arraylength
            if_icmplt 7
        end local 5 // int i
        18: .line 663
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 2 /* fd */
            iload 4 /* flags */
            invokestatic android.view.ThreadedRenderer.nDumpProfileInfo:(JLjava/io/FileDescriptor;I)V
        19: .line 664
            return
        end local 4 // int flags
        end local 3 // java.lang.String[] args
        end local 2 // java.io.FileDescriptor fd
        end local 1 // java.io.PrintWriter pw
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   20     0   this  Landroid/view/ThreadedRenderer;
            0   20     1     pw  Ljava/io/PrintWriter;
            0   20     2     fd  Ljava/io/FileDescriptor;
            0   20     3   args  [Ljava/lang/String;
            5   20     4  flags  I
            6   18     5      i  I
    MethodParameters:
      Name  Flags
      pw    
      fd    
      args  

  boolean loadSystemProperties();
    descriptor: ()Z
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 674
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nLoadSystemProperties:(J)Z
            istore 1 /* changed */
        start local 1 // boolean changed
         1: .line 675
            iload 1 /* changed */
            ifeq 3
         2: .line 676
            aload 0 /* this */
            invokevirtual android.view.ThreadedRenderer.invalidateRoot:()V
         3: .line 678
      StackMap locals: int
      StackMap stack:
            iload 1 /* changed */
            ireturn
        end local 1 // boolean changed
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/view/ThreadedRenderer;
            1    4     1  changed  Z

  private void updateViewTreeDisplayList(android.view.View);
    descriptor: (Landroid/view/View;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.View view
         0: .line 682
            aload 1 /* view */
            dup
            getfield android.view.View.mPrivateFlags:I
            bipush 32
            ior
            putfield android.view.View.mPrivateFlags:I
         1: .line 683
            aload 1 /* view */
            aload 1 /* view */
            getfield android.view.View.mPrivateFlags:I
            ldc -2147483648
            iand
         2: .line 684
            ldc -2147483648
            if_icmpne 3
            iconst_1
            goto 4
      StackMap locals:
      StackMap stack: android.view.View
         3: iconst_0
         4: .line 683
      StackMap locals: android.view.ThreadedRenderer android.view.View
      StackMap stack: android.view.View int
            putfield android.view.View.mRecreateDisplayList:Z
         5: .line 685
            aload 1 /* view */
            dup
            getfield android.view.View.mPrivateFlags:I
            ldc 2147483647
            iand
            putfield android.view.View.mPrivateFlags:I
         6: .line 686
            aload 1 /* view */
            invokevirtual android.view.View.updateDisplayListIfDirty:()Landroid/view/RenderNode;
            pop
         7: .line 687
            aload 1 /* view */
            iconst_0
            putfield android.view.View.mRecreateDisplayList:Z
         8: .line 688
            return
        end local 1 // android.view.View view
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Landroid/view/ThreadedRenderer;
            0    9     1  view  Landroid/view/View;
    MethodParameters:
      Name  Flags
      view  

  private void updateRootDisplayList(android.view.View, android.view.ThreadedRenderer$DrawCallbacks);
    descriptor: (Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.View view
        start local 2 // android.view.ThreadedRenderer$DrawCallbacks callbacks
         0: .line 691
            ldc 8
            ldc "Record View#draw()"
            invokestatic android.os.Trace.traceBegin:(JLjava/lang/String;)V
         1: .line 692
            aload 0 /* this */
            aload 1 /* view */
            invokevirtual android.view.ThreadedRenderer.updateViewTreeDisplayList:(Landroid/view/View;)V
         2: .line 694
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNodeNeedsUpdate:Z
            ifne 3
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            invokevirtual android.view.RenderNode.isValid:()Z
            ifne 18
         3: .line 695
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mSurfaceWidth:I
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mSurfaceHeight:I
            invokevirtual android.view.RenderNode.start:(II)Landroid/view/DisplayListCanvas;
            astore 3 /* canvas */
        start local 3 // android.view.DisplayListCanvas canvas
         4: .line 697
            aload 3 /* canvas */
            invokevirtual android.view.DisplayListCanvas.save:()I
            istore 4 /* saveCount */
        start local 4 // int saveCount
         5: .line 698
            aload 3 /* canvas */
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetLeft:I
            i2f
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mInsetTop:I
            i2f
            invokevirtual android.view.DisplayListCanvas.translate:(FF)V
         6: .line 699
            aload 2 /* callbacks */
            aload 3 /* canvas */
            invokeinterface android.view.ThreadedRenderer$DrawCallbacks.onPreDraw:(Landroid/view/DisplayListCanvas;)V
         7: .line 701
            aload 3 /* canvas */
            invokevirtual android.view.DisplayListCanvas.insertReorderBarrier:()V
         8: .line 702
            aload 3 /* canvas */
            aload 1 /* view */
            invokevirtual android.view.View.updateDisplayListIfDirty:()Landroid/view/RenderNode;
            invokevirtual android.view.DisplayListCanvas.drawRenderNode:(Landroid/view/RenderNode;)V
         9: .line 703
            aload 3 /* canvas */
            invokevirtual android.view.DisplayListCanvas.insertInorderBarrier:()V
        10: .line 705
            aload 2 /* callbacks */
            aload 3 /* canvas */
            invokeinterface android.view.ThreadedRenderer$DrawCallbacks.onPostDraw:(Landroid/view/DisplayListCanvas;)V
        11: .line 706
            aload 3 /* canvas */
            iload 4 /* saveCount */
            invokevirtual android.view.DisplayListCanvas.restoreToCount:(I)V
        12: .line 707
            aload 0 /* this */
            iconst_0
            putfield android.view.ThreadedRenderer.mRootNodeNeedsUpdate:Z
        end local 4 // int saveCount
        13: .line 708
            goto 17
      StackMap locals: android.view.ThreadedRenderer android.view.View android.view.ThreadedRenderer$DrawCallbacks android.view.DisplayListCanvas
      StackMap stack: java.lang.Throwable
        14: astore 5
        15: .line 709
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            aload 3 /* canvas */
            invokevirtual android.view.RenderNode.end:(Landroid/view/DisplayListCanvas;)V
        16: .line 710
            aload 5
            athrow
        17: .line 709
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            aload 3 /* canvas */
            invokevirtual android.view.RenderNode.end:(Landroid/view/DisplayListCanvas;)V
        end local 3 // android.view.DisplayListCanvas canvas
        18: .line 712
      StackMap locals:
      StackMap stack:
            ldc 8
            invokestatic android.os.Trace.traceEnd:(J)V
        19: .line 713
            return
        end local 2 // android.view.ThreadedRenderer$DrawCallbacks callbacks
        end local 1 // android.view.View view
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   20     0       this  Landroid/view/ThreadedRenderer;
            0   20     1       view  Landroid/view/View;
            0   20     2  callbacks  Landroid/view/ThreadedRenderer$DrawCallbacks;
            4   18     3     canvas  Landroid/view/DisplayListCanvas;
            5   13     4  saveCount  I
      Exception table:
        from    to  target  type
           4    14      14  any
    MethodParameters:
           Name  Flags
      view       
      callbacks  

  public void addRenderNode(android.view.RenderNode, boolean);
    descriptor: (Landroid/view/RenderNode;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.RenderNode node
        start local 2 // boolean placeFront
         0: .line 723
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* node */
            getfield android.view.RenderNode.mNativeRenderNode:J
            iload 2 /* placeFront */
            invokestatic android.view.ThreadedRenderer.nAddRenderNode:(JJZ)V
         1: .line 724
            return
        end local 2 // boolean placeFront
        end local 1 // android.view.RenderNode node
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/view/ThreadedRenderer;
            0    2     1        node  Landroid/view/RenderNode;
            0    2     2  placeFront  Z
    MethodParameters:
            Name  Flags
      node        
      placeFront  

  public void removeRenderNode(android.view.RenderNode);
    descriptor: (Landroid/view/RenderNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.RenderNode node
         0: .line 731
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* node */
            getfield android.view.RenderNode.mNativeRenderNode:J
            invokestatic android.view.ThreadedRenderer.nRemoveRenderNode:(JJ)V
         1: .line 732
            return
        end local 1 // android.view.RenderNode node
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;
            0    2     1  node  Landroid/view/RenderNode;
    MethodParameters:
      Name  Flags
      node  

  public void drawRenderNode(android.view.RenderNode);
    descriptor: (Landroid/view/RenderNode;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.RenderNode node
         0: .line 740
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* node */
            getfield android.view.RenderNode.mNativeRenderNode:J
            invokestatic android.view.ThreadedRenderer.nDrawRenderNode:(JJ)V
         1: .line 741
            return
        end local 1 // android.view.RenderNode node
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;
            0    2     1  node  Landroid/view/RenderNode;
    MethodParameters:
      Name  Flags
      node  

  public void setContentDrawBounds(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // int left
        start local 2 // int top
        start local 3 // int right
        start local 4 // int bottom
         0: .line 753
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            iload 1 /* left */
            iload 2 /* top */
            iload 3 /* right */
            iload 4 /* bottom */
            invokestatic android.view.ThreadedRenderer.nSetContentDrawBounds:(JIIII)V
         1: .line 754
            return
        end local 4 // int bottom
        end local 3 // int right
        end local 2 // int top
        end local 1 // int left
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/view/ThreadedRenderer;
            0    2     1    left  I
            0    2     2     top  I
            0    2     3   right  I
            0    2     4  bottom  I
    MethodParameters:
        Name  Flags
      left    
      top     
      right   
      bottom  

  void invalidateRoot();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 784
            aload 0 /* this */
            iconst_1
            putfield android.view.ThreadedRenderer.mRootNodeNeedsUpdate:Z
         1: .line 785
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;

  void draw(android.view.View, android.view.View$AttachInfo, android.view.ThreadedRenderer$DrawCallbacks, android.view.ThreadedRenderer$FrameDrawingCallback);
    descriptor: (Landroid/view/View;Landroid/view/View$AttachInfo;Landroid/view/ThreadedRenderer$DrawCallbacks;Landroid/view/ThreadedRenderer$FrameDrawingCallback;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=8, args_size=5
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.View view
        start local 2 // android.view.View$AttachInfo attachInfo
        start local 3 // android.view.ThreadedRenderer$DrawCallbacks callbacks
        start local 4 // android.view.ThreadedRenderer$FrameDrawingCallback frameDrawingCallback
         0: .line 796
            aload 2 /* attachInfo */
            iconst_1
            putfield android.view.View$AttachInfo.mIgnoreDirtyState:Z
         1: .line 798
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mViewRootImpl:Landroid/view/ViewRootImpl;
            getfield android.view.ViewRootImpl.mChoreographer:Landroid/view/Choreographer;
            astore 5 /* choreographer */
        start local 5 // android.view.Choreographer choreographer
         2: .line 799
            aload 5 /* choreographer */
            getfield android.view.Choreographer.mFrameInfo:Landroid/view/FrameInfo;
            invokevirtual android.view.FrameInfo.markDrawStart:()V
         3: .line 801
            aload 0 /* this */
            aload 1 /* view */
            aload 3 /* callbacks */
            invokevirtual android.view.ThreadedRenderer.updateRootDisplayList:(Landroid/view/View;Landroid/view/ThreadedRenderer$DrawCallbacks;)V
         4: .line 803
            aload 2 /* attachInfo */
            iconst_0
            putfield android.view.View$AttachInfo.mIgnoreDirtyState:Z
         5: .line 807
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mPendingAnimatingRenderNodes:Ljava/util/List;
            ifnull 16
         6: .line 808
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mPendingAnimatingRenderNodes:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            istore 6 /* count */
        start local 6 // int count
         7: .line 809
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         8: goto 13
         9: .line 810
      StackMap locals: android.view.Choreographer int int
      StackMap stack:
            aload 0 /* this */
        10: .line 811
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mPendingAnimatingRenderNodes:Ljava/util/List;
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.view.RenderNode
        11: .line 810
            invokevirtual android.view.ThreadedRenderer.registerAnimatingRenderNode:(Landroid/view/RenderNode;)V
        12: .line 809
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        13: iload 7 /* i */
            iload 6 /* count */
            if_icmplt 9
        end local 7 // int i
        14: .line 813
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mPendingAnimatingRenderNodes:Ljava/util/List;
            invokeinterface java.util.List.clear:()V
        15: .line 816
            aload 2 /* attachInfo */
            aconst_null
            putfield android.view.View$AttachInfo.mPendingAnimatingRenderNodes:Ljava/util/List;
        end local 6 // int count
        16: .line 819
      StackMap locals:
      StackMap stack:
            aload 5 /* choreographer */
            getfield android.view.Choreographer.mFrameInfo:Landroid/view/FrameInfo;
            getfield android.view.FrameInfo.mFrameInfo:[J
            astore 6 /* frameInfo */
        start local 6 // long[] frameInfo
        17: .line 820
            aload 4 /* frameDrawingCallback */
            ifnull 19
        18: .line 821
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 4 /* frameDrawingCallback */
            invokestatic android.view.ThreadedRenderer.nSetFrameCallback:(JLandroid/view/ThreadedRenderer$FrameDrawingCallback;)V
        19: .line 823
      StackMap locals: long[]
      StackMap stack:
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 6 /* frameInfo */
            aload 6 /* frameInfo */
            arraylength
            invokestatic android.view.ThreadedRenderer.nSyncAndDrawFrame:(J[JI)I
            istore 7 /* syncResult */
        start local 7 // int syncResult
        20: .line 824
            iload 7 /* syncResult */
            iconst_2
            iand
            ifeq 24
        21: .line 825
            aload 0 /* this */
            iconst_0
            invokevirtual android.view.ThreadedRenderer.setEnabled:(Z)V
        22: .line 826
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mViewRootImpl:Landroid/view/ViewRootImpl;
            getfield android.view.ViewRootImpl.mSurface:Landroid/view/Surface;
            invokevirtual android.view.Surface.release:()V
        23: .line 829
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mViewRootImpl:Landroid/view/ViewRootImpl;
            invokevirtual android.view.ViewRootImpl.invalidate:()V
        24: .line 831
      StackMap locals: int
      StackMap stack:
            iload 7 /* syncResult */
            iconst_1
            iand
            ifeq 26
        25: .line 832
            aload 2 /* attachInfo */
            getfield android.view.View$AttachInfo.mViewRootImpl:Landroid/view/ViewRootImpl;
            invokevirtual android.view.ViewRootImpl.invalidate:()V
        26: .line 834
      StackMap locals:
      StackMap stack:
            return
        end local 7 // int syncResult
        end local 6 // long[] frameInfo
        end local 5 // android.view.Choreographer choreographer
        end local 4 // android.view.ThreadedRenderer$FrameDrawingCallback frameDrawingCallback
        end local 3 // android.view.ThreadedRenderer$DrawCallbacks callbacks
        end local 2 // android.view.View$AttachInfo attachInfo
        end local 1 // android.view.View view
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   27     0                  this  Landroid/view/ThreadedRenderer;
            0   27     1                  view  Landroid/view/View;
            0   27     2            attachInfo  Landroid/view/View$AttachInfo;
            0   27     3             callbacks  Landroid/view/ThreadedRenderer$DrawCallbacks;
            0   27     4  frameDrawingCallback  Landroid/view/ThreadedRenderer$FrameDrawingCallback;
            2   27     5         choreographer  Landroid/view/Choreographer;
            7   16     6                 count  I
            8   14     7                     i  I
           17   27     6             frameInfo  [J
           20   27     7            syncResult  I
    MethodParameters:
                      Name  Flags
      view                  
      attachInfo            
      callbacks             
      frameDrawingCallback  

  void setFrameCompleteCallback(android.view.ThreadedRenderer$FrameCompleteCallback);
    descriptor: (Landroid/view/ThreadedRenderer$FrameCompleteCallback;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.ThreadedRenderer$FrameCompleteCallback callback
         0: .line 837
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* callback */
            invokestatic android.view.ThreadedRenderer.nSetFrameCompleteCallback:(JLandroid/view/ThreadedRenderer$FrameCompleteCallback;)V
         1: .line 838
            return
        end local 1 // android.view.ThreadedRenderer$FrameCompleteCallback callback
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/view/ThreadedRenderer;
            0    2     1  callback  Landroid/view/ThreadedRenderer$FrameCompleteCallback;
    MethodParameters:
          Name  Flags
      callback  

  static void invokeFunctor(long, boolean);
    descriptor: (JZ)V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // long functor
        start local 2 // boolean waitForCompletion
         0: .line 841
            lload 0 /* functor */
            iload 2 /* waitForCompletion */
            invokestatic android.view.ThreadedRenderer.nInvokeFunctor:(JZ)V
         1: .line 842
            return
        end local 2 // boolean waitForCompletion
        end local 0 // long functor
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    2     0            functor  J
            0    2     2  waitForCompletion  Z
    MethodParameters:
                   Name  Flags
      functor            
      waitForCompletion  

  android.view.TextureLayer createTextureLayer();
    descriptor: ()Landroid/view/TextureLayer;
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 851
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nCreateTextureLayer:(J)J
            lstore 1 /* layer */
        start local 1 // long layer
         1: .line 852
            aload 0 /* this */
            lload 1 /* layer */
            invokestatic android.view.TextureLayer.adoptTextureLayer:(Landroid/view/ThreadedRenderer;J)Landroid/view/TextureLayer;
            areturn
        end local 1 // long layer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/view/ThreadedRenderer;
            1    2     1  layer  J

  void buildLayer(android.view.RenderNode);
    descriptor: (Landroid/view/RenderNode;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.RenderNode node
         0: .line 857
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* node */
            invokevirtual android.view.RenderNode.getNativeDisplayList:()J
            invokestatic android.view.ThreadedRenderer.nBuildLayer:(JJ)V
         1: .line 858
            return
        end local 1 // android.view.RenderNode node
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;
            0    2     1  node  Landroid/view/RenderNode;
    MethodParameters:
      Name  Flags
      node  

  boolean copyLayerInto(android.view.TextureLayer, android.graphics.Bitmap);
    descriptor: (Landroid/view/TextureLayer;Landroid/graphics/Bitmap;)Z
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.TextureLayer layer
        start local 2 // android.graphics.Bitmap bitmap
         0: .line 862
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
         1: .line 863
            aload 1 /* layer */
            invokevirtual android.view.TextureLayer.getDeferredLayerUpdater:()J
            aload 2 /* bitmap */
         2: .line 862
            invokestatic android.view.ThreadedRenderer.nCopyLayerInto:(JJLandroid/graphics/Bitmap;)Z
            ireturn
        end local 2 // android.graphics.Bitmap bitmap
        end local 1 // android.view.TextureLayer layer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/view/ThreadedRenderer;
            0    3     1   layer  Landroid/view/TextureLayer;
            0    3     2  bitmap  Landroid/graphics/Bitmap;
    MethodParameters:
        Name  Flags
      layer   final
      bitmap  final

  void pushLayerUpdate(android.view.TextureLayer);
    descriptor: (Landroid/view/TextureLayer;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.TextureLayer layer
         0: .line 873
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* layer */
            invokevirtual android.view.TextureLayer.getDeferredLayerUpdater:()J
            invokestatic android.view.ThreadedRenderer.nPushLayerUpdate:(JJ)V
         1: .line 874
            return
        end local 1 // android.view.TextureLayer layer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/view/ThreadedRenderer;
            0    2     1  layer  Landroid/view/TextureLayer;
    MethodParameters:
       Name  Flags
      layer  

  void onLayerDestroyed(android.view.TextureLayer);
    descriptor: (Landroid/view/TextureLayer;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.TextureLayer layer
         0: .line 881
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* layer */
            invokevirtual android.view.TextureLayer.getDeferredLayerUpdater:()J
            invokestatic android.view.ThreadedRenderer.nCancelLayerUpdate:(JJ)V
         1: .line 882
            return
        end local 1 // android.view.TextureLayer layer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/view/ThreadedRenderer;
            0    2     1  layer  Landroid/view/TextureLayer;
    MethodParameters:
       Name  Flags
      layer  

  void fence();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 888
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nFence:(J)V
         1: .line 889
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;

  void stopDrawing();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 898
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nStopDrawing:(J)V
         1: .line 899
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;

  public void notifyFramePending();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 905
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nNotifyFramePending:(J)V
         1: .line 906
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;

  void registerAnimatingRenderNode(android.view.RenderNode);
    descriptor: (Landroid/view/RenderNode;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.RenderNode animator
         0: .line 910
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            getfield android.view.RenderNode.mNativeRenderNode:J
            aload 1 /* animator */
            getfield android.view.RenderNode.mNativeRenderNode:J
            invokestatic android.view.ThreadedRenderer.nRegisterAnimatingRenderNode:(JJ)V
         1: .line 911
            return
        end local 1 // android.view.RenderNode animator
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/view/ThreadedRenderer;
            0    2     1  animator  Landroid/view/RenderNode;
    MethodParameters:
          Name  Flags
      animator  

  void registerVectorDrawableAnimator(android.graphics.drawable.AnimatedVectorDrawable$VectorDrawableAnimatorRT);
    descriptor: (Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.graphics.drawable.AnimatedVectorDrawable$VectorDrawableAnimatorRT animator
         0: .line 915
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mRootNode:Landroid/view/RenderNode;
            getfield android.view.RenderNode.mNativeRenderNode:J
         1: .line 916
            aload 1 /* animator */
            invokevirtual android.graphics.drawable.AnimatedVectorDrawable$VectorDrawableAnimatorRT.getAnimatorNativePtr:()J
         2: .line 915
            invokestatic android.view.ThreadedRenderer.nRegisterVectorDrawableAnimator:(JJ)V
         3: .line 917
            return
        end local 1 // android.graphics.drawable.AnimatedVectorDrawable$VectorDrawableAnimatorRT animator
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/view/ThreadedRenderer;
            0    4     1  animator  Landroid/graphics/drawable/AnimatedVectorDrawable$VectorDrawableAnimatorRT;
    MethodParameters:
          Name  Flags
      animator  

  public void serializeDisplayListTree();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 920
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nSerializeDisplayListTree:(J)V
         1: .line 921
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/view/ThreadedRenderer;

  public static int copySurfaceInto(android.view.Surface, android.graphics.Rect, android.graphics.Bitmap);
    descriptor: (Landroid/view/Surface;Landroid/graphics/Rect;Landroid/graphics/Bitmap;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // android.view.Surface surface
        start local 1 // android.graphics.Rect srcRect
        start local 2 // android.graphics.Bitmap bitmap
         0: .line 924
            aload 1 /* srcRect */
            ifnonnull 2
         1: .line 926
            aload 0 /* surface */
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            aload 2 /* bitmap */
            invokestatic android.view.ThreadedRenderer.nCopySurfaceInto:(Landroid/view/Surface;IIIILandroid/graphics/Bitmap;)I
            ireturn
         2: .line 928
      StackMap locals:
      StackMap stack:
            aload 0 /* surface */
            aload 1 /* srcRect */
            getfield android.graphics.Rect.left:I
            aload 1 /* srcRect */
            getfield android.graphics.Rect.top:I
         3: .line 929
            aload 1 /* srcRect */
            getfield android.graphics.Rect.right:I
            aload 1 /* srcRect */
            getfield android.graphics.Rect.bottom:I
            aload 2 /* bitmap */
         4: .line 928
            invokestatic android.view.ThreadedRenderer.nCopySurfaceInto:(Landroid/view/Surface;IIIILandroid/graphics/Bitmap;)I
            ireturn
        end local 2 // android.graphics.Bitmap bitmap
        end local 1 // android.graphics.Rect srcRect
        end local 0 // android.view.Surface surface
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  surface  Landroid/view/Surface;
            0    5     1  srcRect  Landroid/graphics/Rect;
            0    5     2   bitmap  Landroid/graphics/Bitmap;
    MethodParameters:
         Name  Flags
      surface  
      srcRect  
      bitmap   

  public static android.graphics.Bitmap createHardwareBitmap(android.view.RenderNode, int, int);
    descriptor: (Landroid/view/RenderNode;II)Landroid/graphics/Bitmap;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.view.RenderNode node
        start local 1 // int width
        start local 2 // int height
         0: .line 939
            aload 0 /* node */
            invokevirtual android.view.RenderNode.getNativeDisplayList:()J
            iload 1 /* width */
            iload 2 /* height */
            invokestatic android.view.ThreadedRenderer.nCreateHardwareBitmap:(JII)Landroid/graphics/Bitmap;
            areturn
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.view.RenderNode node
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    node  Landroid/view/RenderNode;
            0    1     1   width  I
            0    1     2  height  I
    MethodParameters:
        Name  Flags
      node    
      width   
      height  

  public static void setHighContrastText(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean highContrastText
         0: .line 947
            iload 0 /* highContrastText */
            invokestatic android.view.ThreadedRenderer.nSetHighContrastText:(Z)V
         1: .line 948
            return
        end local 0 // boolean highContrastText
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    2     0  highContrastText  Z
    MethodParameters:
                  Name  Flags
      highContrastText  

  public static void setIsolatedProcess(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean isIsolated
         0: .line 954
            iload 0 /* isIsolated */
            invokestatic android.view.ThreadedRenderer.nSetIsolatedProcess:(Z)V
         1: .line 955
            return
        end local 0 // boolean isIsolated
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0  isIsolated  Z
    MethodParameters:
            Name  Flags
      isIsolated  

  public static void setDebuggingEnabled(boolean);
    descriptor: (Z)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // boolean enable
         0: .line 961
            iload 0 /* enable */
            invokestatic android.view.ThreadedRenderer.nSetDebuggingEnabled:(Z)V
         1: .line 962
            return
        end local 0 // boolean enable
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0  enable  Z
    MethodParameters:
        Name  Flags
      enable  

  void allocateBuffers(android.view.Surface);
    descriptor: (Landroid/view/Surface;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.Surface surface
         0: .line 965
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* surface */
            invokestatic android.view.ThreadedRenderer.nAllocateBuffers:(JLandroid/view/Surface;)V
         1: .line 966
            return
        end local 1 // android.view.Surface surface
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/view/ThreadedRenderer;
            0    2     1  surface  Landroid/view/Surface;
    MethodParameters:
         Name  Flags
      surface  

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.view.ThreadedRenderer this
         0: .line 971
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            invokestatic android.view.ThreadedRenderer.nDeleteProxy:(J)V
         1: .line 972
            aload 0 /* this */
            lconst_0
            putfield android.view.ThreadedRenderer.mNativeProxy:J
         2: .line 973
            goto 6
      StackMap locals:
      StackMap stack: java.lang.Throwable
         3: astore 1
         4: .line 974
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         5: .line 975
            aload 1
            athrow
         6: .line 974
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         7: .line 976
            return
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/view/ThreadedRenderer;
      Exception table:
        from    to  target  type
           0     3       3  any
    Exceptions:
      throws java.lang.Throwable

  void addFrameMetricsObserver(android.view.FrameMetricsObserver);
    descriptor: (Landroid/view/FrameMetricsObserver;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.FrameMetricsObserver observer
         0: .line 1158
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* observer */
            invokestatic android.view.ThreadedRenderer.nAddFrameMetricsObserver:(JLandroid/view/FrameMetricsObserver;)J
            lstore 2 /* nativeObserver */
        start local 2 // long nativeObserver
         1: .line 1159
            aload 1 /* observer */
            new com.android.internal.util.VirtualRefBasePtr
            dup
            lload 2 /* nativeObserver */
            invokespecial com.android.internal.util.VirtualRefBasePtr.<init>:(J)V
            putfield android.view.FrameMetricsObserver.mNative:Lcom/android/internal/util/VirtualRefBasePtr;
         2: .line 1160
            return
        end local 2 // long nativeObserver
        end local 1 // android.view.FrameMetricsObserver observer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    3     0            this  Landroid/view/ThreadedRenderer;
            0    3     1        observer  Landroid/view/FrameMetricsObserver;
            1    3     2  nativeObserver  J
    MethodParameters:
          Name  Flags
      observer  

  void removeFrameMetricsObserver(android.view.FrameMetricsObserver);
    descriptor: (Landroid/view/FrameMetricsObserver;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.view.ThreadedRenderer this
        start local 1 // android.view.FrameMetricsObserver observer
         0: .line 1163
            aload 0 /* this */
            getfield android.view.ThreadedRenderer.mNativeProxy:J
            aload 1 /* observer */
            getfield android.view.FrameMetricsObserver.mNative:Lcom/android/internal/util/VirtualRefBasePtr;
            invokevirtual com.android.internal.util.VirtualRefBasePtr.get:()J
            invokestatic android.view.ThreadedRenderer.nRemoveFrameMetricsObserver:(JJ)V
         1: .line 1164
            aload 1 /* observer */
            aconst_null
            putfield android.view.FrameMetricsObserver.mNative:Lcom/android/internal/util/VirtualRefBasePtr;
         2: .line 1165
            return
        end local 1 // android.view.FrameMetricsObserver observer
        end local 0 // android.view.ThreadedRenderer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/view/ThreadedRenderer;
            0    3     1  observer  Landroid/view/FrameMetricsObserver;
    MethodParameters:
          Name  Flags
      observer  

  public static void setFPSDivisor(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int divisor
         0: .line 1169
            iload 0 /* divisor */
            iconst_1
            if_icmpgt 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: invokestatic android.view.ThreadedRenderer.nHackySetRTAnimationsEnabled:(Z)V
         3: .line 1170
            return
        end local 0 // int divisor
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  divisor  I
    MethodParameters:
         Name  Flags
      divisor  

  public static void setContextPriority(int);
    descriptor: (I)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int priority
         0: .line 1179
            iload 0 /* priority */
            invokestatic android.view.ThreadedRenderer.nSetContextPriority:(I)V
         1: .line 1180
            return
        end local 0 // int priority
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0  priority  I
    MethodParameters:
          Name  Flags
      priority  

  public static native void disableVsync();
    descriptor: ()V
    flags: (0x0109) ACC_PUBLIC, ACC_STATIC, ACC_NATIVE

  static native void setupShadersDiskCache(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
               Name  Flags
      cacheFile      
      skiaCacheFile  

  private static native void nRotateProcessStatsBuffer();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native void nSetProcessStatsBuffer(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
      Name  Flags
      fd    

  private static native int nGetRenderThreadTid(long);
    descriptor: (J)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native long nCreateRootRenderNode();
    descriptor: ()J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private static native long nCreateProxy(boolean, long);
    descriptor: (ZJ)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      translucent     
      rootRenderNode  

  private static native void nDeleteProxy(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native boolean nLoadSystemProperties(long);
    descriptor: (J)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nSetName(long, java.lang.String);
    descriptor: (JLjava/lang/String;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      name         

  private static native void nInitialize(long, android.view.Surface);
    descriptor: (JLandroid/view/Surface;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      window       

  private static native void nUpdateSurface(long, android.view.Surface);
    descriptor: (JLandroid/view/Surface;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      window       

  private static native boolean nPauseSurface(long, android.view.Surface);
    descriptor: (JLandroid/view/Surface;)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      window       

  private static native void nSetStopped(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      stopped      

  private static native void nSetup(long, float, int, int);
    descriptor: (JFII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                    Name  Flags
      nativeProxy         
      lightRadius         
      ambientShadowAlpha  
      spotShadowAlpha     

  private static native void nSetLightCenter(long, float, float, float);
    descriptor: (JFFF)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      lightX       
      lightY       
      lightZ       

  private static native void nSetOpaque(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      opaque       

  private static native void nSetWideGamut(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      wideGamut    

  private static native int nSyncAndDrawFrame(long, long[], int);
    descriptor: (J[JI)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      frameInfo    
      size         

  private static native void nDestroy(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeProxy     
      rootRenderNode  

  private static native void nRegisterAnimatingRenderNode(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      rootRenderNode  
      animatingNode   

  private static native void nRegisterVectorDrawableAnimator(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      rootRenderNode  
      animator        

  private static native void nInvokeFunctor(long, boolean);
    descriptor: (JZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                   Name  Flags
      functor            
      waitForCompletion  

  private static native long nCreateTextureLayer(long);
    descriptor: (J)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nBuildLayer(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      node         

  private static native boolean nCopyLayerInto(long, long, android.graphics.Bitmap);
    descriptor: (JJLandroid/graphics/Bitmap;)Z
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      layer        
      bitmap       

  private static native void nPushLayerUpdate(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      layer        

  private static native void nCancelLayerUpdate(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      layer        

  private static native void nDetachSurfaceTexture(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      layer        

  private static native void nDestroyHardwareResources(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nTrimMemory(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      level  

  private static native void nOverrideProperty(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      name   
      value  

  private static native void nFence(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nStopDrawing(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nNotifyFramePending(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nSerializeDisplayListTree(long);
    descriptor: (J)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  

  private static native void nDumpProfileInfo(long, java.io.FileDescriptor, int);
    descriptor: (JLjava/io/FileDescriptor;I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      fd           
      dumpFlags    

  private static native void nAddRenderNode(long, long, boolean);
    descriptor: (JJZ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeProxy     
      rootRenderNode  
      placeFront      

  private static native void nRemoveRenderNode(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeProxy     
      rootRenderNode  

  private static native void nDrawRenderNode(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeProxy     
      rootRenderNode  

  private static native void nSetContentDrawBounds(long, int, int, int, int);
    descriptor: (JIIII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      left         
      top          
      right        
      bottom       

  private static native void nSetFrameCallback(long, android.view.ThreadedRenderer$FrameDrawingCallback);
    descriptor: (JLandroid/view/ThreadedRenderer$FrameDrawingCallback;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      callback     

  private static native void nSetFrameCompleteCallback(long, android.view.ThreadedRenderer$FrameCompleteCallback);
    descriptor: (JLandroid/view/ThreadedRenderer$FrameCompleteCallback;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      callback     

  private static native long nAddFrameMetricsObserver(long, android.view.FrameMetricsObserver);
    descriptor: (JLandroid/view/FrameMetricsObserver;)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      observer     

  private static native void nRemoveFrameMetricsObserver(long, long);
    descriptor: (JJ)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
                Name  Flags
      nativeProxy     
      nativeObserver  

  private static native int nCopySurfaceInto(android.view.Surface, int, int, int, int, android.graphics.Bitmap);
    descriptor: (Landroid/view/Surface;IIIILandroid/graphics/Bitmap;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
           Name  Flags
      surface    
      srcLeft    
      srcTop     
      srcRight   
      srcBottom  
      bitmap     

  private static native android.graphics.Bitmap nCreateHardwareBitmap(long, int, int);
    descriptor: (JII)Landroid/graphics/Bitmap;
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
            Name  Flags
      renderNode  
      width       
      height      

  private static native void nSetHighContrastText(boolean);
    descriptor: (Z)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  private static native void nHackySetRTAnimationsEnabled(boolean);
    descriptor: (Z)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  private static native void nSetDebuggingEnabled(boolean);
    descriptor: (Z)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  private static native void nSetIsolatedProcess(boolean);
    descriptor: (Z)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      enabled  

  private static native void nSetContextPriority(int);
    descriptor: (I)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      priority  

  private static native void nAllocateBuffers(long, android.view.Surface);
    descriptor: (JLandroid/view/Surface;)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
             Name  Flags
      nativeProxy  
      window       
}
SourceFile: "ThreadedRenderer.java"
NestMembers:
  android.view.ThreadedRenderer$DrawCallbacks  android.view.ThreadedRenderer$DumpFlags  android.view.ThreadedRenderer$FrameCompleteCallback  android.view.ThreadedRenderer$FrameDrawingCallback  android.view.ThreadedRenderer$ProcessInitializer  android.view.ThreadedRenderer$ProcessInitializer$1  android.view.ThreadedRenderer$SimpleRenderer
InnerClasses:
  public VectorDrawableAnimatorRT = android.graphics.drawable.AnimatedVectorDrawable$VectorDrawableAnimatorRT of android.graphics.drawable.AnimatedVectorDrawable
  public OutOfResourcesException = android.view.Surface$OutOfResourcesException of android.view.Surface
  abstract DrawCallbacks = android.view.ThreadedRenderer$DrawCallbacks of android.view.ThreadedRenderer
  public abstract DumpFlags = android.view.ThreadedRenderer$DumpFlags of android.view.ThreadedRenderer
  public abstract FrameCompleteCallback = android.view.ThreadedRenderer$FrameCompleteCallback of android.view.ThreadedRenderer
  public abstract FrameDrawingCallback = android.view.ThreadedRenderer$FrameDrawingCallback of android.view.ThreadedRenderer
  private ProcessInitializer = android.view.ThreadedRenderer$ProcessInitializer of android.view.ThreadedRenderer
  public SimpleRenderer = android.view.ThreadedRenderer$SimpleRenderer of android.view.ThreadedRenderer
  final AttachInfo = android.view.View$AttachInfo of android.view.View