final class com.sun.prism.d3d.D3DShader extends com.sun.prism.d3d.D3DResource implements com.sun.prism.ps.Shader
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.prism.d3d.D3DShader
  super_class: com.sun.prism.d3d.D3DResource
{
  private static java.nio.IntBuffer itmp;
    descriptor: Ljava/nio/IntBuffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private static java.nio.FloatBuffer ftmp;
    descriptor: Ljava/nio/FloatBuffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC

  private final java.util.Map<java.lang.String, java.lang.Integer> registers;
    descriptor: Ljava/util/Map;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;

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

  void <init>(com.sun.prism.d3d.D3DContext, long, java.util.Map<java.lang.String, java.lang.Integer>);
    descriptor: (Lcom/sun/prism/d3d/D3DContext;JLjava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=4
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // com.sun.prism.d3d.D3DContext context
        start local 2 // long pData
        start local 4 // java.util.Map registers
         0: .line 43
            aload 0 /* this */
            new com.sun.prism.d3d.D3DResource$D3DRecord
            dup
            aload 1 /* context */
            lload 2 /* pData */
            invokespecial com.sun.prism.d3d.D3DResource$D3DRecord.<init>:(Lcom/sun/prism/d3d/D3DContext;J)V
            invokespecial com.sun.prism.d3d.D3DResource.<init>:(Lcom/sun/prism/d3d/D3DResource$D3DRecord;)V
         1: .line 44
            aload 0 /* this */
            lload 2 /* pData */
            lconst_0
            lcmp
            ifeq 2
            iconst_1
            goto 3
      StackMap locals: com.sun.prism.d3d.D3DShader com.sun.prism.d3d.D3DContext long java.util.Map
      StackMap stack: com.sun.prism.d3d.D3DShader
         2: iconst_0
      StackMap locals: com.sun.prism.d3d.D3DShader com.sun.prism.d3d.D3DContext long java.util.Map
      StackMap stack: com.sun.prism.d3d.D3DShader int
         3: putfield com.sun.prism.d3d.D3DShader.valid:Z
         4: .line 45
            aload 0 /* this */
            aload 4 /* registers */
            putfield com.sun.prism.d3d.D3DShader.registers:Ljava/util/Map;
         5: .line 46
            return
        end local 4 // java.util.Map registers
        end local 2 // long pData
        end local 1 // com.sun.prism.d3d.D3DContext context
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lcom/sun/prism/d3d/D3DShader;
            0    6     1    context  Lcom/sun/prism/d3d/D3DContext;
            0    6     2      pData  J
            0    6     4  registers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;
    Signature: (Lcom/sun/prism/d3d/D3DContext;JLjava/util/Map<Ljava/lang/String;Ljava/lang/Integer;>;)V
    MethodParameters:
           Name  Flags
      context    
      pData      
      registers  

  static native long init(long, java.nio.ByteBuffer, int, boolean, boolean);
    descriptor: (JLjava/nio/ByteBuffer;IZZ)J
    flags: (0x0108) ACC_STATIC, ACC_NATIVE
    MethodParameters:
                      Name  Flags
      pCtx                  
      buf                   
      maxTexCoordIndex      
      isPixcoordUsed        
      isPerVertexColorUsed  

  private static native int enable(long, long);
    descriptor: (JJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      pCtx   
      pData  

  private static native int disable(long, long);
    descriptor: (JJ)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      pCtx   
      pData  

  private static native int setConstantsF(long, long, int, java.nio.FloatBuffer, int, int);
    descriptor: (JJILjava/nio/FloatBuffer;II)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      pCtx      
      pData     
      register  
      buf       
      off       
      count     

  private static native int setConstantsI(long, long, int, java.nio.IntBuffer, int, int);
    descriptor: (JJILjava/nio/IntBuffer;II)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
          Name  Flags
      pCtx      
      pData     
      register  
      buf       
      off       
      count     

  private static native int nGetRegister(long, long, java.lang.String);
    descriptor: (JJLjava/lang/String;)I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
       Name  Flags
      pCtx   
      pData  
      name   

  public void enable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.prism.d3d.D3DShader this
         0: .line 64
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            invokevirtual com.sun.prism.d3d.D3DContext.getContextHandle:()J
         1: .line 65
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getResource:()J
         2: .line 64
            invokestatic com.sun.prism.d3d.D3DShader.enable:(JJ)I
            istore 1 /* res */
        start local 1 // int res
         3: .line 66
            aload 0 /* this */
            dup
            getfield com.sun.prism.d3d.D3DShader.valid:Z
            iload 1 /* res */
            iflt 4
            iconst_1
            goto 5
      StackMap locals: com.sun.prism.d3d.D3DShader int
      StackMap stack: com.sun.prism.d3d.D3DShader int
         4: iconst_0
      StackMap locals: com.sun.prism.d3d.D3DShader int
      StackMap stack: com.sun.prism.d3d.D3DShader int int
         5: iand
            putfield com.sun.prism.d3d.D3DShader.valid:Z
         6: .line 67
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            pop
            iload 1 /* res */
            invokestatic com.sun.prism.d3d.D3DContext.validate:(I)V
         7: .line 68
            return
        end local 1 // int res
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/prism/d3d/D3DShader;
            3    8     1   res  I

  public void disable();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.prism.d3d.D3DShader this
         0: .line 71
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            invokevirtual com.sun.prism.d3d.D3DContext.getContextHandle:()J
         1: .line 72
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getResource:()J
         2: .line 71
            invokestatic com.sun.prism.d3d.D3DShader.disable:(JJ)I
            istore 1 /* res */
        start local 1 // int res
         3: .line 73
            aload 0 /* this */
            dup
            getfield com.sun.prism.d3d.D3DShader.valid:Z
            iload 1 /* res */
            iflt 4
            iconst_1
            goto 5
      StackMap locals: com.sun.prism.d3d.D3DShader int
      StackMap stack: com.sun.prism.d3d.D3DShader int
         4: iconst_0
      StackMap locals: com.sun.prism.d3d.D3DShader int
      StackMap stack: com.sun.prism.d3d.D3DShader int int
         5: iand
            putfield com.sun.prism.d3d.D3DShader.valid:Z
         6: .line 74
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            pop
            iload 1 /* res */
            invokestatic com.sun.prism.d3d.D3DContext.validate:(I)V
         7: .line 75
            return
        end local 1 // int res
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lcom/sun/prism/d3d/D3DShader;
            3    8     1   res  I

  private static void checkTmpIntBuf();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 78
            getstatic com.sun.prism.d3d.D3DShader.itmp:Ljava/nio/IntBuffer;
            ifnonnull 2
         1: .line 79
            iconst_4
            invokestatic com.sun.prism.impl.BufferUtil.newIntBuffer:(I)Ljava/nio/IntBuffer;
            putstatic com.sun.prism.d3d.D3DShader.itmp:Ljava/nio/IntBuffer;
         2: .line 81
      StackMap locals:
      StackMap stack:
            getstatic com.sun.prism.d3d.D3DShader.itmp:Ljava/nio/IntBuffer;
            invokevirtual java.nio.IntBuffer.clear:()Ljava/nio/Buffer;
            pop
         3: .line 82
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void setConstant(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // int i0
         0: .line 92
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* i0 */
            i2f
            invokevirtual com.sun.prism.d3d.D3DShader.setConstant:(Ljava/lang/String;F)V
         1: .line 93
            return
        end local 2 // int i0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    2     1  name  Ljava/lang/String;
            0    2     2    i0  I
    MethodParameters:
      Name  Flags
      name  
      i0    

  public void setConstant(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // int i0
        start local 3 // int i1
         0: .line 102
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* i0 */
            i2f
            iload 3 /* i1 */
            i2f
            invokevirtual com.sun.prism.d3d.D3DShader.setConstant:(Ljava/lang/String;FF)V
         1: .line 103
            return
        end local 3 // int i1
        end local 2 // int i0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    2     1  name  Ljava/lang/String;
            0    2     2    i0  I
            0    2     3    i1  I
    MethodParameters:
      Name  Flags
      name  
      i0    
      i1    

  public void setConstant(java.lang.String, int, int, int);
    descriptor: (Ljava/lang/String;III)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // int i0
        start local 3 // int i1
        start local 4 // int i2
         0: .line 113
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* i0 */
            i2f
            iload 3 /* i1 */
            i2f
            iload 4 /* i2 */
            i2f
            invokevirtual com.sun.prism.d3d.D3DShader.setConstant:(Ljava/lang/String;FFF)V
         1: .line 114
            return
        end local 4 // int i2
        end local 3 // int i1
        end local 2 // int i0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    2     1  name  Ljava/lang/String;
            0    2     2    i0  I
            0    2     3    i1  I
            0    2     4    i2  I
    MethodParameters:
      Name  Flags
      name  
      i0    
      i1    
      i2    

  public void setConstant(java.lang.String, int, int, int, int);
    descriptor: (Ljava/lang/String;IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // int i0
        start local 3 // int i1
        start local 4 // int i2
        start local 5 // int i3
         0: .line 125
            aload 0 /* this */
            aload 1 /* name */
            iload 2 /* i0 */
            i2f
            iload 3 /* i1 */
            i2f
            iload 4 /* i2 */
            i2f
            iload 5 /* i3 */
            i2f
            invokevirtual com.sun.prism.d3d.D3DShader.setConstant:(Ljava/lang/String;FFFF)V
         1: .line 126
            return
        end local 5 // int i3
        end local 4 // int i2
        end local 3 // int i1
        end local 2 // int i0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    2     1  name  Ljava/lang/String;
            0    2     2    i0  I
            0    2     3    i1  I
            0    2     4    i2  I
            0    2     5    i3  I
    MethodParameters:
      Name  Flags
      name  
      i0    
      i1    
      i2    
      i3    

  public void setConstants(java.lang.String, java.nio.IntBuffer, int, int);
    descriptor: (Ljava/lang/String;Ljava/nio/IntBuffer;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=5
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // java.nio.IntBuffer buf
        start local 3 // int off
        start local 4 // int count
         0: .line 132
            new java.lang.InternalError
            dup
            ldc "Not yet implemented"
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
        end local 4 // int count
        end local 3 // int off
        end local 2 // java.nio.IntBuffer buf
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Lcom/sun/prism/d3d/D3DShader;
            0    1     1   name  Ljava/lang/String;
            0    1     2    buf  Ljava/nio/IntBuffer;
            0    1     3    off  I
            0    1     4  count  I
    MethodParameters:
       Name  Flags
      name   
      buf    
      off    
      count  

  private static void checkTmpFloatBuf();
    descriptor: ()V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 136
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            ifnonnull 2
         1: .line 137
            iconst_4
            invokestatic com.sun.prism.impl.BufferUtil.newFloatBuffer:(I)Ljava/nio/FloatBuffer;
            putstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
         2: .line 139
      StackMap locals:
      StackMap stack:
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            invokevirtual java.nio.FloatBuffer.clear:()Ljava/nio/Buffer;
            pop
         3: .line 140
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void setConstant(java.lang.String, float);
    descriptor: (Ljava/lang/String;F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // float f0
         0: .line 143
            invokestatic com.sun.prism.d3d.D3DShader.checkTmpFloatBuf:()V
         1: .line 144
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 2 /* f0 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         2: .line 145
            aload 0 /* this */
            aload 1 /* name */
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            iconst_0
            iconst_1
            invokevirtual com.sun.prism.d3d.D3DShader.setConstants:(Ljava/lang/String;Ljava/nio/FloatBuffer;II)V
         3: .line 146
            return
        end local 2 // float f0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    4     1  name  Ljava/lang/String;
            0    4     2    f0  F
    MethodParameters:
      Name  Flags
      name  
      f0    

  public void setConstant(java.lang.String, float, float);
    descriptor: (Ljava/lang/String;FF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // float f0
        start local 3 // float f1
         0: .line 149
            invokestatic com.sun.prism.d3d.D3DShader.checkTmpFloatBuf:()V
         1: .line 150
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 2 /* f0 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         2: .line 151
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 3 /* f1 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         3: .line 152
            aload 0 /* this */
            aload 1 /* name */
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            iconst_0
            iconst_1
            invokevirtual com.sun.prism.d3d.D3DShader.setConstants:(Ljava/lang/String;Ljava/nio/FloatBuffer;II)V
         4: .line 153
            return
        end local 3 // float f1
        end local 2 // float f0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    5     1  name  Ljava/lang/String;
            0    5     2    f0  F
            0    5     3    f1  F
    MethodParameters:
      Name  Flags
      name  
      f0    
      f1    

  public void setConstant(java.lang.String, float, float, float);
    descriptor: (Ljava/lang/String;FFF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // float f0
        start local 3 // float f1
        start local 4 // float f2
         0: .line 156
            invokestatic com.sun.prism.d3d.D3DShader.checkTmpFloatBuf:()V
         1: .line 157
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 2 /* f0 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         2: .line 158
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 3 /* f1 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         3: .line 159
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 4 /* f2 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         4: .line 160
            aload 0 /* this */
            aload 1 /* name */
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            iconst_0
            iconst_1
            invokevirtual com.sun.prism.d3d.D3DShader.setConstants:(Ljava/lang/String;Ljava/nio/FloatBuffer;II)V
         5: .line 161
            return
        end local 4 // float f2
        end local 3 // float f1
        end local 2 // float f0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    6     1  name  Ljava/lang/String;
            0    6     2    f0  F
            0    6     3    f1  F
            0    6     4    f2  F
    MethodParameters:
      Name  Flags
      name  
      f0    
      f1    
      f2    

  public void setConstant(java.lang.String, float, float, float, float);
    descriptor: (Ljava/lang/String;FFFF)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=6
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // float f0
        start local 3 // float f1
        start local 4 // float f2
        start local 5 // float f3
         0: .line 164
            invokestatic com.sun.prism.d3d.D3DShader.checkTmpFloatBuf:()V
         1: .line 165
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 2 /* f0 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         2: .line 166
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 3 /* f1 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         3: .line 167
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 4 /* f2 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         4: .line 168
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            fload 5 /* f3 */
            invokevirtual java.nio.FloatBuffer.put:(F)Ljava/nio/FloatBuffer;
            pop
         5: .line 169
            aload 0 /* this */
            aload 1 /* name */
            getstatic com.sun.prism.d3d.D3DShader.ftmp:Ljava/nio/FloatBuffer;
            iconst_0
            iconst_1
            invokevirtual com.sun.prism.d3d.D3DShader.setConstants:(Ljava/lang/String;Ljava/nio/FloatBuffer;II)V
         6: .line 170
            return
        end local 5 // float f3
        end local 4 // float f2
        end local 3 // float f1
        end local 2 // float f0
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/prism/d3d/D3DShader;
            0    7     1  name  Ljava/lang/String;
            0    7     2    f0  F
            0    7     3    f1  F
            0    7     4    f2  F
            0    7     5    f3  F
    MethodParameters:
      Name  Flags
      name  
      f0    
      f1    
      f2    
      f3    

  public void setConstants(java.lang.String, java.nio.FloatBuffer, int, int);
    descriptor: (Ljava/lang/String;Ljava/nio/FloatBuffer;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=6, args_size=5
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
        start local 2 // java.nio.FloatBuffer buf
        start local 3 // int off
        start local 4 // int count
         0: .line 173
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            invokevirtual com.sun.prism.d3d.D3DContext.getContextHandle:()J
         1: .line 174
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getResource:()J
         2: .line 175
            aload 0 /* this */
            aload 1 /* name */
            invokevirtual com.sun.prism.d3d.D3DShader.getRegister:(Ljava/lang/String;)I
            aload 2 /* buf */
            iload 3 /* off */
            iload 4 /* count */
         3: .line 173
            invokestatic com.sun.prism.d3d.D3DShader.setConstantsF:(JJILjava/nio/FloatBuffer;II)I
            istore 5 /* res */
        start local 5 // int res
         4: .line 176
            aload 0 /* this */
            dup
            getfield com.sun.prism.d3d.D3DShader.valid:Z
            iload 5 /* res */
            iflt 5
            iconst_1
            goto 6
      StackMap locals: com.sun.prism.d3d.D3DShader java.lang.String java.nio.FloatBuffer int int int
      StackMap stack: com.sun.prism.d3d.D3DShader int
         5: iconst_0
      StackMap locals: com.sun.prism.d3d.D3DShader java.lang.String java.nio.FloatBuffer int int int
      StackMap stack: com.sun.prism.d3d.D3DShader int int
         6: iand
            putfield com.sun.prism.d3d.D3DShader.valid:Z
         7: .line 177
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            pop
            iload 5 /* res */
            invokestatic com.sun.prism.d3d.D3DContext.validate:(I)V
         8: .line 178
            return
        end local 5 // int res
        end local 4 // int count
        end local 3 // int off
        end local 2 // java.nio.FloatBuffer buf
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lcom/sun/prism/d3d/D3DShader;
            0    9     1   name  Ljava/lang/String;
            0    9     2    buf  Ljava/nio/FloatBuffer;
            0    9     3    off  I
            0    9     4  count  I
            4    9     5    res  I
    MethodParameters:
       Name  Flags
      name   
      buf    
      off    
      count  

  private int getRegister(java.lang.String);
    descriptor: (Ljava/lang/String;)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // com.sun.prism.d3d.D3DShader this
        start local 1 // java.lang.String name
         0: .line 181
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.registers:Ljava/util/Map;
            aload 1 /* name */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 2 /* reg */
        start local 2 // java.lang.Integer reg
         1: .line 182
            aload 2 /* reg */
            ifnonnull 11
         2: .line 186
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getContext:()Lcom/sun/prism/d3d/D3DContext;
            invokevirtual com.sun.prism.d3d.D3DContext.getContextHandle:()J
         3: .line 187
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.d3dResRecord:Lcom/sun/prism/d3d/D3DResource$D3DRecord;
            invokevirtual com.sun.prism.d3d.D3DResource$D3DRecord.getResource:()J
            aload 1 /* name */
         4: .line 185
            invokestatic com.sun.prism.d3d.D3DShader.nGetRegister:(JJLjava/lang/String;)I
            istore 3 /* nRegister */
        start local 3 // int nRegister
         5: .line 188
            iload 3 /* nRegister */
            ifge 9
         6: .line 189
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Register not found for: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 190
            aload 1 /* name */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         8: .line 189
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         9: .line 194
      StackMap locals: java.lang.Integer int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.registers:Ljava/util/Map;
            aload 1 /* name */
            iload 3 /* nRegister */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        10: .line 195
            iload 3 /* nRegister */
            ireturn
        end local 3 // int nRegister
        11: .line 197
      StackMap locals:
      StackMap stack:
            aload 2 /* reg */
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 2 // java.lang.Integer reg
        end local 1 // java.lang.String name
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   12     0       this  Lcom/sun/prism/d3d/D3DShader;
            0   12     1       name  Ljava/lang/String;
            1   12     2        reg  Ljava/lang/Integer;
            5   11     3  nRegister  I
    MethodParameters:
      Name  Flags
      name  

  public boolean isValid();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.d3d.D3DShader this
         0: .line 202
            aload 0 /* this */
            getfield com.sun.prism.d3d.D3DShader.valid:Z
            ireturn
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/d3d/D3DShader;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.d3d.D3DShader this
         0: .line 207
            aload 0 /* this */
            invokespecial com.sun.prism.d3d.D3DResource.dispose:()V
         1: .line 208
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.d3d.D3DShader.valid:Z
         2: .line 209
            return
        end local 0 // com.sun.prism.d3d.D3DShader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/prism/d3d/D3DShader;
}
SourceFile: "D3DShader.java"
InnerClasses:
  D3DRecord = com.sun.prism.d3d.D3DResource$D3DRecord of com.sun.prism.d3d.D3DResource