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
{
  static final int MAX_ELT_GLYPH_COUNT;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 253

  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 50
            aload 0 /* this */
            invokespecial sun.java2d.pipe.GlyphListPipe.<init>:()V
         1: .line 51
            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 52
            aload 0 /* this */
            aload 1 /* buffer */
            putfield sun.font.XRTextRenderer.maskBuffer:Lsun/java2d/xr/XRCompositeManager;
         3: .line 53
            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 54
            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 55
            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=7, 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 58
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getNumGlyphs:()I
            ifne 2
         1: .line 59
            return
         2: .line 63
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.SunToolkit.awtLock:()V
         3: .line 65
            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 66
            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 67
            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 69
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getX:()F
            fstore 4 /* advX */
        start local 4 // float advX
         7: .line 70
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getY:()F
            fstore 5 /* advY */
        start local 5 // float advY
         8: .line 71
            iconst_0
            istore 6 /* oldPosX */
        start local 6 // int oldPosX
         9: iconst_0
            istore 7 /* oldPosY */
        start local 7 // int oldPosY
        10: .line 73
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.isSubPixPos:()Z
            ifeq 14
        11: .line 74
            fload 4 /* advX */
            ldc 0.1666667
            fadd
            fstore 4 /* advX */
        12: .line 75
            fload 5 /* advY */
            ldc 0.1666667
            fadd
            fstore 5 /* advY */
        13: .line 76
            goto 16
        14: .line 77
      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 78
            fload 5 /* advY */
            ldc 0.5
            fadd
            fstore 5 /* advY */
        16: .line 81
      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 82
            iconst_0
            istore 9 /* containsLCDGlyphs */
        start local 9 // boolean containsLCDGlyphs
        18: .line 83
            aload 8 /* cachedGlyphs */
            iconst_0
            aaload
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphSet:()I
            istore 10 /* activeGlyphSet */
        start local 10 // int activeGlyphSet
        19: .line 85
            iconst_m1
            istore 11 /* eltIndex */
        start local 11 // int eltIndex
        20: .line 86
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getBounds:()[I
            pop
        21: .line 87
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getPositions:()[F
            astore 12 /* positions */
        start local 12 // float[] positions
        22: .line 88
            iconst_0
            istore 13 /* i */
        start local 13 // int i
        23: goto 64
        24: .line 89
      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 90
            aload 8 /* cachedGlyphs */
            iload 13 /* i */
            aaload
            astore 14 /* cacheEntry */
        start local 14 // sun.font.XRGlyphCacheEntry cacheEntry
        26: .line 91
            aload 14 /* cacheEntry */
            ifnonnull 28
        27: .line 92
            goto 63
        28: .line 95
      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 96
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphSet:()I
            istore 15 /* glyphSet */
        start local 15 // int glyphSet
        30: .line 98
            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 100
            iconst_0
            istore 16 /* posX */
        start local 16 // int posX
        34: iconst_0
            istore 17 /* posY */
        start local 17 // int posY
        35: .line 101
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifne 41
        36: .line 102
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fcmpl
            ifne 41
        37: .line 103
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYOff:()I
            i2f
            fcmpl
            ifne 41
        38: .line 104
            iload 15 /* glyphSet */
            iload 10 /* activeGlyphSet */
            if_icmpne 41
        39: .line 105
            iload 11 /* eltIndex */
            iflt 41
        40: .line 106
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            iload 11 /* eltIndex */
            invokevirtual sun.java2d.xr.GrowableEltArray.getCharCnt:(I)I
            sipush 253
            if_icmpne 62
        41: .line 108
      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 */
        42: .line 109
            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
        43: .line 110
            iload 15 /* glyphSet */
            istore 10 /* activeGlyphSet */
        44: .line 111
            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
        45: .line 113
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifeq 53
        46: .line 115
            aload 12 /* positions */
            iload 13 /* i */
            iconst_2
            imul
            faload
            fload 4 /* advX */
            fadd
            fstore 18 /* x */
        start local 18 // float x
        47: .line 116
            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
        48: .line 117
            fload 18 /* x */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        49: .line 118
            fload 19 /* y */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        50: .line 119
            fload 4 /* advX */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fsub
            fstore 4 /* advX */
        51: .line 120
            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
        52: .line 121
            goto 57
        53: .line 130
      StackMap locals:
      StackMap stack:
            fload 4 /* advX */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        54: .line 131
            fload 5 /* advY */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        55: .line 135
            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 */
        56: .line 136
            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 */
        57: .line 141
      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
        58: .line 142
            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
        59: .line 144
            iload 16 /* posX */
            istore 6 /* oldPosX */
        60: .line 145
            iload 17 /* posY */
            istore 7 /* oldPosY */
        61: .line 147
            goto 63
        62: .line 148
      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
        63: .line 88
      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:
        64: iload 13 /* i */
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getNumGlyphs:()I
            if_icmplt 24
        end local 13 // int i
        65: .line 152
            iload 9 /* containsLCDGlyphs */
            ifeq 66
            iconst_0
            goto 67
      StackMap locals:
      StackMap stack:
        66: iconst_2
      StackMap locals:
      StackMap stack: int
        67: istore 13 /* maskFormat */
        start local 13 // int maskFormat
        68: .line 153
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.maskBuffer:Lsun/java2d/xr/XRCompositeManager;
            aload 3 /* x11sd */
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getX:()F
            f2i
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getY:()F
            f2i
            iconst_0
            iload 13 /* maskFormat */
            aload 0 /* this */
            getfield sun.font.XRTextRenderer.eltList:Lsun/java2d/xr/GrowableEltArray;
            invokevirtual sun.java2d.xr.XRCompositeManager.compositeText:(Lsun/java2d/xr/XRSurfaceData;IIIILsun/java2d/xr/GrowableEltArray;)V
        69: .line 155
            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
        70: .line 156
            goto 74
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList
      StackMap stack: java.lang.Throwable
        71: astore 20
        72: .line 157
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        73: .line 158
            aload 20
            athrow
        74: .line 157
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        75: .line 159
            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   76     0               this  Lsun/font/XRTextRenderer;
            0   76     1               sg2d  Lsun/java2d/SunGraphics2D;
            0   76     2                 gl  Lsun/font/GlyphList;
            4   70     3              x11sd  Lsun/java2d/xr/XRSurfaceData;
            7   70     4               advX  F
            8   70     5               advY  F
            9   70     6            oldPosX  I
           10   70     7            oldPosY  I
           17   70     8       cachedGlyphs  [Lsun/font/XRGlyphCacheEntry;
           18   70     9  containsLCDGlyphs  Z
           19   70    10     activeGlyphSet  I
           20   70    11           eltIndex  I
           22   70    12          positions  [F
           23   65    13                  i  I
           26   63    14         cacheEntry  Lsun/font/XRGlyphCacheEntry;
           30   63    15           glyphSet  I
           34   63    16               posX  I
           35   63    17               posY  I
           47   52    18                  x  F
           48   52    19                  y  F
           68   70    13         maskFormat  I
      Exception table:
        from    to  target  type
           2    71      71  any
    MethodParameters:
      Name  Flags
      sg2d  
      gl    
}
SourceFile: "XRTextRenderer.java"