static hb_bool_t harfBuzzGetGlyphExtents(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, hb_glyph_extents_t* extents, void* userData) { HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData); SkiaGetGlyphWidthAndExtents(&hbFontData->m_paint, glyph, 0, extents); return true; }
static hb_bool_t harfbuzzGetGlyphExtents(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, hb_glyph_extents_t* extents, void* userData) { SkPaint* paint = reinterpret_cast<SkPaint*>(fontData); SkiaGetGlyphWidthAndExtents(paint, glyph, 0, extents); return true; }
static hb_position_t harfBuzzGetGlyphHorizontalAdvance(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, void* userData) { HarfBuzzFontData* hbFontData = reinterpret_cast<HarfBuzzFontData*>(fontData); hb_position_t advance = 0; SkiaGetGlyphWidthAndExtents(&hbFontData->m_paint, glyph, &advance, 0); return advance; }
static hb_position_t harfbuzzGetGlyphHorizontalAdvance(hb_font_t* hbFont, void* fontData, hb_codepoint_t glyph, void* userData) { SkPaint* paint = reinterpret_cast<SkPaint*>(fontData); hb_position_t advance = 0; SkiaGetGlyphWidthAndExtents(paint, glyph, &advance, 0); return advance; }