class com.sun.prism.es2.ES2SwapChain implements com.sun.prism.es2.ES2RenderTarget, com.sun.prism.Presentable, com.sun.prism.GraphicsResource
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.prism.es2.ES2SwapChain
  super_class: java.lang.Object
{
  private final com.sun.prism.es2.ES2Context context;
    descriptor: Lcom/sun/prism/es2/ES2Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.prism.PresentableState pState;
    descriptor: Lcom/sun/prism/PresentableState;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.prism.es2.GLDrawable drawable;
    descriptor: Lcom/sun/prism/es2/GLDrawable;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

  private float pixelScaleFactorX;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float pixelScaleFactorY;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

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

  private final boolean msaa;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.sun.prism.RTTexture stableBackbuffer;
    descriptor: Lcom/sun/prism/RTTexture;
    flags: (0x0002) ACC_PRIVATE

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

  public boolean isOpaque();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 73
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 2
         1: .line 74
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.isOpaque:()Z
            ireturn
         2: .line 76
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.opaque:Z
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public void setOpaque(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.prism.es2.ES2SwapChain this
        start local 1 // boolean isOpaque
         0: .line 81
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 3
         1: .line 82
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            iload 1 /* isOpaque */
            invokeinterface com.sun.prism.RTTexture.setOpaque:(Z)V
         2: .line 83
            goto 4
         3: .line 84
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* isOpaque */
            putfield com.sun.prism.es2.ES2SwapChain.opaque:Z
         4: .line 86
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean isOpaque
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0      this  Lcom/sun/prism/es2/ES2SwapChain;
            0    5     1  isOpaque  Z
    MethodParameters:
          Name  Flags
      isOpaque  

  void <init>(com.sun.prism.es2.ES2Context, com.sun.prism.PresentableState);
    descriptor: (Lcom/sun/prism/es2/ES2Context;Lcom/sun/prism/PresentableState;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=5, args_size=3
        start local 0 // com.sun.prism.es2.ES2SwapChain this
        start local 1 // com.sun.prism.es2.ES2Context context
        start local 2 // com.sun.prism.PresentableState pState
         0: .line 88
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 47
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.es2.ES2SwapChain.opaque:Z
         2: .line 53
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.es2.ES2SwapChain.nativeDestHandle:I
         3: .line 89
            aload 0 /* this */
            aload 1 /* context */
            putfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
         4: .line 90
            aload 0 /* this */
            aload 2 /* pState */
            putfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
         5: .line 91
            aload 0 /* this */
            aload 2 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderScaleX:()F
            putfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorX:F
         6: .line 92
            aload 0 /* this */
            aload 2 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderScaleY:()F
            putfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorY:F
         7: .line 93
            aload 0 /* this */
            aload 2 /* pState */
            invokevirtual com.sun.prism.PresentableState.isMSAA:()Z
            putfield com.sun.prism.es2.ES2SwapChain.msaa:Z
         8: .line 94
            aload 2 /* pState */
            invokevirtual com.sun.prism.PresentableState.getNativeWindow:()J
            lstore 3 /* nativeWindow */
        start local 3 // long nativeWindow
         9: .line 95
            aload 0 /* this */
            getstatic com.sun.prism.es2.ES2Pipeline.glFactory:Lcom/sun/prism/es2/GLFactory;
        10: .line 96
            lload 3 /* nativeWindow */
            aload 1 /* context */
            invokevirtual com.sun.prism.es2.ES2Context.getPixelFormat:()Lcom/sun/prism/es2/GLPixelFormat;
        11: .line 95
            invokevirtual com.sun.prism.es2.GLFactory.createGLDrawable:(JLcom/sun/prism/es2/GLPixelFormat;)Lcom/sun/prism/es2/GLDrawable;
            putfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
        12: .line 97
            return
        end local 3 // long nativeWindow
        end local 2 // com.sun.prism.PresentableState pState
        end local 1 // com.sun.prism.es2.ES2Context context
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Lcom/sun/prism/es2/ES2SwapChain;
            0   13     1       context  Lcom/sun/prism/es2/ES2Context;
            0   13     2        pState  Lcom/sun/prism/PresentableState;
            9   13     3  nativeWindow  J
    MethodParameters:
         Name  Flags
      context  
      pState   

  public boolean lockResources(com.sun.prism.PresentableState);
    descriptor: (Lcom/sun/prism/PresentableState;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // com.sun.prism.es2.ES2SwapChain this
        start local 1 // com.sun.prism.PresentableState pState
         0: .line 100
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            aload 1 /* pState */
            if_acmpne 3
         1: .line 101
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorX:F
            aload 1 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderScaleX:()F
            fcmpl
            ifne 3
         2: .line 102
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorY:F
            aload 1 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderScaleY:()F
            fcmpl
            ifeq 4
         3: .line 104
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         4: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.w:I
            aload 1 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderWidth:()I
            if_icmpne 5
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.h:I
            aload 1 /* pState */
            invokevirtual com.sun.prism.PresentableState.getRenderHeight:()I
            if_icmpne 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack: com.sun.prism.es2.ES2SwapChain
         5: iconst_1
      StackMap locals: com.sun.prism.es2.ES2SwapChain com.sun.prism.PresentableState
      StackMap stack: com.sun.prism.es2.ES2SwapChain int
         6: putfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
         7: .line 108
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 12
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
            ifne 12
         8: .line 109
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.lock:()V
         9: .line 110
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.isSurfaceLost:()Z
            ifeq 12
        10: .line 111
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
        11: .line 117
            iconst_1
            ireturn
        12: .line 120
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // com.sun.prism.PresentableState pState
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   13     0    this  Lcom/sun/prism/es2/ES2SwapChain;
            0   13     1  pState  Lcom/sun/prism/PresentableState;
    MethodParameters:
        Name  Flags
      pState  

  public boolean prepare(com.sun.javafx.geom.Rectangle);
    descriptor: (Lcom/sun/javafx/geom/Rectangle;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=7, args_size=2
        start local 0 // com.sun.prism.es2.ES2SwapChain this
        start local 1 // com.sun.javafx.geom.Rectangle clip
         0: .line 125
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            aload 0 /* this */
            invokestatic com.sun.prism.es2.ES2Graphics.create:(Lcom/sun/prism/es2/ES2Context;Lcom/sun/prism/RenderTarget;)Lcom/sun/prism/es2/ES2Graphics;
            astore 2 /* g */
        start local 2 // com.sun.prism.es2.ES2Graphics g
         1: .line 126
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 22
         2: .line 127
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
            ifeq 5
         3: .line 128
            aload 2 /* g */
            invokevirtual com.sun.prism.es2.ES2Graphics.forceRenderTarget:()V
         4: .line 129
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
         5: .line 133
      StackMap locals: com.sun.prism.es2.ES2Graphics
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderWidth:()I
            putfield com.sun.prism.es2.ES2SwapChain.w:I
         6: .line 134
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderHeight:()I
            putfield com.sun.prism.es2.ES2SwapChain.h:I
         7: .line 135
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.w:I
            istore 3 /* sw */
        start local 3 // int sw
         8: .line 136
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.h:I
            istore 4 /* sh */
        start local 4 // int sh
         9: .line 137
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputWidth:()I
            istore 5 /* dw */
        start local 5 // int dw
        10: .line 138
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputHeight:()I
            istore 6 /* dh */
        start local 6 // int dh
        11: .line 139
            aload 0 /* this */
            iconst_0
            putfield com.sun.prism.es2.ES2SwapChain.copyFullBuffer:Z
        12: .line 140
            aload 0 /* this */
            invokevirtual com.sun.prism.es2.ES2SwapChain.isMSAA:()Z
            ifeq 18
        13: .line 141
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.flushVertexBuffer:()V
        14: .line 143
            aload 2 /* g */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            aconst_null
        15: .line 144
            iconst_0
            iconst_0
            iload 3 /* sw */
            iload 4 /* sh */
            iconst_0
            iload 6 /* dh */
            iload 5 /* dw */
            iconst_0
        16: .line 143
            invokevirtual com.sun.prism.es2.ES2Graphics.blit:(Lcom/sun/prism/RTTexture;Lcom/sun/prism/RTTexture;IIIIIIII)V
        17: .line 145
            goto 21
        18: .line 146
      StackMap locals: com.sun.prism.es2.ES2SwapChain com.sun.javafx.geom.Rectangle com.sun.prism.es2.ES2Graphics int int int int
      StackMap stack:
            aload 0 /* this */
            aload 2 /* g */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
        19: .line 147
            fconst_0
            fconst_0
            iload 5 /* dw */
            i2f
            iload 6 /* dh */
            i2f
            fconst_0
            fconst_0
            iload 3 /* sw */
            i2f
            iload 4 /* sh */
            i2f
        20: .line 146
            invokevirtual com.sun.prism.es2.ES2SwapChain.drawTexture:(Lcom/sun/prism/es2/ES2Graphics;Lcom/sun/prism/RTTexture;FFFFFFFF)V
        21: .line 149
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.unlock:()V
        end local 6 // int dh
        end local 5 // int dw
        end local 4 // int sh
        end local 3 // int sw
        22: .line 151
      StackMap locals: com.sun.prism.es2.ES2SwapChain com.sun.javafx.geom.Rectangle com.sun.prism.es2.ES2Graphics
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
            ifnull 23
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        23: iconst_0
        24: ireturn
        end local 2 // com.sun.prism.es2.ES2Graphics g
        25: .line 152
      StackMap locals: com.sun.prism.es2.ES2SwapChain com.sun.javafx.geom.Rectangle
      StackMap stack: java.lang.Throwable
            astore 2 /* th */
        start local 2 // java.lang.Throwable th
        26: .line 153
            getstatic com.sun.prism.impl.PrismSettings.verbose:Z
            ifeq 28
        27: .line 154
            aload 2 /* th */
            invokevirtual java.lang.Throwable.printStackTrace:()V
        28: .line 156
      StackMap locals: java.lang.Throwable
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.lang.Throwable th
        end local 1 // com.sun.javafx.geom.Rectangle clip
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   29     0  this  Lcom/sun/prism/es2/ES2SwapChain;
            0   29     1  clip  Lcom/sun/javafx/geom/Rectangle;
            1   25     2     g  Lcom/sun/prism/es2/ES2Graphics;
            8   22     3    sw  I
            9   22     4    sh  I
           10   22     5    dw  I
           11   22     6    dh  I
           26   29     2    th  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           0    24      25  Class java.lang.Throwable
    MethodParameters:
      Name  Flags
      clip  

  private void drawTexture(com.sun.prism.es2.ES2Graphics, com.sun.prism.RTTexture, float, float, float, float, float, float, float, float);
    descriptor: (Lcom/sun/prism/es2/ES2Graphics;Lcom/sun/prism/RTTexture;FFFFFFFF)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=12, args_size=11
        start local 0 // com.sun.prism.es2.ES2SwapChain this
        start local 1 // com.sun.prism.es2.ES2Graphics g
        start local 2 // com.sun.prism.RTTexture src
        start local 3 // float dx1
        start local 4 // float dy1
        start local 5 // float dx2
        start local 6 // float dy2
        start local 7 // float sx1
        start local 8 // float sy1
        start local 9 // float sx2
        start local 10 // float sy2
         0: .line 164
            aload 1 /* g */
            invokevirtual com.sun.prism.es2.ES2Graphics.getCompositeMode:()Lcom/sun/prism/CompositeMode;
            astore 11 /* savedMode */
        start local 11 // com.sun.prism.CompositeMode savedMode
         1: .line 165
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.hasWindowManager:()Z
            ifne 5
         2: .line 168
            aload 1 /* g */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getAlpha:()F
            invokevirtual com.sun.prism.es2.ES2Graphics.setExtraAlpha:(F)V
         3: .line 169
            aload 1 /* g */
            getstatic com.sun.prism.CompositeMode.SRC_OVER:Lcom/sun/prism/CompositeMode;
            invokevirtual com.sun.prism.es2.ES2Graphics.setCompositeMode:(Lcom/sun/prism/CompositeMode;)V
         4: .line 170
            goto 6
         5: .line 172
      StackMap locals: com.sun.prism.CompositeMode
      StackMap stack:
            aload 1 /* g */
            getstatic com.sun.prism.CompositeMode.SRC:Lcom/sun/prism/CompositeMode;
            invokevirtual com.sun.prism.es2.ES2Graphics.setCompositeMode:(Lcom/sun/prism/CompositeMode;)V
         6: .line 174
      StackMap locals:
      StackMap stack:
            aload 1 /* g */
            aload 2 /* src */
            fload 3 /* dx1 */
            fload 4 /* dy1 */
            fload 5 /* dx2 */
            fload 6 /* dy2 */
            fload 7 /* sx1 */
            fload 8 /* sy1 */
            fload 9 /* sx2 */
            fload 10 /* sy2 */
            invokevirtual com.sun.prism.es2.ES2Graphics.drawTexture:(Lcom/sun/prism/Texture;FFFFFFFF)V
         7: .line 175
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.flushVertexBuffer:()V
         8: .line 177
            aload 1 /* g */
            aload 11 /* savedMode */
            invokevirtual com.sun.prism.es2.ES2Graphics.setCompositeMode:(Lcom/sun/prism/CompositeMode;)V
         9: .line 178
            return
        end local 11 // com.sun.prism.CompositeMode savedMode
        end local 10 // float sy2
        end local 9 // float sx2
        end local 8 // float sy1
        end local 7 // float sx1
        end local 6 // float dy2
        end local 5 // float dx2
        end local 4 // float dy1
        end local 3 // float dx1
        end local 2 // com.sun.prism.RTTexture src
        end local 1 // com.sun.prism.es2.ES2Graphics g
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   10     0       this  Lcom/sun/prism/es2/ES2SwapChain;
            0   10     1          g  Lcom/sun/prism/es2/ES2Graphics;
            0   10     2        src  Lcom/sun/prism/RTTexture;
            0   10     3        dx1  F
            0   10     4        dy1  F
            0   10     5        dx2  F
            0   10     6        dy2  F
            0   10     7        sx1  F
            0   10     8        sy1  F
            0   10     9        sx2  F
            0   10    10        sy2  F
            1   10    11  savedMode  Lcom/sun/prism/CompositeMode;
    MethodParameters:
      Name  Flags
      g     
      src   
      dx1   
      dy1   
      dx2   
      dy2   
      sx1   
      sy1   
      sx2   
      sy2   

  public boolean present();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 181
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.getGLContext:()Lcom/sun/prism/es2/GLContext;
            invokevirtual com.sun.prism.es2.GLDrawable.swapBuffers:(Lcom/sun/prism/es2/GLContext;)Z
            istore 1 /* presented */
        start local 1 // boolean presented
         1: .line 182
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            aconst_null
            invokevirtual com.sun.prism.es2.ES2Context.makeCurrent:(Lcom/sun/prism/es2/GLDrawable;)V
         2: .line 183
            iload 1 /* presented */
            ireturn
        end local 1 // boolean presented
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lcom/sun/prism/es2/ES2SwapChain;
            1    3     1  presented  Z

  public com.sun.prism.es2.ES2Graphics createGraphics();
    descriptor: ()Lcom/sun/prism/es2/ES2Graphics;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 187
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
            invokevirtual com.sun.prism.es2.GLDrawable.getNativeWindow:()J
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getNativeWindow:()J
            lcmp
            ifeq 4
         1: .line 188
            aload 0 /* this */
            getstatic com.sun.prism.es2.ES2Pipeline.glFactory:Lcom/sun/prism/es2/GLFactory;
         2: .line 189
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getNativeWindow:()J
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.getPixelFormat:()Lcom/sun/prism/es2/GLPixelFormat;
         3: .line 188
            invokevirtual com.sun.prism.es2.GLFactory.createGLDrawable:(JLcom/sun/prism/es2/GLPixelFormat;)Lcom/sun/prism/es2/GLDrawable;
            putfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
         4: .line 191
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.drawable:Lcom/sun/prism/es2/GLDrawable;
            invokevirtual com.sun.prism.es2.ES2Context.makeCurrent:(Lcom/sun/prism/es2/GLDrawable;)V
         5: .line 193
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getNativeFrameBuffer:()I
            putfield com.sun.prism.es2.ES2SwapChain.nativeDestHandle:I
         6: .line 194
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.nativeDestHandle:I
            ifne 9
         7: .line 195
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.getGLContext:()Lcom/sun/prism/es2/GLContext;
            astore 1 /* glContext */
        start local 1 // com.sun.prism.es2.GLContext glContext
         8: .line 196
            aload 0 /* this */
            aload 1 /* glContext */
            invokevirtual com.sun.prism.es2.GLContext.getBoundFBO:()I
            putfield com.sun.prism.es2.ES2SwapChain.nativeDestHandle:I
        end local 1 // com.sun.prism.es2.GLContext glContext
         9: .line 199
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.w:I
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderWidth:()I
            if_icmpne 10
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.h:I
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderHeight:()I
            if_icmpne 10
            iconst_0
            goto 11
      StackMap locals:
      StackMap stack: com.sun.prism.es2.ES2SwapChain
        10: iconst_1
      StackMap locals: com.sun.prism.es2.ES2SwapChain
      StackMap stack: com.sun.prism.es2.ES2SwapChain int
        11: putfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
        12: .line 201
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 13
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.needsResize:Z
            ifeq 28
        13: .line 205
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 17
        14: .line 206
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.dispose:()V
        15: .line 207
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
        16: .line 208
            goto 18
        17: .line 214
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            aload 0 /* this */
            invokestatic com.sun.prism.es2.ES2Graphics.create:(Lcom/sun/prism/es2/ES2Context;Lcom/sun/prism/RenderTarget;)Lcom/sun/prism/es2/ES2Graphics;
            pop
        18: .line 216
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderWidth:()I
            putfield com.sun.prism.es2.ES2SwapChain.w:I
        19: .line 217
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getRenderHeight:()I
            putfield com.sun.prism.es2.ES2SwapChain.h:I
        20: .line 218
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.getResourceFactory:()Lcom/sun/prism/ResourceFactory;
            astore 1 /* factory */
        start local 1 // com.sun.prism.ResourceFactory factory
        21: .line 219
            aload 0 /* this */
            aload 1 /* factory */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.w:I
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.h:I
        22: .line 220
            getstatic com.sun.prism.Texture$WrapMode.CLAMP_NOT_NEEDED:Lcom/sun/prism/Texture$WrapMode;
        23: .line 221
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.msaa:Z
        24: .line 219
            invokeinterface com.sun.prism.ResourceFactory.createRTTexture:(IILcom/sun/prism/Texture$WrapMode;Z)Lcom/sun/prism/RTTexture;
            putfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
        25: .line 222
            getstatic com.sun.prism.impl.PrismSettings.dirtyOptsEnabled:Z
            ifeq 27
        26: .line 223
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.contentsUseful:()V
        27: .line 225
      StackMap locals: com.sun.prism.ResourceFactory
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.prism.es2.ES2SwapChain.copyFullBuffer:Z
        end local 1 // com.sun.prism.ResourceFactory factory
        28: .line 227
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokestatic com.sun.prism.es2.ES2Graphics.create:(Lcom/sun/prism/es2/ES2Context;Lcom/sun/prism/RenderTarget;)Lcom/sun/prism/es2/ES2Graphics;
            astore 1 /* g */
        start local 1 // com.sun.prism.es2.ES2Graphics g
        29: .line 228
            aload 1 /* g */
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorX:F
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorY:F
            invokevirtual com.sun.prism.es2.ES2Graphics.scale:(FF)V
        30: .line 229
            aload 1 /* g */
            areturn
        end local 1 // com.sun.prism.es2.ES2Graphics g
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   31     0       this  Lcom/sun/prism/es2/ES2SwapChain;
            8    9     1  glContext  Lcom/sun/prism/es2/GLContext;
           21   28     1    factory  Lcom/sun/prism/ResourceFactory;
           29   31     1          g  Lcom/sun/prism/es2/ES2Graphics;

  public int getFboID();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 233
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.nativeDestHandle:I
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public com.sun.glass.ui.Screen getAssociatedScreen();
    descriptor: ()Lcom/sun/glass/ui/Screen;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 237
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.context:Lcom/sun/prism/es2/ES2Context;
            invokevirtual com.sun.prism.es2.ES2Context.getAssociatedScreen:()Lcom/sun/glass/ui/Screen;
            areturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getPhysicalWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 241
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputWidth:()I
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getPhysicalHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 245
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputHeight:()I
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getContentX();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 251
            invokestatic com.sun.javafx.PlatformUtil.useEGL:()Z
            ifeq 2
         1: .line 252
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getWindowX:()I
            ireturn
         2: .line 254
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getContentY();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 261
            invokestatic com.sun.javafx.PlatformUtil.useEGL:()Z
            ifeq 6
         1: .line 262
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getScreenHeight:()I
         2: .line 263
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputHeight:()I
         3: .line 262
            isub
         4: .line 263
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getWindowY:()I
         5: .line 262
            isub
            ireturn
         6: .line 265
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getContentWidth();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 270
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputWidth:()I
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public int getContentHeight();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 274
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pState:Lcom/sun/prism/PresentableState;
            invokevirtual com.sun.prism.PresentableState.getOutputHeight:()I
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public float getPixelScaleFactorX();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 279
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorX:F
            freturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public float getPixelScaleFactorY();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 284
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.pixelScaleFactorY:F
            freturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public void dispose();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 289
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 3
         1: .line 290
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.dispose:()V
         2: .line 291
            aload 0 /* this */
            aconst_null
            putfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
         3: .line 293
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public boolean isMSAA();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.prism.es2.ES2SwapChain this
         0: .line 296
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            ifnull 1
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.stableBackbuffer:Lcom/sun/prism/RTTexture;
            invokeinterface com.sun.prism.RTTexture.isMSAA:()Z
            goto 2
         1: .line 297
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.prism.es2.ES2SwapChain.msaa:Z
         2: .line 296
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // com.sun.prism.es2.ES2SwapChain this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/prism/es2/ES2SwapChain;

  public com.sun.prism.Graphics createGraphics();
    descriptor: ()Lcom/sun/prism/Graphics;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.prism.es2.ES2SwapChain.createGraphics:()Lcom/sun/prism/es2/ES2Graphics;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ES2SwapChain.java"
InnerClasses:
  public final WrapMode = com.sun.prism.Texture$WrapMode of com.sun.prism.Texture