public class sun.java2d.xr.XRMaskImage
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.java2d.xr.XRMaskImage
  super_class: java.lang.Object
{
  private static final int MASK_SCALE_FACTOR;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  private static final int BLIT_MASK_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  java.awt.Dimension blitMaskDimensions;
    descriptor: Ljava/awt/Dimension;
    flags: (0x0000) 

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

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

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

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

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

  java.awt.geom.AffineTransform lastMaskTransform;
    descriptor: Ljava/awt/geom/AffineTransform;
    flags: (0x0000) 

  sun.java2d.xr.XRCompositeManager xrMgr;
    descriptor: Lsun/java2d/xr/XRCompositeManager;
    flags: (0x0000) 

  sun.java2d.xr.XRBackend con;
    descriptor: Lsun/java2d/xr/XRBackend;
    flags: (0x0000) 

  public void <init>(sun.java2d.xr.XRCompositeManager, int);
    descriptor: (Lsun/java2d/xr/XRCompositeManager;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // sun.java2d.xr.XRMaskImage this
        start local 1 // sun.java2d.xr.XRCompositeManager xrMgr
        start local 2 // int parentDrawable
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 43
            aload 0 /* this */
            new java.awt.Dimension
            dup
            bipush 8
            bipush 8
            invokespecial java.awt.Dimension.<init>:(II)V
            putfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
         2: .line 46
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
         3: .line 47
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
         4: .line 48
            aload 0 /* this */
            iconst_m1
            putfield sun.java2d.xr.XRMaskImage.lastEA:I
         5: .line 55
            aload 0 /* this */
            aload 1 /* xrMgr */
            putfield sun.java2d.xr.XRMaskImage.xrMgr:Lsun/java2d/xr/XRCompositeManager;
         6: .line 56
            aload 0 /* this */
            aload 1 /* xrMgr */
            invokevirtual sun.java2d.xr.XRCompositeManager.getBackend:()Lsun/java2d/xr/XRBackend;
            putfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
         7: .line 58
            aload 0 /* this */
            iload 2 /* parentDrawable */
            bipush 8
            bipush 8
            invokevirtual sun.java2d.xr.XRMaskImage.initBlitMask:(III)V
         8: .line 59
            return
        end local 2 // int parentDrawable
        end local 1 // sun.java2d.xr.XRCompositeManager xrMgr
        end local 0 // sun.java2d.xr.XRMaskImage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    9     0            this  Lsun/java2d/xr/XRMaskImage;
            0    9     1           xrMgr  Lsun/java2d/xr/XRCompositeManager;
            0    9     2  parentDrawable  I
    MethodParameters:
                Name  Flags
      xrMgr           
      parentDrawable  

  public int prepareBlitMask(sun.java2d.xr.XRSurfaceData, java.awt.geom.AffineTransform, int, int);
    descriptor: (Lsun/java2d/xr/XRSurfaceData;Ljava/awt/geom/AffineTransform;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=5
        start local 0 // sun.java2d.xr.XRMaskImage this
        start local 1 // sun.java2d.xr.XRSurfaceData dst
        start local 2 // java.awt.geom.AffineTransform maskTX
        start local 3 // int width
        start local 4 // int height
         0: .line 69
            iload 3 /* width */
            bipush 8
            idiv
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* maskWidth */
        start local 5 // int maskWidth
         1: .line 70
            iload 4 /* height */
            bipush 8
            idiv
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* maskHeight */
        start local 6 // int maskHeight
         2: .line 71
            aload 2 /* maskTX */
            iload 3 /* width */
            i2d
            iload 5 /* maskWidth */
            i2d
            ddiv
            iload 4 /* height */
            i2d
            iload 6 /* maskHeight */
            i2d
            ddiv
            invokevirtual java.awt.geom.AffineTransform.scale:(DD)V
         3: .line 74
            aload 2 /* maskTX */
            invokevirtual java.awt.geom.AffineTransform.invert:()V
         4: .line 75
            goto 7
      StackMap locals: sun.java2d.xr.XRMaskImage sun.java2d.xr.XRSurfaceData java.awt.geom.AffineTransform int int int int
      StackMap stack: java.awt.geom.NoninvertibleTransformException
         5: pop
         6: .line 76
            aload 2 /* maskTX */
            invokevirtual java.awt.geom.AffineTransform.setToIdentity:()V
         7: .line 79
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* maskWidth */
            iload 6 /* maskHeight */
            invokevirtual sun.java2d.xr.XRMaskImage.ensureBlitMaskSize:(II)V
         8: .line 81
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskTransform:Ljava/awt/geom/AffineTransform;
            ifnull 9
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskTransform:Ljava/awt/geom/AffineTransform;
            aload 2 /* maskTX */
            invokevirtual java.awt.geom.AffineTransform.equals:(Ljava/lang/Object;)Z
            ifne 11
         9: .line 82
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            aload 2 /* maskTX */
            invokeinterface sun.java2d.xr.XRBackend.setPictureTransform:(ILjava/awt/geom/AffineTransform;)V
        10: .line 83
            aload 0 /* this */
            aload 2 /* maskTX */
            putfield sun.java2d.xr.XRMaskImage.lastMaskTransform:Ljava/awt/geom/AffineTransform;
        11: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.xrMgr:Lsun/java2d/xr/XRCompositeManager;
            invokevirtual sun.java2d.xr.XRCompositeManager.getAlphaColor:()Lsun/java2d/xr/XRColor;
            invokevirtual sun.java2d.xr.XRColor.getAlpha:()I
            istore 7 /* currentEA */
        start local 7 // int currentEA
        12: .line 87
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
            iload 5 /* maskWidth */
            if_icmpne 13
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
            iload 6 /* maskHeight */
            if_icmpne 13
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastEA:I
            iload 7 /* currentEA */
            if_icmpeq 17
        13: .line 89
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
            iload 5 /* maskWidth */
            if_icmpgt 14
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
            iload 6 /* maskHeight */
            if_icmple 15
        14: .line 90
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            iconst_0
            getstatic sun.java2d.xr.XRColor.NO_ALPHA:Lsun/java2d/xr/XRColor;
            iconst_0
            iconst_0
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
            invokeinterface sun.java2d.xr.XRBackend.renderRectangle:(IBLsun/java2d/xr/XRColor;IIII)V
        15: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            iconst_1
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.xrMgr:Lsun/java2d/xr/XRCompositeManager;
            invokevirtual sun.java2d.xr.XRCompositeManager.getAlphaColor:()Lsun/java2d/xr/XRColor;
            iconst_0
            iconst_0
            iload 5 /* maskWidth */
            iload 6 /* maskHeight */
            invokeinterface sun.java2d.xr.XRBackend.renderRectangle:(IBLsun/java2d/xr/XRColor;IIII)V
        16: .line 94
            aload 0 /* this */
            iload 7 /* currentEA */
            putfield sun.java2d.xr.XRMaskImage.lastEA:I
        17: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* maskWidth */
            putfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
        18: .line 98
            aload 0 /* this */
            iload 6 /* maskHeight */
            putfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
        19: .line 100
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            ireturn
        end local 7 // int currentEA
        end local 6 // int maskHeight
        end local 5 // int maskWidth
        end local 4 // int height
        end local 3 // int width
        end local 2 // java.awt.geom.AffineTransform maskTX
        end local 1 // sun.java2d.xr.XRSurfaceData dst
        end local 0 // sun.java2d.xr.XRMaskImage this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   20     0        this  Lsun/java2d/xr/XRMaskImage;
            0   20     1         dst  Lsun/java2d/xr/XRSurfaceData;
            0   20     2      maskTX  Ljava/awt/geom/AffineTransform;
            0   20     3       width  I
            0   20     4      height  I
            1   20     5   maskWidth  I
            2   20     6  maskHeight  I
           12   20     7   currentEA  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.awt.geom.NoninvertibleTransformException
    MethodParameters:
        Name  Flags
      dst     
      maskTX  
      width   
      height  

  private void initBlitMask(int, int, int);
    descriptor: (III)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // sun.java2d.xr.XRMaskImage this
        start local 1 // int parentDrawable
        start local 2 // int width
        start local 3 // int height
         0: .line 104
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            iload 1 /* parentDrawable */
            bipush 8
            iload 2 /* width */
            iload 3 /* height */
            invokeinterface sun.java2d.xr.XRBackend.createPixmap:(IIII)I
            istore 4 /* newPM */
        start local 4 // int newPM
         1: .line 105
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            iload 4 /* newPM */
            iconst_2
            invokeinterface sun.java2d.xr.XRBackend.createPicture:(II)I
            istore 5 /* newPict */
        start local 5 // int newPict
         2: .line 108
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPixmap:I
            ifeq 5
         3: .line 109
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPixmap:I
            invokeinterface sun.java2d.xr.XRBackend.freePixmap:(I)V
         4: .line 110
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            invokeinterface sun.java2d.xr.XRBackend.freePicture:(I)V
         5: .line 113
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* newPM */
            putfield sun.java2d.xr.XRMaskImage.blitMaskPixmap:I
         6: .line 114
            aload 0 /* this */
            iload 5 /* newPict */
            putfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
         7: .line 116
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.con:Lsun/java2d/xr/XRBackend;
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPicture:I
            iconst_0
            getstatic sun.java2d.xr.XRColor.NO_ALPHA:Lsun/java2d/xr/XRColor;
            iconst_0
            iconst_0
            iload 2 /* width */
            iload 3 /* height */
            invokeinterface sun.java2d.xr.XRBackend.renderRectangle:(IBLsun/java2d/xr/XRColor;IIII)V
         8: .line 118
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            iload 2 /* width */
            putfield java.awt.Dimension.width:I
         9: .line 119
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            iload 3 /* height */
            putfield java.awt.Dimension.height:I
        10: .line 120
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.xr.XRMaskImage.lastMaskWidth:I
        11: .line 121
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.xr.XRMaskImage.lastMaskHeight:I
        12: .line 122
            aload 0 /* this */
            aconst_null
            putfield sun.java2d.xr.XRMaskImage.lastMaskTransform:Ljava/awt/geom/AffineTransform;
        13: .line 123
            return
        end local 5 // int newPict
        end local 4 // int newPM
        end local 3 // int height
        end local 2 // int width
        end local 1 // int parentDrawable
        end local 0 // sun.java2d.xr.XRMaskImage this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   14     0            this  Lsun/java2d/xr/XRMaskImage;
            0   14     1  parentDrawable  I
            0   14     2           width  I
            0   14     3          height  I
            1   14     4           newPM  I
            2   14     5         newPict  I
    MethodParameters:
                Name  Flags
      parentDrawable  
      width           
      height          

  private void ensureBlitMaskSize(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // sun.java2d.xr.XRMaskImage this
        start local 1 // int minSizeX
        start local 2 // int minSizeY
         0: .line 126
            iload 1 /* minSizeX */
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            getfield java.awt.Dimension.width:I
            if_icmpgt 1
            iload 2 /* minSizeY */
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            getfield java.awt.Dimension.height:I
            if_icmple 4
         1: .line 127
      StackMap locals:
      StackMap stack:
            iload 1 /* minSizeX */
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            getfield java.awt.Dimension.width:I
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* newWidth */
        start local 3 // int newWidth
         2: .line 128
            iload 2 /* minSizeY */
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskDimensions:Ljava/awt/Dimension;
            getfield java.awt.Dimension.height:I
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* newHeight */
        start local 4 // int newHeight
         3: .line 129
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.xr.XRMaskImage.blitMaskPixmap:I
            iload 3 /* newWidth */
            iload 4 /* newHeight */
            invokevirtual sun.java2d.xr.XRMaskImage.initBlitMask:(III)V
        end local 4 // int newHeight
        end local 3 // int newWidth
         4: .line 131
      StackMap locals:
      StackMap stack:
            return
        end local 2 // int minSizeY
        end local 1 // int minSizeX
        end local 0 // sun.java2d.xr.XRMaskImage this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Lsun/java2d/xr/XRMaskImage;
            0    5     1   minSizeX  I
            0    5     2   minSizeY  I
            2    4     3   newWidth  I
            3    4     4  newHeight  I
    MethodParameters:
          Name  Flags
      minSizeX  
      minSizeY  
}
SourceFile: "XRMaskImage.java"