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 62
        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 92
            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
        27: .line 93
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getGlyphSet:()I
            istore 15 /* glyphSet */
        start local 15 // int glyphSet
        28: .line 95
            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 29
            iconst_1
            goto 30
      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
        29: 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
        30: ior
            istore 9 /* containsLCDGlyphs */
        31: .line 97
            iconst_0
            istore 16 /* posX */
        start local 16 // int posX
        32: iconst_0
            istore 17 /* posY */
        start local 17 // int posY
        33: .line 98
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifne 39
        34: .line 99
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fcmpl
            ifne 39
        35: .line 100
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYAdvance:()F
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getYOff:()I
            i2f
            fcmpl
            ifne 39
        36: .line 101
            iload 15 /* glyphSet */
            iload 10 /* activeGlyphSet */
            if_icmpne 39
        37: .line 102
            iload 11 /* eltIndex */
            iflt 39
        38: .line 103
            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 60
        39: .line 105
      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 */
        40: .line 106
            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
        41: .line 107
            iload 15 /* glyphSet */
            istore 10 /* activeGlyphSet */
        42: .line 108
            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
        43: .line 110
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.usePositions:()Z
            ifeq 51
        44: .line 112
            aload 12 /* positions */
            iload 13 /* i */
            iconst_2
            imul
            faload
            fload 4 /* advX */
            fadd
            fstore 18 /* x */
        start local 18 // float x
        45: .line 113
            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
        46: .line 114
            fload 18 /* x */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        47: .line 115
            fload 19 /* y */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        48: .line 116
            fload 4 /* advX */
            aload 14 /* cacheEntry */
            invokevirtual sun.font.XRGlyphCacheEntry.getXOff:()I
            i2f
            fsub
            fstore 4 /* advX */
        49: .line 117
            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
        50: .line 118
            goto 55
        51: .line 127
      StackMap locals:
      StackMap stack:
            fload 4 /* advX */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 16 /* posX */
        52: .line 128
            fload 5 /* advY */
            f2d
            invokestatic java.lang.Math.floor:(D)D
            d2i
            istore 17 /* posY */
        53: .line 132
            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 */
        54: .line 133
            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 */
        55: .line 138
      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
        56: .line 139
            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
        57: .line 141
            iload 16 /* posX */
            istore 6 /* oldPosX */
        58: .line 142
            iload 17 /* posY */
            istore 7 /* oldPosY */
        59: .line 144
            goto 61
        60: .line 145
      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
        61: .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:
        62: iload 13 /* i */
            aload 2 /* gl */
            invokevirtual sun.font.GlyphList.getNumGlyphs:()I
            if_icmplt 24
        end local 13 // int i
        63: .line 149
            iload 9 /* containsLCDGlyphs */
            ifeq 64
            iconst_0
            goto 65
      StackMap locals:
      StackMap stack:
        64: iconst_2
      StackMap locals:
      StackMap stack: int
        65: istore 13 /* maskFormat */
        start local 13 // int maskFormat
        66: .line 150
            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
        67: .line 152
            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
        68: .line 153
            goto 72
      StackMap locals: sun.font.XRTextRenderer sun.java2d.SunGraphics2D sun.font.GlyphList
      StackMap stack: java.lang.Throwable
        69: astore 20
        70: .line 154
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        71: .line 155
            aload 20
            athrow
        72: .line 154
      StackMap locals:
      StackMap stack:
            invokestatic sun.awt.SunToolkit.awtUnlock:()V
        73: .line 156
            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   74     0               this  Lsun/font/XRTextRenderer;
            0   74     1               sg2d  Lsun/java2d/SunGraphics2D;
            0   74     2                 gl  Lsun/font/GlyphList;
            4   68     3              x11sd  Lsun/java2d/xr/XRSurfaceData;
            7   68     4               advX  F
            8   68     5               advY  F
            9   68     6            oldPosX  I
           10   68     7            oldPosY  I
           17   68     8       cachedGlyphs  [Lsun/font/XRGlyphCacheEntry;
           18   68     9  containsLCDGlyphs  Z
           19   68    10     activeGlyphSet  I
           20   68    11           eltIndex  I
           22   68    12          positions  [F
           23   63    13                  i  I
           26   61    14         cacheEntry  Lsun/font/XRGlyphCacheEntry;
           28   61    15           glyphSet  I
           32   61    16               posX  I
           33   61    17               posY  I
           45   50    18                  x  F
           46   50    19                  y  F
           66   68    13         maskFormat  I
      Exception table:
        from    to  target  type
           2    69      69  any
    MethodParameters:
      Name  Flags
      sg2d  
      gl    
}
SourceFile: "XRTextRenderer.java"