< prev index next >

modules/graphics/src/main/java/com/sun/javafx/font/coretext/CTFontStrike.java

Print this page




  60         super(fontResource, size, graphicsTransform, aaMode, desc);
  61         float maxDim = PrismFontFactory.getFontSizeLimit();
  62         if (graphicsTransform.isTranslateOrIdentity()) {
  63             drawShapes = size > maxDim;
  64         } else {
  65             BaseTransform tx2d = getTransform();
  66             matrix = new CGAffineTransform();
  67             matrix.a = tx2d.getMxx();
  68             matrix.b = -tx2d.getMyx(); /*Inverted coordinates system */
  69             matrix.c = -tx2d.getMxy(); /*Inverted coordinates system */
  70             matrix.d = tx2d.getMyy();
  71 
  72             if (Math.abs(matrix.a * size) > maxDim ||
  73                 Math.abs(matrix.b * size) > maxDim ||
  74                 Math.abs(matrix.c * size) > maxDim ||
  75                 Math.abs(matrix.d * size) > maxDim)
  76             {
  77               drawShapes = true;
  78             }
  79         }
  80         long psNameRef = OS.CFStringCreate(fontResource.getPSName());








  81         if (psNameRef != 0) {
  82             fontRef = OS.CTFontCreateWithName(psNameRef, size, matrix);
  83             OS.CFRelease(psNameRef);
  84         }

  85         if (fontRef == 0) {
  86             if (PrismFontFactory.debugFonts) {
  87                 System.err.println("Failed to create CTFont for " + this);
  88             }
  89         }
  90     }
  91 
  92     long getFontRef() {
  93         return fontRef;
  94     }
  95 
  96     @Override protected DisposerRecord createDisposer(FontStrikeDesc desc) {
  97         CTFontFile fontResource = getFontResource();
  98         return new CTStrikeDisposer(fontResource, desc, fontRef);
  99     }
 100 
 101     @Override protected Glyph createGlyph(int glyphCode) {
 102         return new CTGlyph(this, glyphCode, drawShapes);
 103     }
 104 




  60         super(fontResource, size, graphicsTransform, aaMode, desc);
  61         float maxDim = PrismFontFactory.getFontSizeLimit();
  62         if (graphicsTransform.isTranslateOrIdentity()) {
  63             drawShapes = size > maxDim;
  64         } else {
  65             BaseTransform tx2d = getTransform();
  66             matrix = new CGAffineTransform();
  67             matrix.a = tx2d.getMxx();
  68             matrix.b = -tx2d.getMyx(); /*Inverted coordinates system */
  69             matrix.c = -tx2d.getMxy(); /*Inverted coordinates system */
  70             matrix.d = tx2d.getMyy();
  71 
  72             if (Math.abs(matrix.a * size) > maxDim ||
  73                 Math.abs(matrix.b * size) > maxDim ||
  74                 Math.abs(matrix.c * size) > maxDim ||
  75                 Math.abs(matrix.d * size) > maxDim)
  76             {
  77               drawShapes = true;
  78             }
  79         }
  80 
  81         if (fontResource.isEmbeddedFont()) {
  82             final long cgFontRef = fontResource.getCGFontRef();
  83             if (cgFontRef != 0) {
  84                 fontRef = OS.CTFontCreateWithGraphicsFont(
  85                         cgFontRef, size, matrix, 0);
  86             }
  87         } else {
  88             final long psNameRef = OS.CFStringCreate(fontResource.getPSName());
  89             if (psNameRef != 0) {
  90                 fontRef = OS.CTFontCreateWithName(psNameRef, size, matrix);
  91                 OS.CFRelease(psNameRef);
  92             }
  93         }
  94         if (fontRef == 0) {
  95             if (PrismFontFactory.debugFonts) {
  96                 System.err.println("Failed to create CTFont for " + this);
  97             }
  98         }
  99     }
 100 
 101     long getFontRef() {
 102         return fontRef;
 103     }
 104 
 105     @Override protected DisposerRecord createDisposer(FontStrikeDesc desc) {
 106         CTFontFile fontResource = getFontResource();
 107         return new CTStrikeDisposer(fontResource, desc, fontRef);
 108     }
 109 
 110     @Override protected Glyph createGlyph(int glyphCode) {
 111         return new CTGlyph(this, glyphCode, drawShapes);
 112     }
 113 


< prev index next >