SkTypeface* ScaledFontMac::GetSkTypeface() { if (!mTypeface) { if (mCTFont) { mTypeface = SkCreateTypefaceFromCTFont(mCTFont); } else { CTFontRef fontFace = CTFontCreateWithGraphicsFont(mFont, mSize, nullptr, nullptr); mTypeface = SkCreateTypefaceFromCTFont(fontFace); CFRelease(fontFace); } } return mTypeface; }
SkTypeface* FontPlatformData::typeface() const { #if OS(MACOSX) if (!m_typeface) m_typeface = adoptRef(SkCreateTypefaceFromCTFont(ctFont())); #endif return m_typeface.get(); }
SkTypeface* ScaledFontMac::GetSkTypeface() { if (!mTypeface) { CTFontRef fontFace = CTFontCreateWithGraphicsFont(mFont, mSize, NULL, NULL); mTypeface = SkCreateTypefaceFromCTFont(fontFace); CFRelease(fontFace); } return mTypeface; }
static void setupPaint(SkPaint* paint, const SimpleFontData* fontData, const Font* font, bool shouldAntialias, bool shouldSmoothFonts) { const FontPlatformData& platformData = fontData->platformData(); const float textSize = platformData.m_size >= 0 ? platformData.m_size : 12; paint->setAntiAlias(shouldAntialias); paint->setEmbeddedBitmapText(false); paint->setTextSize(SkFloatToScalar(textSize)); SkTypeface* typeface = SkCreateTypefaceFromCTFont(platformData.ctFont()); SkAutoUnref autoUnref(typeface); paint->setTypeface(typeface); paint->setFakeBoldText(platformData.m_syntheticBold); paint->setTextSkewX(platformData.m_syntheticOblique ? -SK_Scalar1 / 4 : 0); paint->setAutohinted(false); // freetype specific paint->setLCDRenderText(shouldSmoothFonts); paint->setSubpixelText(true); }