class com.sun.prism.es2.MonocleGLFactory extends com.sun.prism.es2.GLFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.prism.es2.MonocleGLFactory
  super_class: com.sun.prism.es2.GLFactory
{
  private com.sun.prism.es2.GLGPUInfo[] preQualificationFilter;
    descriptor: [Lcom/sun/prism/es2/GLGPUInfo;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.prism.es2.GLGPUInfo[] blackList;
    descriptor: [Lcom/sun/prism/es2/GLGPUInfo;
    flags: (0x0002) ACC_PRIVATE

  private com.sun.glass.ui.monocle.AcceleratedScreen accScreen;
    descriptor: Lcom/sun/glass/ui/monocle/AcceleratedScreen;
    flags: (0x0002) ACC_PRIVATE

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
         0: .line 35
            aload 0 /* this */
            invokespecial com.sun.prism.es2.GLFactory.<init>:()V
         1: .line 48
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.MonocleGLFactory.preQualificationFilter:[Lcom/sun/prism/es2/GLGPUInfo;
         2: .line 49
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.MonocleGLFactory.blackList:[Lcom/sun/prism/es2/GLGPUInfo;
         3: .line 51
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
         4: .line 35
            return
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/sun/prism/es2/MonocleGLFactory;

  private static native long nInitialize(int[]);
    descriptor: ([I)J
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      attrArr  

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

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

  private static native int nGetAdapterCount();
    descriptor: ()I
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

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

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

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

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

  com.sun.prism.es2.GLGPUInfo[] getPreQualificationFilter();
    descriptor: ()[Lcom/sun/prism/es2/GLGPUInfo;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
         0: .line 55
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.preQualificationFilter:[Lcom/sun/prism/es2/GLGPUInfo;
            areturn
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/MonocleGLFactory;

  com.sun.prism.es2.GLGPUInfo[] getBlackList();
    descriptor: ()[Lcom/sun/prism/es2/GLGPUInfo;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
         0: .line 60
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.blackList:[Lcom/sun/prism/es2/GLGPUInfo;
            areturn
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/MonocleGLFactory;

  com.sun.prism.es2.GLContext createGLContext(long);
    descriptor: (J)Lcom/sun/prism/es2/GLContext;
    flags: (0x0000) 
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // long nativeCtxInfo
         0: .line 65
            new com.sun.prism.es2.MonocleGLContext
            dup
            lload 1 /* nativeCtxInfo */
            invokespecial com.sun.prism.es2.MonocleGLContext.<init>:(J)V
            areturn
        end local 1 // long nativeCtxInfo
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  nativeCtxInfo  J
    MethodParameters:
               Name  Flags
      nativeCtxInfo  

  com.sun.prism.es2.GLContext createGLContext(com.sun.prism.es2.GLDrawable, com.sun.prism.es2.GLPixelFormat, com.sun.prism.es2.GLContext, boolean);
    descriptor: (Lcom/sun/prism/es2/GLDrawable;Lcom/sun/prism/es2/GLPixelFormat;Lcom/sun/prism/es2/GLContext;Z)Lcom/sun/prism/es2/GLContext;
    flags: (0x0000) 
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // com.sun.prism.es2.GLDrawable drawable
        start local 2 // com.sun.prism.es2.GLPixelFormat pixelFormat
        start local 3 // com.sun.prism.es2.GLContext shareCtx
        start local 4 // boolean vSyncRequest
         0: .line 73
            new com.sun.prism.es2.MonocleGLContext
            dup
            aload 1 /* drawable */
            aload 2 /* pixelFormat */
            iload 4 /* vSyncRequest */
         1: .line 74
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.nativeCtxInfo:J
         2: .line 73
            invokespecial com.sun.prism.es2.MonocleGLContext.<init>:(Lcom/sun/prism/es2/GLDrawable;Lcom/sun/prism/es2/GLPixelFormat;ZLcom/sun/glass/ui/monocle/AcceleratedScreen;J)V
            areturn
        end local 4 // boolean vSyncRequest
        end local 3 // com.sun.prism.es2.GLContext shareCtx
        end local 2 // com.sun.prism.es2.GLPixelFormat pixelFormat
        end local 1 // com.sun.prism.es2.GLDrawable drawable
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    3     1      drawable  Lcom/sun/prism/es2/GLDrawable;
            0    3     2   pixelFormat  Lcom/sun/prism/es2/GLPixelFormat;
            0    3     3      shareCtx  Lcom/sun/prism/es2/GLContext;
            0    3     4  vSyncRequest  Z
    MethodParameters:
              Name  Flags
      drawable      
      pixelFormat   
      shareCtx      
      vSyncRequest  

  com.sun.prism.es2.GLDrawable createDummyGLDrawable(com.sun.prism.es2.GLPixelFormat);
    descriptor: (Lcom/sun/prism/es2/GLPixelFormat;)Lcom/sun/prism/es2/GLDrawable;
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // com.sun.prism.es2.GLPixelFormat pixelFormat
         0: .line 79
            new com.sun.prism.es2.MonocleGLDrawable
            dup
            aload 1 /* pixelFormat */
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            invokespecial com.sun.prism.es2.MonocleGLDrawable.<init>:(Lcom/sun/prism/es2/GLPixelFormat;Lcom/sun/glass/ui/monocle/AcceleratedScreen;)V
            areturn
        end local 1 // com.sun.prism.es2.GLPixelFormat pixelFormat
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  pixelFormat  Lcom/sun/prism/es2/GLPixelFormat;
    MethodParameters:
             Name  Flags
      pixelFormat  

  com.sun.prism.es2.GLDrawable createGLDrawable(long, com.sun.prism.es2.GLPixelFormat);
    descriptor: (JLcom/sun/prism/es2/GLPixelFormat;)Lcom/sun/prism/es2/GLDrawable;
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // long nativeWindow
        start local 3 // com.sun.prism.es2.GLPixelFormat pixelFormat
         0: .line 84
            new com.sun.prism.es2.MonocleGLDrawable
            dup
            lload 1 /* nativeWindow */
            aload 3 /* pixelFormat */
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            invokespecial com.sun.prism.es2.MonocleGLDrawable.<init>:(JLcom/sun/prism/es2/GLPixelFormat;Lcom/sun/glass/ui/monocle/AcceleratedScreen;)V
            areturn
        end local 3 // com.sun.prism.es2.GLPixelFormat pixelFormat
        end local 1 // long nativeWindow
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  nativeWindow  J
            0    1     3   pixelFormat  Lcom/sun/prism/es2/GLPixelFormat;
    MethodParameters:
              Name  Flags
      nativeWindow  
      pixelFormat   

  com.sun.prism.es2.GLPixelFormat createGLPixelFormat(long, com.sun.prism.es2.GLPixelFormat$Attributes);
    descriptor: (JLcom/sun/prism/es2/GLPixelFormat$Attributes;)Lcom/sun/prism/es2/GLPixelFormat;
    flags: (0x0000) 
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // long nativeScreen
        start local 3 // com.sun.prism.es2.GLPixelFormat$Attributes attributes
         0: .line 89
            new com.sun.prism.es2.MonocleGLPixelFormat
            dup
            lload 1 /* nativeScreen */
            aload 3 /* attributes */
            invokespecial com.sun.prism.es2.MonocleGLPixelFormat.<init>:(JLcom/sun/prism/es2/GLPixelFormat$Attributes;)V
            areturn
        end local 3 // com.sun.prism.es2.GLPixelFormat$Attributes attributes
        end local 1 // long nativeScreen
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  nativeScreen  J
            0    1     3    attributes  Lcom/sun/prism/es2/GLPixelFormat$Attributes;
    MethodParameters:
              Name  Flags
      nativeScreen  
      attributes    

  boolean initialize(java.lang.Class, com.sun.prism.es2.GLPixelFormat$Attributes);
    descriptor: (Ljava/lang/Class;Lcom/sun/prism/es2/GLPixelFormat$Attributes;)Z
    flags: (0x0000) 
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // java.lang.Class psClass
        start local 2 // com.sun.prism.es2.GLPixelFormat$Attributes attrs
         0: .line 96
            bipush 7
            newarray 10
            astore 3 /* attrArr */
        start local 3 // int[] attrArr
         1: .line 98
            aload 3 /* attrArr */
            iconst_0
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.getRedSize:()I
            iastore
         2: .line 99
            aload 3 /* attrArr */
            iconst_1
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.getGreenSize:()I
            iastore
         3: .line 100
            aload 3 /* attrArr */
            iconst_2
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.getBlueSize:()I
            iastore
         4: .line 101
            aload 3 /* attrArr */
            iconst_3
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.getAlphaSize:()I
            iastore
         5: .line 102
            aload 3 /* attrArr */
            iconst_4
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.getDepthSize:()I
            iastore
         6: .line 103
            aload 3 /* attrArr */
            iconst_5
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.isDoubleBuffer:()Z
            ifeq 7
            iconst_1
            goto 8
      StackMap locals: com.sun.prism.es2.MonocleGLFactory java.lang.Class com.sun.prism.es2.GLPixelFormat$Attributes int[]
      StackMap stack: int[] int
         7: iconst_0
      StackMap locals: com.sun.prism.es2.MonocleGLFactory java.lang.Class com.sun.prism.es2.GLPixelFormat$Attributes int[]
      StackMap stack: int[] int int
         8: iastore
         9: .line 104
            aload 3 /* attrArr */
            bipush 6
            aload 2 /* attrs */
            invokevirtual com.sun.prism.es2.GLPixelFormat$Attributes.isOnScreen:()Z
            ifeq 10
            iconst_1
            goto 11
      StackMap locals: com.sun.prism.es2.MonocleGLFactory java.lang.Class com.sun.prism.es2.GLPixelFormat$Attributes int[]
      StackMap stack: int[] int
        10: iconst_0
      StackMap locals: com.sun.prism.es2.MonocleGLFactory java.lang.Class com.sun.prism.es2.GLPixelFormat$Attributes int[]
      StackMap stack: int[] int int
        11: iastore
        12: .line 107
            aload 0 /* this */
            invokestatic com.sun.glass.ui.monocle.NativePlatformFactory.getNativePlatform:()Lcom/sun/glass/ui/monocle/NativePlatform;
        13: .line 109
            aload 3 /* attrArr */
        14: .line 107
            invokevirtual com.sun.glass.ui.monocle.NativePlatform.getAcceleratedScreen:([I)Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            putfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
        15: .line 113
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            ifnonnull 17
        16: .line 114
            iconst_0
            ireturn
        17: .line 117
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            iconst_1
            invokevirtual com.sun.glass.ui.monocle.AcceleratedScreen.enableRendering:(Z)V
        18: .line 119
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            invokevirtual com.sun.glass.ui.monocle.AcceleratedScreen.getGLHandle:()J
            invokestatic com.sun.prism.es2.MonocleGLFactory.nPopulateNativeCtxInfo:(J)J
            putfield com.sun.prism.es2.MonocleGLFactory.nativeCtxInfo:J
        19: .line 121
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.accScreen:Lcom/sun/glass/ui/monocle/AcceleratedScreen;
            iconst_0
            invokevirtual com.sun.glass.ui.monocle.AcceleratedScreen.enableRendering:(Z)V
        20: .line 123
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.nativeCtxInfo:J
            lconst_0
            lcmp
            ifne 22
        21: .line 125
            iconst_0
            ireturn
        22: .line 127
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.MonocleGLFactory.nativeCtxInfo:J
            invokestatic com.sun.prism.es2.MonocleGLFactory.nGetIsGL2:(J)Z
            putfield com.sun.prism.es2.MonocleGLFactory.gl2:Z
        23: .line 128
            iconst_1
            ireturn
        24: .line 130
      StackMap locals:
      StackMap stack: com.sun.glass.ui.monocle.GLException
            astore 4 /* e */
        start local 4 // com.sun.glass.ui.monocle.GLException e
        25: .line 131
            getstatic com.sun.prism.impl.PrismSettings.verbose:Z
            ifeq 27
        26: .line 132
            aload 4 /* e */
            invokevirtual com.sun.glass.ui.monocle.GLException.printStackTrace:()V
        27: .line 134
      StackMap locals: com.sun.glass.ui.monocle.GLException
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // com.sun.glass.ui.monocle.GLException e
        28: .line 135
      StackMap locals: com.sun.prism.es2.MonocleGLFactory java.lang.Class com.sun.prism.es2.GLPixelFormat$Attributes int[]
      StackMap stack: java.lang.UnsatisfiedLinkError
            astore 4 /* e */
        start local 4 // java.lang.UnsatisfiedLinkError e
        29: .line 136
            getstatic com.sun.prism.impl.PrismSettings.verbose:Z
            ifeq 31
        30: .line 137
            aload 4 /* e */
            invokevirtual java.lang.UnsatisfiedLinkError.printStackTrace:()V
        31: .line 139
      StackMap locals: java.lang.UnsatisfiedLinkError
      StackMap stack:
            iconst_0
            ireturn
        end local 4 // java.lang.UnsatisfiedLinkError e
        end local 3 // int[] attrArr
        end local 2 // com.sun.prism.es2.GLPixelFormat$Attributes attrs
        end local 1 // java.lang.Class psClass
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   32     0     this  Lcom/sun/prism/es2/MonocleGLFactory;
            0   32     1  psClass  Ljava/lang/Class;
            0   32     2    attrs  Lcom/sun/prism/es2/GLPixelFormat$Attributes;
            1   32     3  attrArr  [I
           25   28     4        e  Lcom/sun/glass/ui/monocle/GLException;
           29   32     4        e  Ljava/lang/UnsatisfiedLinkError;
      Exception table:
        from    to  target  type
          12    16      24  Class com.sun.glass.ui.monocle.GLException
          17    21      24  Class com.sun.glass.ui.monocle.GLException
          22    23      24  Class com.sun.glass.ui.monocle.GLException
          12    16      28  Class java.lang.UnsatisfiedLinkError
          17    21      28  Class java.lang.UnsatisfiedLinkError
          22    23      28  Class java.lang.UnsatisfiedLinkError
    MethodParameters:
         Name  Flags
      psClass  
      attrs    

  int getAdapterCount();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
         0: .line 145
            invokestatic com.sun.prism.es2.MonocleGLFactory.nGetAdapterCount:()I
            ireturn
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/MonocleGLFactory;

  int getAdapterOrdinal(long);
    descriptor: (J)I
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // long nativeScreen
         0: .line 150
            lload 1 /* nativeScreen */
            invokestatic com.sun.prism.es2.MonocleGLFactory.nGetAdapterOrdinal:(J)I
            ireturn
        end local 1 // long nativeScreen
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  nativeScreen  J
    MethodParameters:
              Name  Flags
      nativeScreen  

  void updateDeviceDetails(java.util.HashMap);
    descriptor: (Ljava/util/HashMap;)V
    flags: (0x0000) 
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // com.sun.prism.es2.MonocleGLFactory this
        start local 1 // java.util.HashMap deviceDetails
         0: .line 155
            return
        end local 1 // java.util.HashMap deviceDetails
        end local 0 // com.sun.prism.es2.MonocleGLFactory this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lcom/sun/prism/es2/MonocleGLFactory;
            0    1     1  deviceDetails  Ljava/util/HashMap;
    MethodParameters:
               Name  Flags
      deviceDetails  
}
SourceFile: "MonocleGLFactory.java"
InnerClasses:
  Attributes = com.sun.prism.es2.GLPixelFormat$Attributes of com.sun.prism.es2.GLPixelFormat