public class sun.font.XRTextRenderer extends sun.java2d.pipe.GlyphListPipe
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.font.XRTextRenderer
  super_class: sun.java2d.pipe.GlyphListPipe
{
  sun.font.XRGlyphCache glyphCache;
    descriptor: Lsun/font/XRGlyphCache;
    flags: (0x0000) 

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

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

  sun.java2d.xr.GrowableEltArray eltList;
    descriptor: Lsun/java2d/xr/GrowableEltArray;
    flags: (0x0000) 

  public void <init>(sun.java2d.xr.XRCompositeManager);
    descriptor: (Lsun/java2d/xr/XRCompositeManager;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.font.XRTextRenderer this
        start local 1 // sun.java2d.xr.XRCompositeManager buffer
         0: .line 46
            aload 0 /* this */
            invokespecial sun.java2d.pipe.GlyphListPipe.<init>:()V
         1: .line 47
            aload 0 /* this */
            new sun.font.XRGlyphCache
            dup
            aload 1 /* buffer */
            invokespecial sun.font.XRGlyphCache.<init>:(Lsun/java2d/xr/XRCompositeManager;)V
            putfield sun.font.XRTextRenderer.glyphCache:Lsun/font/XRGlyphCache;
         2: .line 48
            aload 0 /* this */
            aload 1 /* buffer */
            putfield sun.font.XRTextRenderer.maskBuffer:Lsun/java2d/xr/XRCompositeManager;
         3: .line 49
            aload 0 /* this */
            aload 1 /* buffer */
            invokevirtual sun.java2d.xr.XRCompositeManager.getBackend:()Lsun/java2d/xr/XRBackend;
            putfield sun.font.XRTextRenderer.backend:Lsun/java2d/xr/XRBackend;
         4: .line 50
            aload 0 /* this */
            new sun.java2d.xr.GrowableEltArray
            dup
            bipush 64
            invokespecial sun.java2d.xr.GrowableEltArray.<init>:(I)V
            putfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
         5: .line 51
            return
        end local 1 // sun.java2d.xr.XRCompositeManager buffer
        end local 0 // sun.font.XRTextRenderer this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Lsun/font/XRTextRenderer;
            0    6     1  buffer  Lsun/java2d/xr/XRCompositeManager;
    MethodParameters:
        Name  Flags
      buffer  

  protected void drawGlyphList(sun.java2d.SunGraphics2D, sun.font.GlyphList);
    descriptor: (Lsun/java2d/SunGraphics2D;Lsun/font/GlyphList;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=5, locals=21, args_size=3
        start local 0 // sun.font.XRTextRenderer this
        start local 1 // sun.java2d.SunGraphics2D sg2d
        start local 2 // sun.font.GlyphList gl
         0: .line 54
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getNumGlyphs:()I
            ifne 2
         1: .line 55
            return
         2: .line 59
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.SunToolkit.awtLock:()V
         3: .line 61
            aload 1 /* sg2d */
            getfield sun.java2d.SunGraphics2D.surfaceData:Lsun/java2d/SurfaceData;
            checkcast sun.java2d.xr.XRSurfaceData
            astore 3 /* x11sd */
        start local 3 // sun.java2d.xr.XRSurfaceData x11sd
         4: .line 62
            aload 3 /* x11sd */
            aconst_null
            aload 1 /* sg2d */
            invokevirtual sun.java2d.SunGraphics2D.getCompClip:()Lsun/java2d/pipe/Region;
            invokevirtual sun.java2d.xr.XRSurfaceData.validateAsDestination:(Lsun/java2d/SunGraphics2D;Lsun/java2d/pipe/Region;)V
         5: .line 63
            aload 3 /* x11sd */
            getfield sun.java2d.xr.XRSurfaceData.maskBuffer:Lsun/java2d/xr/XRCompositeManager;
            aload 1 /* sg2d */
            getfield sun.java2d.SunGraphics2D.composite:Ljava/awt/Composite;
            aload 1 /* sg2d */
            getfield sun.java2d.SunGraphics2D.transform:Ljava/awt/geom/AffineTransform;
            aload 1 /* sg2d */
            getfield sun.java2d.SunGraphics2D.paint:Ljava/awt/Paint;
            aload 1 /* sg2d */
            invokevirtual sun.java2d.xr.XRCompositeManager.validateCompositeState:(Ljava/awt/Composite;Ljava/awt/geom/AffineTransform;Ljava/awt/Paint;Lsun/java2d/SunGraphics2D;)V
         6: .line 65
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getX:()F
            fstore 4 /* advX */
        start local 4 // float advX
         7: .line 66
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getY:()F
            fstore 5 /* advY */
        start local 5 // float advY
         8: .line 67
            iconst_0
            istore 6 /* oldPosX */
        start local 6 // int oldPosX
         9: iconst_0
            istore 7 /* oldPosY */
        start local 7 // int oldPosY
        10: .line 69
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.isSubPixPos:()Z
            ifeq 14
        11: .line 70
            fload 4 /* advX */
            ldc 0.1666667
            fadd
            fstore 4 /* advX */
        12: .line 71
            fload 5 /* advY */
            ldc 0.1666667
            fadd
            fstore 5 /* advY */
        13: .line 72
            goto 16
        14: .line 73
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList sun.java2d.xr.XRSurfaceData float float int int
      StackMap stack:
            fload 4 /* advX */
            ldc 0.5
            fadd
            fstore 4 /* advX */
        15: .line 74
            fload 5 /* advY */
            ldc 0.5
            fadd
            fstore 5 /* advY */
        16: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.glyphCache:Lsun/font/XRGlyphCache;
            aload 2 /* gl */
            invokevirtual sun.font.XRGlyphCache.cacheGlyphs:(Lsun/font/GlyphList;)[Lsun/font/XRGlyphCacheEntry;
            astore 8 /* cachedGlyphs */
        start local 8 // sun.font.XRGlyphCacheEntry[] cachedGlyphs
        17: .line 78
            iconst_0
            istore 9 /* containsLCDGlyphs */
        start local 9 // boolean containsLCDGlyphs
        18: .line 79
            aload 8 /* cachedGlyphs */
            iconst_0
            aaload
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphSet:()I
            istore 10 /* activeGlyphSet */
        start local 10 // int activeGlyphSet
        19: .line 81
            iconst_m1
            istore 11 /* eltIndex */
        start local 11 // int eltIndex
        20: .line 82
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getBounds:()[I
            pop
        21: .line 83
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getPositions:()[F
            astore 12 /* positions */
        start local 12 // float[] positions
        22: .line 84
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        23: goto 61
        24: .line 85
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList sun.java2d.xr.XRSurfaceData float float int int sun.font.XRGlyphCacheEntry[] int int int float[] int
      StackMap stack:
            aload 2 /* gl */
            iload 13 /* i */
            invokevirtual sun.font.GlyphList.setGlyphIndex:(I)V
        25: .line 86
            aload 8 /* cachedGlyphs */
            iload 13 /* i */
            aaload
            astore 14 /* cacheEntry */
        start local 14 // sun.font.XRGlyphCacheEntry cacheEntry
        26: .line 87
            aload 14 /* cacheEntry */
            ifnonnull 28
        27: .line 88
            goto 60
        28: .line 91
      StackMap locals: sun.font.XRGlyphCacheEntry
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            invokevirtual sun.java2d.xr.GrowableEltArray.getGlyphs:()Lsun/java2d/xr/GrowableIntArray;
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphID:()I
            invokevirtual sun.java2d.xr.GrowableIntArray.addInt:(I)V
        29: .line 92
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphSet:()I
            istore 15 /* glyphSet */
        start local 15 // int glyphSet
        30: .line 94
            iload 9 /* containsLCDGlyphs */
            iload 15 /* glyphSet */
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.glyphCache:Lsun/font/XRGlyphCache;
            getfield sun.font.XRGlyphCache.lcdGlyphSet:I
            if_icmpne 31
            iconst_1
            goto 32
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList sun.java2d.xr.XRSurfaceData float float int int sun.font.XRGlyphCacheEntry[] int int int float[] int sun.font.XRGlyphCacheEntry int
      StackMap stack: int
        31: iconst_0
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList sun.java2d.xr.XRSurfaceData float float int int sun.font.XRGlyphCacheEntry[] int int int float[] int sun.font.XRGlyphCacheEntry int
      StackMap stack: int int
        32: ior
            istore 9 /* containsLCDGlyphs */
        33: .line 96
            iconst_0
            istore 16 /* posX */
        start local 16 // int posX
        34: iconst_0
            istore 17 /* posY */
        start local 17 // int posY
        35: .line 97
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifne 38
        36: .line 98
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fcmpl
            ifne 38
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYOff:()I
            i2f
            fcmpl
            ifne 38
        37: .line 99
            iload 11 /* eltIndex */
            iflt 38
            iload 15 /* glyphSet */
            iload 10 /* activeGlyphSet */
            if_icmpeq 59
        38: .line 101
      StackMap locals: int int
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            invokevirtual sun.java2d.xr.GrowableEltArray.getNextIndex:()I
            istore 11 /* eltIndex */
        39: .line 102
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            iconst_1
            invokevirtual sun.java2d.xr.GrowableEltArray.setCharCnt:(II)V
        40: .line 103
            iload 15 /* glyphSet */
            istore 10 /* activeGlyphSet */
        41: .line 104
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            iload 15 /* glyphSet */
            invokevirtual sun.java2d.xr.GrowableEltArray.setGlyphSet:(II)V
        42: .line 106
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifeq 50
        43: .line 108
            aload 12 /* positions */
            iload 13 /* i */
            iconst_2
            imul
            faload
            fload 4 /* advX */
            fadd
            fstore 18 /* x */
        start local 18 // float x
        44: .line 109
            aload 12 /* positions */
            iload 13 /* i */
            iconst_2
            imul
            iconst_1
            iadd
            faload
            fload 5 /* advY */
            fadd
            fstore 19 /* y */
        start local 19 // float y
        45: .line 110
            fload 18 /* x */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        46: .line 111
            fload 19 /* y */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        47: .line 112
            fload 4 /* advX */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fsub
            fstore 4 /* advX */
        48: .line 113
            fload 5 /* advY */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYOff:()I
            i2f
            fsub
            fstore 5 /* advY */
        end local 19 // float y
        end local 18 // float x
        49: .line 114
            goto 54
        50: .line 123
      StackMap locals:
      StackMap stack:
            fload 4 /* advX */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        51: .line 124
            fload 5 /* advY */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        52: .line 129
            fload 4 /* advX */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fsub
            fadd
            fstore 4 /* advX */
        53: .line 130
            fload 5 /* advY */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYOff:()I
            i2f
            fsub
            fadd
            fstore 5 /* advY */
        54: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            iload 16 /* posX */
            iload 6 /* oldPosX */
            isub
            invokevirtual sun.java2d.xr.GrowableEltArray.setXOff:(II)V
        55: .line 137
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            iload 17 /* posY */
            iload 7 /* oldPosY */
            isub
            invokevirtual sun.java2d.xr.GrowableEltArray.setYOff:(II)V
        56: .line 139
            iload 16 /* posX */
            istore 6 /* oldPosX */
        57: .line 140
            iload 17 /* posY */
            istore 7 /* oldPosY */
        58: .line 142
            goto 60
        59: .line 143
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            invokevirtual sun.java2d.xr.GrowableEltArray.getCharCnt:(I)I
            iconst_1
            iadd
            invokevirtual sun.java2d.xr.GrowableEltArray.setCharCnt:(II)V
        end local 17 // int posY
        end local 16 // int posX
        end local 15 // int glyphSet
        end local 14 // sun.font.XRGlyphCacheEntry cacheEntry
        60: .line 84
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList sun.java2d.xr.XRSurfaceData float float int int sun.font.XRGlyphCacheEntry[] int int int float[] int
      StackMap stack:
            iinc 13 /* i */ 1
      StackMap locals:
      StackMap stack:
        61: iload 13 /* i */
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getNumGlyphs:()I
            if_icmplt 24
        end local 13 // int i
        62: .line 147
            iload 9 /* containsLCDGlyphs */
            ifeq 63
            iconst_0
            goto 64
      StackMap locals:
      StackMap stack:
        63: iconst_2
      StackMap locals:
      StackMap stack: int
        64: istore 13 /* maskFormat */
        start local 13 // int maskFormat
        65: .line 148
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.maskBuffer:Lsun/java2d/xr/XRCompositeManager;
            aload 3 /* x11sd */
            getfield sun.java2d.xr.XRSurfaceData.picture:I
            iconst_0
            iload 13 /* maskFormat */
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            invokevirtual sun.java2d.xr.XRCompositeManager.compositeText:(IIILsun/java2d/xr/GrowableEltArray;)V
        66: .line 150
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            invokevirtual sun.java2d.xr.GrowableEltArray.clear:()V
        end local 13 // int maskFormat
        end local 12 // float[] positions
        end local 11 // int eltIndex
        end local 10 // int activeGlyphSet
        end local 9 // boolean containsLCDGlyphs
        end local 8 // sun.font.XRGlyphCacheEntry[] cachedGlyphs
        end local 7 // int oldPosY
        end local 6 // int oldPosX
        end local 5 // float advY
        end local 4 // float advX
        end local 3 // sun.java2d.xr.XRSurfaceData x11sd
        67: .line 151
            goto 71
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList
      StackMap stack: java.lang.Throwable
        68: astore 20
        69: .line 152
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        70: .line 153
            aload 20
            athrow
        71: .line 152
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        72: .line 154
            return
        end local 2 // sun.font.GlyphList gl
        end local 1 // sun.java2d.SunGraphics2D sg2d
        end local 0 // sun.font.XRTextRenderer this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   73     0               this  Lsun/font/XRTextRenderer;
            0   73     1               sg2d  Lsun/java2d/SunGraphics2D;
            0   73     2                 gl  Lsun/font/GlyphList;
            4   67     3              x11sd  Lsun/java2d/xr/XRSurfaceData;
            7   67     4               advX  F
            8   67     5               advY  F
            9   67     6            oldPosX  I
           10   67     7            oldPosY  I
           17   67     8       cachedGlyphs  [Lsun/font/XRGlyphCacheEntry;
           18   67     9  containsLCDGlyphs  Z
           19   67    10     activeGlyphSet  I
           20   67    11           eltIndex  I
           22   67    12          positions  [F
           23   62    13                  i  I
           26   60    14         cacheEntry  Lsun/font/XRGlyphCacheEntry;
           30   60    15           glyphSet  I
           34   60    16               posX  I
           35   60    17               posY  I
           44   49    18                  x  F
           45   49    19                  y  F
           65   67    13         maskFormat  I
      Exception table:
        from    to  target  type
           2    68      68  any
    MethodParameters:
      Name  Flags
      sg2d  
      gl    
}
SourceFile: "XRTextRenderer.java"