abstract class sun.awt.windows.TranslucentWindowPainter
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: sun.awt.windows.TranslucentWindowPainter
  super_class: java.lang.Object
{
  protected java.awt.Window window;
    descriptor: Ljava/awt/Window;
    flags: (0x0004) ACC_PROTECTED

  protected sun.awt.windows.WWindowPeer peer;
    descriptor: Lsun/awt/windows/WWindowPeer;
    flags: (0x0004) ACC_PROTECTED

  private static final boolean forceOpt;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final boolean forceSW;
    descriptor: Z
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=4, locals=0, args_size=0
         0: .line 68
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.java2d.twp.forceopt"
            ldc "false"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         1: .line 67
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
         2: .line 66
            putstatic sun.awt.windows.TranslucentWindowPainter.forceOpt:Z
         3: .line 71
            new sun.security.action.GetPropertyAction
            dup
            ldc "sun.java2d.twp.forcesw"
            ldc "false"
            invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;Ljava/lang/String;)V
         4: .line 70
            invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.Boolean.valueOf:(Ljava/lang/String;)Ljava/lang/Boolean;
            invokevirtual java.lang.Boolean.booleanValue:()Z
         5: .line 69
            putstatic sun.awt.windows.TranslucentWindowPainter.forceSW:Z
         6: .line 71
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public static sun.awt.windows.TranslucentWindowPainter createInstance(sun.awt.windows.WWindowPeer);
    descriptor: (Lsun/awt/windows/WWindowPeer;)Lsun/awt/windows/TranslucentWindowPainter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // sun.awt.windows.WWindowPeer peer
         0: .line 77
            aload 0 /* peer */
            invokevirtual sun.awt.windows.WWindowPeer.getGraphicsConfiguration:()Ljava/awt/GraphicsConfiguration;
            astore 1 /* gc */
        start local 1 // java.awt.GraphicsConfiguration gc
         1: .line 78
            getstatic sun.awt.windows.TranslucentWindowPainter.forceSW:Z
            ifne 10
            aload 1 /* gc */
            instanceof sun.java2d.pipe.hw.AccelGraphicsConfig
            ifeq 10
         2: .line 79
            aload 1 /* gc */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
            astore 2 /* gcName */
        start local 2 // java.lang.String gcName
         3: .line 80
            aload 1 /* gc */
            checkcast sun.java2d.pipe.hw.AccelGraphicsConfig
            astore 3 /* agc */
        start local 3 // sun.java2d.pipe.hw.AccelGraphicsConfig agc
         4: .line 83
            aload 3 /* agc */
            invokeinterface sun.java2d.pipe.hw.AccelGraphicsConfig.getContextCapabilities:()Lsun/java2d/pipe/hw/ContextCapabilities;
            invokevirtual sun.java2d.pipe.hw.ContextCapabilities.getCaps:()I
            sipush 256
            iand
            ifne 6
         5: .line 84
            getstatic sun.awt.windows.TranslucentWindowPainter.forceOpt:Z
            ifeq 10
         6: .line 88
      StackMap locals: java.awt.GraphicsConfiguration java.lang.String sun.java2d.pipe.hw.AccelGraphicsConfig
      StackMap stack:
            aload 2 /* gcName */
            ldc "D3D"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 8
         7: .line 89
            new sun.awt.windows.TranslucentWindowPainter$VIOptD3DWindowPainter
            dup
            aload 0 /* peer */
            invokespecial sun.awt.windows.TranslucentWindowPainter$VIOptD3DWindowPainter.<init>:(Lsun/awt/windows/WWindowPeer;)V
            areturn
         8: .line 90
      StackMap locals:
      StackMap stack:
            getstatic sun.awt.windows.TranslucentWindowPainter.forceOpt:Z
            ifeq 10
            aload 2 /* gcName */
            ldc "WGL"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 10
         9: .line 94
            new sun.awt.windows.TranslucentWindowPainter$VIOptWGLWindowPainter
            dup
            aload 0 /* peer */
            invokespecial sun.awt.windows.TranslucentWindowPainter$VIOptWGLWindowPainter.<init>:(Lsun/awt/windows/WWindowPeer;)V
            areturn
        end local 3 // sun.java2d.pipe.hw.AccelGraphicsConfig agc
        end local 2 // java.lang.String gcName
        10: .line 98
      StackMap locals:
      StackMap stack:
            new sun.awt.windows.TranslucentWindowPainter$BIWindowPainter
            dup
            aload 0 /* peer */
            invokespecial sun.awt.windows.TranslucentWindowPainter$BIWindowPainter.<init>:(Lsun/awt/windows/WWindowPeer;)V
            areturn
        end local 1 // java.awt.GraphicsConfiguration gc
        end local 0 // sun.awt.windows.WWindowPeer peer
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   11     0    peer  Lsun/awt/windows/WWindowPeer;
            1   11     1      gc  Ljava/awt/GraphicsConfiguration;
            3   10     2  gcName  Ljava/lang/String;
            4   10     3     agc  Lsun/java2d/pipe/hw/AccelGraphicsConfig;
    MethodParameters:
      Name  Flags
      peer  

  protected void <init>(sun.awt.windows.WWindowPeer);
    descriptor: (Lsun/awt/windows/WWindowPeer;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.awt.windows.TranslucentWindowPainter this
        start local 1 // sun.awt.windows.WWindowPeer peer
         0: .line 101
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 102
            aload 0 /* this */
            aload 1 /* peer */
            putfield sun.awt.windows.TranslucentWindowPainter.peer:Lsun/awt/windows/WWindowPeer;
         2: .line 103
            aload 0 /* this */
            aload 1 /* peer */
            invokevirtual sun.awt.windows.WWindowPeer.getTarget:()Ljava/lang/Object;
            checkcast java.awt.Window
            putfield sun.awt.windows.TranslucentWindowPainter.window:Ljava/awt/Window;
         3: .line 104
            return
        end local 1 // sun.awt.windows.WWindowPeer peer
        end local 0 // sun.awt.windows.TranslucentWindowPainter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/awt/windows/TranslucentWindowPainter;
            0    4     1  peer  Lsun/awt/windows/WWindowPeer;
    MethodParameters:
      Name  Flags
      peer  

  protected abstract java.awt.Image getBackBuffer(boolean);
    descriptor: (Z)Ljava/awt/Image;
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      clear  

  protected abstract boolean update(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      bb    

  public abstract void flush();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public void updateWindow(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=6, args_size=2
        start local 0 // sun.awt.windows.TranslucentWindowPainter this
        start local 1 // boolean repaint
         0: .line 132
            iconst_0
            istore 2 /* done */
        start local 2 // boolean done
         1: .line 133
            aload 0 /* this */
            iload 1 /* repaint */
            invokevirtual sun.awt.windows.TranslucentWindowPainter.getBackBuffer:(Z)Ljava/awt/Image;
            astore 3 /* bb */
        start local 3 // java.awt.Image bb
         2: .line 134
            goto 15
         3: .line 135
      StackMap locals: int java.awt.Image
      StackMap stack:
            iload 1 /* repaint */
            ifeq 11
         4: .line 136
            aload 3 /* bb */
            invokevirtual java.awt.Image.getGraphics:()Ljava/awt/Graphics;
            checkcast java.awt.Graphics2D
            astore 4 /* g */
        start local 4 // java.awt.Graphics2D g
         5: .line 138
            aload 0 /* this */
            getfield sun.awt.windows.TranslucentWindowPainter.window:Ljava/awt/Window;
            aload 4 /* g */
            invokevirtual java.awt.Window.paintAll:(Ljava/awt/Graphics;)V
         6: .line 139
            goto 10
      StackMap locals: sun.awt.windows.TranslucentWindowPainter int int java.awt.Image java.awt.Graphics2D
      StackMap stack: java.lang.Throwable
         7: astore 5
         8: .line 140
            aload 4 /* g */
            invokevirtual java.awt.Graphics2D.dispose:()V
         9: .line 141
            aload 5
            athrow
        10: .line 140
      StackMap locals:
      StackMap stack:
            aload 4 /* g */
            invokevirtual java.awt.Graphics2D.dispose:()V
        end local 4 // java.awt.Graphics2D g
        11: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 3 /* bb */
            invokevirtual sun.awt.windows.TranslucentWindowPainter.update:(Ljava/awt/Image;)Z
            istore 2 /* done */
        12: .line 145
            iload 2 /* done */
            ifne 15
        13: .line 146
            iconst_1
            istore 1 /* repaint */
        14: .line 147
            aload 0 /* this */
            iconst_1
            invokevirtual sun.awt.windows.TranslucentWindowPainter.getBackBuffer:(Z)Ljava/awt/Image;
            astore 3 /* bb */
        15: .line 134
      StackMap locals:
      StackMap stack:
            iload 2 /* done */
            ifeq 3
        16: .line 150
            return
        end local 3 // java.awt.Image bb
        end local 2 // boolean done
        end local 1 // boolean repaint
        end local 0 // sun.awt.windows.TranslucentWindowPainter this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   17     0     this  Lsun/awt/windows/TranslucentWindowPainter;
            0   17     1  repaint  Z
            1   17     2     done  Z
            2   17     3       bb  Ljava/awt/Image;
            5   11     4        g  Ljava/awt/Graphics2D;
      Exception table:
        from    to  target  type
           5     7       7  any
    MethodParameters:
         Name  Flags
      repaint  

  private static final java.awt.Image clearImage(java.awt.Image);
    descriptor: (Ljava/awt/Image;)Ljava/awt/Image;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=7, locals=4, args_size=1
        start local 0 // java.awt.Image bb
         0: .line 153
            aload 0 /* bb */
            invokevirtual java.awt.Image.getGraphics:()Ljava/awt/Graphics;
            checkcast java.awt.Graphics2D
            astore 1 /* g */
        start local 1 // java.awt.Graphics2D g
         1: .line 154
            aload 0 /* bb */
            aconst_null
            invokevirtual java.awt.Image.getWidth:(Ljava/awt/image/ImageObserver;)I
            istore 2 /* w */
        start local 2 // int w
         2: .line 155
            aload 0 /* bb */
            aconst_null
            invokevirtual java.awt.Image.getHeight:(Ljava/awt/image/ImageObserver;)I
            istore 3 /* h */
        start local 3 // int h
         3: .line 157
            aload 1 /* g */
            getstatic java.awt.AlphaComposite.Src:Ljava/awt/AlphaComposite;
            invokevirtual java.awt.Graphics2D.setComposite:(Ljava/awt/Composite;)V
         4: .line 158
            aload 1 /* g */
            new java.awt.Color
            dup
            iconst_0
            iconst_0
            iconst_0
            iconst_0
            invokespecial java.awt.Color.<init>:(IIII)V
            invokevirtual java.awt.Graphics2D.setColor:(Ljava/awt/Color;)V
         5: .line 159
            aload 1 /* g */
            iconst_0
            iconst_0
            iload 2 /* w */
            iload 3 /* h */
            invokevirtual java.awt.Graphics2D.fillRect:(IIII)V
         6: .line 161
            aload 0 /* bb */
            areturn
        end local 3 // int h
        end local 2 // int w
        end local 1 // java.awt.Graphics2D g
        end local 0 // java.awt.Image bb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0    bb  Ljava/awt/Image;
            1    7     1     g  Ljava/awt/Graphics2D;
            2    7     2     w  I
            3    7     3     h  I
    MethodParameters:
      Name  Flags
      bb    
}
SourceFile: "TranslucentWindowPainter.java"
NestMembers:
  sun.awt.windows.TranslucentWindowPainter$BIWindowPainter  sun.awt.windows.TranslucentWindowPainter$VIOptD3DWindowPainter  sun.awt.windows.TranslucentWindowPainter$VIOptWGLWindowPainter  sun.awt.windows.TranslucentWindowPainter$VIOptWindowPainter  sun.awt.windows.TranslucentWindowPainter$VIOptWindowPainter$1  sun.awt.windows.TranslucentWindowPainter$VIWindowPainter
InnerClasses:
  private BIWindowPainter = sun.awt.windows.TranslucentWindowPainter$BIWindowPainter of sun.awt.windows.TranslucentWindowPainter
  private VIOptD3DWindowPainter = sun.awt.windows.TranslucentWindowPainter$VIOptD3DWindowPainter of sun.awt.windows.TranslucentWindowPainter
  private VIOptWGLWindowPainter = sun.awt.windows.TranslucentWindowPainter$VIOptWGLWindowPainter of sun.awt.windows.TranslucentWindowPainter
  private abstract VIOptWindowPainter = sun.awt.windows.TranslucentWindowPainter$VIOptWindowPainter of sun.awt.windows.TranslucentWindowPainter
  private VIWindowPainter = sun.awt.windows.TranslucentWindowPainter$VIWindowPainter of sun.awt.windows.TranslucentWindowPainter