public class android.renderscript.Program extends android.renderscript.BaseObj
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.renderscript.Program
  super_class: android.renderscript.BaseObj
{
  static final int MAX_INPUT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int MAX_OUTPUT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int MAX_CONSTANT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  static final int MAX_TEXTURE;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  android.renderscript.Element[] mInputs;
    descriptor: [Landroid/renderscript/Element;
    flags: (0x0000) 

  android.renderscript.Element[] mOutputs;
    descriptor: [Landroid/renderscript/Element;
    flags: (0x0000) 

  android.renderscript.Type[] mConstants;
    descriptor: [Landroid/renderscript/Type;
    flags: (0x0000) 

  android.renderscript.Program$TextureType[] mTextures;
    descriptor: [Landroid/renderscript/Program$TextureType;
    flags: (0x0000) 

  java.lang.String[] mTextureNames;
    descriptor: [Ljava/lang/String;
    flags: (0x0000) 

  int mTextureCount;
    descriptor: I
    flags: (0x0000) 

  java.lang.String mShader;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  void <init>(long, android.renderscript.RenderScript);
    descriptor: (JLandroid/renderscript/RenderScript;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // android.renderscript.Program this
         0: .line 79
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tCloseGuard cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/renderscript/Program;
    MethodParameters:
      Name  Flags
      id    
      rs    

  public int getConstantCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.renderscript.Program this
         0: .line 88
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            ifnull 1
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            arraylength
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/renderscript/Program;

  public android.renderscript.Type getConstant(int);
    descriptor: (I)Landroid/renderscript/Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.renderscript.Program this
        start local 1 // int slot
         0: .line 99
            iload 1 /* slot */
            iflt 1
            iload 1 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            arraylength
            if_icmplt 2
         1: .line 100
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 102
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            iload 1 /* slot */
            aaload
            areturn
        end local 1 // int slot
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/renderscript/Program;
            0    3     1  slot  I
    MethodParameters:
      Name  Flags
      slot  

  public int getTextureCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.renderscript.Program this
         0: .line 110
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureCount:I
            ireturn
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/renderscript/Program;

  public android.renderscript.Program$TextureType getTextureType(int);
    descriptor: (I)Landroid/renderscript/Program$TextureType;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.renderscript.Program this
        start local 1 // int slot
         0: .line 119
            iload 1 /* slot */
            iflt 1
            iload 1 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureCount:I
            if_icmplt 2
         1: .line 120
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 122
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.renderscript.Program.mTextures:[Landroid/renderscript/Program$TextureType;
            iload 1 /* slot */
            aaload
            areturn
        end local 1 // int slot
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/renderscript/Program;
            0    3     1  slot  I
    MethodParameters:
      Name  Flags
      slot  

  public java.lang.String getTextureName(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.renderscript.Program this
        start local 1 // int slot
         0: .line 132
            iload 1 /* slot */
            iflt 1
            iload 1 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureCount:I
            if_icmplt 2
         1: .line 133
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureNames:[Ljava/lang/String;
            iload 1 /* slot */
            aaload
            areturn
        end local 1 // int slot
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/renderscript/Program;
            0    3     1  slot  I
    MethodParameters:
      Name  Flags
      slot  

  public void bindConstants(android.renderscript.Allocation, int);
    descriptor: (Landroid/renderscript/Allocation;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // android.renderscript.Program this
        start local 1 // android.renderscript.Allocation a
        start local 2 // int slot
         0: .line 147
            iload 2 /* slot */
            iflt 1
            iload 2 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            arraylength
            if_icmplt 2
         1: .line 148
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 150
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            ifnull 5
         3: .line 151
            aload 1 /* a */
            invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Type.getID:(Landroid/renderscript/RenderScript;)J
            aload 0 /* this */
            getfield android.renderscript.Program.mConstants:[Landroid/renderscript/Type;
            iload 2 /* slot */
            aaload
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Type.getID:(Landroid/renderscript/RenderScript;)J
            lcmp
            ifeq 5
         4: .line 152
            new java.lang.IllegalArgumentException
            dup
            ldc "Allocation type does not match slot type."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 154
      StackMap locals:
      StackMap stack:
            aload 1 /* a */
            ifnull 6
            aload 1 /* a */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Allocation.getID:(Landroid/renderscript/RenderScript;)J
            goto 7
      StackMap locals:
      StackMap stack:
         6: lconst_0
      StackMap locals:
      StackMap stack: long
         7: lstore 3 /* id */
        start local 3 // long id
         8: .line 155
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            aload 0 /* this */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Program.getID:(Landroid/renderscript/RenderScript;)J
            iload 2 /* slot */
            lload 3 /* id */
            invokevirtual android.renderscript.RenderScript.nProgramBindConstants:(JIJ)V
         9: .line 156
            return
        end local 3 // long id
        end local 2 // int slot
        end local 1 // android.renderscript.Allocation a
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Landroid/renderscript/Program;
            0   10     1     a  Landroid/renderscript/Allocation;
            0   10     2  slot  I
            8   10     3    id  J
    MethodParameters:
      Name  Flags
      a     
      slot  

  public void bindTexture(android.renderscript.Allocation, int);
    descriptor: (Landroid/renderscript/Allocation;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // android.renderscript.Program this
        start local 1 // android.renderscript.Allocation va
        start local 2 // int slot
         0: .line 167
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.RenderScript.validate:()V
         1: .line 168
            iload 2 /* slot */
            iflt 2
            iload 2 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureCount:I
            if_icmplt 3
         2: .line 169
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 171
      StackMap locals:
      StackMap stack:
            aload 1 /* va */
            ifnull 6
            aload 1 /* va */
            invokevirtual android.renderscript.Allocation.getType:()Landroid/renderscript/Type;
            invokevirtual android.renderscript.Type.hasFaces:()Z
            ifeq 6
         4: .line 172
            aload 0 /* this */
            getfield android.renderscript.Program.mTextures:[Landroid/renderscript/Program$TextureType;
            iload 2 /* slot */
            aaload
            getstatic android.renderscript.Program$TextureType.TEXTURE_CUBE:Landroid/renderscript/Program$TextureType;
            if_acmpeq 6
         5: .line 173
            new java.lang.IllegalArgumentException
            dup
            ldc "Cannot bind cubemap to 2d texture slot"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 176
      StackMap locals:
      StackMap stack:
            aload 1 /* va */
            ifnull 7
            aload 1 /* va */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Allocation.getID:(Landroid/renderscript/RenderScript;)J
            goto 8
      StackMap locals:
      StackMap stack:
         7: lconst_0
      StackMap locals:
      StackMap stack: long
         8: lstore 3 /* id */
        start local 3 // long id
         9: .line 177
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            aload 0 /* this */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Program.getID:(Landroid/renderscript/RenderScript;)J
            iload 2 /* slot */
            lload 3 /* id */
            invokevirtual android.renderscript.RenderScript.nProgramBindTexture:(JIJ)V
        10: .line 178
            return
        end local 3 // long id
        end local 2 // int slot
        end local 1 // android.renderscript.Allocation va
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Landroid/renderscript/Program;
            0   11     1    va  Landroid/renderscript/Allocation;
            0   11     2  slot  I
            9   11     3    id  J
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      va    
      slot  

  public void bindSampler(android.renderscript.Sampler, int);
    descriptor: (Landroid/renderscript/Sampler;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // android.renderscript.Program this
        start local 1 // android.renderscript.Sampler vs
        start local 2 // int slot
         0: .line 191
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.RenderScript.validate:()V
         1: .line 192
            iload 2 /* slot */
            iflt 2
            iload 2 /* slot */
            aload 0 /* this */
            getfield android.renderscript.Program.mTextureCount:I
            if_icmplt 3
         2: .line 193
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "Slot ID out of range."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 196
      StackMap locals:
      StackMap stack:
            aload 1 /* vs */
            ifnull 4
            aload 1 /* vs */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Sampler.getID:(Landroid/renderscript/RenderScript;)J
            goto 5
      StackMap locals:
      StackMap stack:
         4: lconst_0
      StackMap locals:
      StackMap stack: long
         5: lstore 3 /* id */
        start local 3 // long id
         6: .line 197
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            aload 0 /* this */
            aload 0 /* this */
            getfield android.renderscript.Program.mRS:Landroid/renderscript/RenderScript;
            invokevirtual android.renderscript.Program.getID:(Landroid/renderscript/RenderScript;)J
            iload 2 /* slot */
            lload 3 /* id */
            invokevirtual android.renderscript.RenderScript.nProgramBindSampler:(JIJ)V
         7: .line 198
            return
        end local 3 // long id
        end local 2 // int slot
        end local 1 // android.renderscript.Sampler vs
        end local 0 // android.renderscript.Program this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Landroid/renderscript/Program;
            0    8     1    vs  Landroid/renderscript/Sampler;
            0    8     2  slot  I
            6    8     3    id  J
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      vs    
      slot  
}
SourceFile: "Program.java"
NestMembers:
  android.renderscript.Program$BaseProgramBuilder  android.renderscript.Program$ProgramParam  android.renderscript.Program$TextureType
InnerClasses:
  public BaseProgramBuilder = android.renderscript.Program$BaseProgramBuilder of android.renderscript.Program
  final ProgramParam = android.renderscript.Program$ProgramParam of android.renderscript.Program
  public final TextureType = android.renderscript.Program$TextureType of android.renderscript.Program