public class sun.java2d.d3d.D3DRenderQueue extends sun.java2d.pipe.RenderQueue
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.java2d.d3d.D3DRenderQueue
  super_class: sun.java2d.pipe.RenderQueue
{
  private static sun.java2d.d3d.D3DRenderQueue theInstance;
    descriptor: Lsun/java2d/d3d/D3DRenderQueue;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

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

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.java2d.d3d.D3DRenderQueue this
         0: .line 41
            aload 0 /* this */
            invokespecial sun.java2d.pipe.RenderQueue.<init>:()V
         1: .line 42
            return
        end local 0 // sun.java2d.d3d.D3DRenderQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/d3d/D3DRenderQueue;

  public static synchronized sun.java2d.d3d.D3DRenderQueue getInstance();
    descriptor: ()Lsun/java2d/d3d/D3DRenderQueue;
    flags: (0x0029) ACC_PUBLIC, ACC_STATIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=0, args_size=0
         0: .line 50
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            ifnonnull 3
         1: .line 51
            new sun.java2d.d3d.D3DRenderQueue
            dup
            invokespecial sun.java2d.d3d.D3DRenderQueue.<init>:()V
            putstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
         2: .line 53
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            new sun.java2d.d3d.D3DRenderQueue$1
            dup
            invokespecial sun.java2d.d3d.D3DRenderQueue$1.<init>:()V
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushAndInvokeNow:(Ljava/lang/Runnable;)V
         3: .line 59
      StackMap locals:
      StackMap stack:
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void sync();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 72
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            ifnull 13
         1: .line 76
            invokestatic sun.java2d.ScreenUpdateManager.getInstance:()Lsun/java2d/ScreenUpdateManager;
            checkcast sun.java2d.d3d.D3DScreenUpdateManager
         2: .line 75
            astore 0 /* mgr */
        start local 0 // sun.java2d.d3d.D3DScreenUpdateManager mgr
         3: .line 77
            aload 0 /* mgr */
            invokevirtual sun.java2d.d3d.D3DScreenUpdateManager.runUpdateNow:()V
         4: .line 79
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            invokevirtual sun.java2d.d3d.D3DRenderQueue.lock:()V
         5: .line 81
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            iconst_4
            invokevirtual sun.java2d.d3d.D3DRenderQueue.ensureCapacity:(I)V
         6: .line 82
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            invokevirtual sun.java2d.d3d.D3DRenderQueue.getBuffer:()Lsun/java2d/pipe/RenderBuffer;
            bipush 76
            invokevirtual sun.java2d.pipe.RenderBuffer.putInt:(I)Lsun/java2d/pipe/RenderBuffer;
            pop
         7: .line 83
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushNow:()V
         8: .line 84
            goto 12
      StackMap locals: sun.java2d.d3d.D3DScreenUpdateManager
      StackMap stack: java.lang.Throwable
         9: astore 1
        10: .line 85
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
        11: .line 86
            aload 1
            athrow
        12: .line 85
      StackMap locals:
      StackMap stack:
            getstatic sun.java2d.d3d.D3DRenderQueue.theInstance:Lsun/java2d/d3d/D3DRenderQueue;
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
        end local 0 // sun.java2d.d3d.D3DScreenUpdateManager mgr
        13: .line 88
      StackMap locals:
      StackMap stack:
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            3   13     0   mgr  Lsun/java2d/d3d/D3DScreenUpdateManager;
      Exception table:
        from    to  target  type
           5     9       9  any

  public static void restoreDevices();
    descriptor: ()V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=0
         0: .line 95
            invokestatic sun.java2d.d3d.D3DRenderQueue.getInstance:()Lsun/java2d/d3d/D3DRenderQueue;
            astore 0 /* rq */
        start local 0 // sun.java2d.d3d.D3DRenderQueue rq
         1: .line 96
            aload 0 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.lock:()V
         2: .line 98
            aload 0 /* rq */
            iconst_4
            invokevirtual sun.java2d.d3d.D3DRenderQueue.ensureCapacity:(I)V
         3: .line 99
            aload 0 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.getBuffer:()Lsun/java2d/pipe/RenderBuffer;
            bipush 77
            invokevirtual sun.java2d.pipe.RenderBuffer.putInt:(I)Lsun/java2d/pipe/RenderBuffer;
            pop
         4: .line 100
            aload 0 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushNow:()V
         5: .line 101
            goto 9
      StackMap locals: sun.java2d.d3d.D3DRenderQueue
      StackMap stack: java.lang.Throwable
         6: astore 1
         7: .line 102
            aload 0 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
         8: .line 103
            aload 1
            athrow
         9: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
        10: .line 104
            return
        end local 0 // sun.java2d.d3d.D3DRenderQueue rq
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1   11     0    rq  Lsun/java2d/d3d/D3DRenderQueue;
      Exception table:
        from    to  target  type
           2     6       6  any

  public static boolean isRenderQueueThread();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 111
            invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
            getstatic sun.java2d.d3d.D3DRenderQueue.rqThread:Ljava/lang/Thread;
            if_acmpne 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static void disposeGraphicsConfig(long);
    descriptor: (J)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // long pConfigInfo
         0: .line 119
            invokestatic sun.java2d.d3d.D3DRenderQueue.getInstance:()Lsun/java2d/d3d/D3DRenderQueue;
            astore 2 /* rq */
        start local 2 // sun.java2d.d3d.D3DRenderQueue rq
         1: .line 120
            aload 2 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.lock:()V
         2: .line 123
            aload 2 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.getBuffer:()Lsun/java2d/pipe/RenderBuffer;
            astore 3 /* buf */
        start local 3 // sun.java2d.pipe.RenderBuffer buf
         3: .line 124
            aload 2 /* rq */
            bipush 12
            iconst_4
            invokevirtual sun.java2d.d3d.D3DRenderQueue.ensureCapacityAndAlignment:(II)V
         4: .line 125
            aload 3 /* buf */
            bipush 74
            invokevirtual sun.java2d.pipe.RenderBuffer.putInt:(I)Lsun/java2d/pipe/RenderBuffer;
            pop
         5: .line 126
            aload 3 /* buf */
            lload 0 /* pConfigInfo */
            invokevirtual sun.java2d.pipe.RenderBuffer.putLong:(J)Lsun/java2d/pipe/RenderBuffer;
            pop
         6: .line 129
            aload 2 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushNow:()V
        end local 3 // sun.java2d.pipe.RenderBuffer buf
         7: .line 130
            goto 11
      StackMap locals: long sun.java2d.d3d.D3DRenderQueue
      StackMap stack: java.lang.Throwable
         8: astore 4
         9: .line 131
            aload 2 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
        10: .line 132
            aload 4
            athrow
        11: .line 131
      StackMap locals:
      StackMap stack:
            aload 2 /* rq */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.unlock:()V
        12: .line 133
            return
        end local 2 // sun.java2d.d3d.D3DRenderQueue rq
        end local 0 // long pConfigInfo
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0  pConfigInfo  J
            1   13     2           rq  Lsun/java2d/d3d/D3DRenderQueue;
            3    7     3          buf  Lsun/java2d/pipe/RenderBuffer;
      Exception table:
        from    to  target  type
           2     8       8  any
    MethodParameters:
             Name  Flags
      pConfigInfo  

  public void flushNow();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.java2d.d3d.D3DRenderQueue this
         0: .line 137
            aload 0 /* this */
            aconst_null
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushBuffer:(Ljava/lang/Runnable;)V
         1: .line 138
            return
        end local 0 // sun.java2d.d3d.D3DRenderQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/d3d/D3DRenderQueue;

  public void flushAndInvokeNow(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.java2d.d3d.D3DRenderQueue this
        start local 1 // java.lang.Runnable r
         0: .line 142
            aload 0 /* this */
            aload 1 /* r */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushBuffer:(Ljava/lang/Runnable;)V
         1: .line 143
            return
        end local 1 // java.lang.Runnable r
        end local 0 // sun.java2d.d3d.D3DRenderQueue this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/java2d/d3d/D3DRenderQueue;
            0    2     1     r  Ljava/lang/Runnable;
    MethodParameters:
      Name  Flags
      r     

  private native void flushBuffer(long, int, java.lang.Runnable);
    descriptor: (JILjava/lang/Runnable;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
       Name  Flags
      buf    
      limit  
      task   

  private void flushBuffer(java.lang.Runnable);
    descriptor: (Ljava/lang/Runnable;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // sun.java2d.d3d.D3DRenderQueue this
        start local 1 // java.lang.Runnable task
         0: .line 149
            aload 0 /* this */
            getfield sun.java2d.d3d.D3DRenderQueue.buf:Lsun/java2d/pipe/RenderBuffer;
            invokevirtual sun.java2d.pipe.RenderBuffer.position:()I
            istore 2 /* limit */
        start local 2 // int limit
         1: .line 150
            iload 2 /* limit */
            ifgt 2
            aload 1 /* task */
            ifnull 3
         2: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.d3d.D3DRenderQueue.buf:Lsun/java2d/pipe/RenderBuffer;
            invokevirtual sun.java2d.pipe.RenderBuffer.getAddress:()J
            iload 2 /* limit */
            aload 1 /* task */
            invokevirtual sun.java2d.d3d.D3DRenderQueue.flushBuffer:(JILjava/lang/Runnable;)V
         3: .line 155
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.d3d.D3DRenderQueue.buf:Lsun/java2d/pipe/RenderBuffer;
            invokevirtual sun.java2d.pipe.RenderBuffer.clear:()V
         4: .line 157
            aload 0 /* this */
            getfield sun.java2d.d3d.D3DRenderQueue.refSet:Ljava/util/Set;
            invokeinterface java.util.Set.clear:()V
         5: .line 158
            return
        end local 2 // int limit
        end local 1 // java.lang.Runnable task
        end local 0 // sun.java2d.d3d.D3DRenderQueue this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    6     0   this  Lsun/java2d/d3d/D3DRenderQueue;
            0    6     1   task  Ljava/lang/Runnable;
            1    6     2  limit  I
    MethodParameters:
      Name  Flags
      task  
}
SourceFile: "D3DRenderQueue.java"
NestMembers:
  sun.java2d.d3d.D3DRenderQueue$1
InnerClasses:
  sun.java2d.d3d.D3DRenderQueue$1