hb_font_t* HarfBuzzFace::createFont() { hb_font_t* font = hb_font_create(m_face); hb_font_set_funcs(font, harfBuzzCoreTextGetFontFuncs(), m_platformData, 0); const float size = m_platformData->m_size; hb_font_set_ppem(font, size, size); const int scale = (1 << 16) * static_cast<int>(size); hb_font_set_scale(font, scale, scale); hb_font_make_immutable(font); return font; }
hb_font_t* HarfBuzzFace::createFont() { HarfBuzzFontData* hbFontData = new HarfBuzzFontData(m_glyphCacheForFaceCacheEntry); m_platformData->setupPaint(&hbFontData->m_paint); hb_font_t* font = hb_font_create(m_face); hb_font_set_funcs(font, harfBuzzSkiaGetFontFuncs(), hbFontData, destroyHarfBuzzFontData); float size = m_platformData->size(); int scale = SkiaScalarToHarfBuzzPosition(size); hb_font_set_scale(font, scale, scale); hb_font_make_immutable(font); return font; }
hb_font_t* HarfBuzzFace::createFont() { hb_font_t* font = hb_font_create(m_face); SkPaint* paint = new SkPaint; m_platformData->setupPaint(paint); hb_font_set_funcs(font, harfbuzzSkiaGetFontFuncs(), paint, destroyPaint); float size = m_platformData->size(); if (floorf(size) == size) hb_font_set_ppem(font, size, size); int scale = SkiaScalarToHarfbuzzPosition(size); hb_font_set_scale(font, scale, scale); hb_font_make_immutable(font); return font; }