Loading libs/hwui/hwui/MinikinSkia.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -31,22 +31,23 @@ MinikinFontSkia::MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontDat } static void MinikinFontSkia_SetSkiaPaint(const minikin::MinikinFont* font, SkPaint* skPaint, const minikin::MinikinPaint& paint) { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) { skPaint->setTextEncoding(SkPaint::kGlyphID_TextEncoding); skPaint->setTextSize(paint.size); skPaint->setTextScaleX(paint.scaleX); skPaint->setTextSkewX(paint.skewX); MinikinFontSkia::unpackPaintFlags(skPaint, paint.paintFlags); // Apply font fakery on top of user-supplied flags. MinikinFontSkia::populateSkPaint(skPaint, font, paint.fakery); MinikinFontSkia::populateSkPaint(skPaint, font, fakery); } float MinikinFontSkia::GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const { const minikin::MinikinPaint &paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; uint16_t glyph16 = glyph_id; SkScalar skWidth; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); skPaint.getTextWidths(&glyph16, sizeof(glyph16), &skWidth, NULL); #ifdef VERBOSE ALOGD("width for typeface %d glyph %d = %f", mTypeface->uniqueID(), glyph_id, skWidth); Loading @@ -55,11 +56,12 @@ float MinikinFontSkia::GetHorizontalAdvance(uint32_t glyph_id, } void MinikinFontSkia::GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, const minikin::MinikinPaint& paint) const { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; uint16_t glyph16 = glyph_id; SkRect skBounds; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); skPaint.getTextWidths(&glyph16, sizeof(glyph16), NULL, &skBounds); bounds->mLeft = skBounds.fLeft; bounds->mTop = skBounds.fTop; Loading @@ -68,9 +70,10 @@ void MinikinFontSkia::GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, } void MinikinFontSkia::GetFontExtent(minikin::MinikinExtent* extent, const minikin::MinikinPaint& paint) const { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); SkPaint::FontMetrics metrics; skPaint.getFontMetrics(&metrics); extent->ascent = metrics.fAscent; Loading libs/hwui/hwui/MinikinSkia.h +6 −3 Original line number Diff line number Diff line Loading @@ -32,13 +32,16 @@ public: int ttcIndex, const std::vector<minikin::FontVariation>& axes); float GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; void GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; void GetFontExtent(minikin::MinikinExtent* extent, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; SkTypeface* GetSkTypeface() const; sk_sp<SkTypeface> RefSkTypeface() const; Loading Loading
libs/hwui/hwui/MinikinSkia.cpp +11 −8 Original line number Diff line number Diff line Loading @@ -31,22 +31,23 @@ MinikinFontSkia::MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontDat } static void MinikinFontSkia_SetSkiaPaint(const minikin::MinikinFont* font, SkPaint* skPaint, const minikin::MinikinPaint& paint) { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) { skPaint->setTextEncoding(SkPaint::kGlyphID_TextEncoding); skPaint->setTextSize(paint.size); skPaint->setTextScaleX(paint.scaleX); skPaint->setTextSkewX(paint.skewX); MinikinFontSkia::unpackPaintFlags(skPaint, paint.paintFlags); // Apply font fakery on top of user-supplied flags. MinikinFontSkia::populateSkPaint(skPaint, font, paint.fakery); MinikinFontSkia::populateSkPaint(skPaint, font, fakery); } float MinikinFontSkia::GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const { const minikin::MinikinPaint &paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; uint16_t glyph16 = glyph_id; SkScalar skWidth; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); skPaint.getTextWidths(&glyph16, sizeof(glyph16), &skWidth, NULL); #ifdef VERBOSE ALOGD("width for typeface %d glyph %d = %f", mTypeface->uniqueID(), glyph_id, skWidth); Loading @@ -55,11 +56,12 @@ float MinikinFontSkia::GetHorizontalAdvance(uint32_t glyph_id, } void MinikinFontSkia::GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, const minikin::MinikinPaint& paint) const { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; uint16_t glyph16 = glyph_id; SkRect skBounds; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); skPaint.getTextWidths(&glyph16, sizeof(glyph16), NULL, &skBounds); bounds->mLeft = skBounds.fLeft; bounds->mTop = skBounds.fTop; Loading @@ -68,9 +70,10 @@ void MinikinFontSkia::GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, } void MinikinFontSkia::GetFontExtent(minikin::MinikinExtent* extent, const minikin::MinikinPaint& paint) const { const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const { SkPaint skPaint; MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint); MinikinFontSkia_SetSkiaPaint(this, &skPaint, paint, fakery); SkPaint::FontMetrics metrics; skPaint.getFontMetrics(&metrics); extent->ascent = metrics.fAscent; Loading
libs/hwui/hwui/MinikinSkia.h +6 −3 Original line number Diff line number Diff line Loading @@ -32,13 +32,16 @@ public: int ttcIndex, const std::vector<minikin::FontVariation>& axes); float GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; void GetBounds(minikin::MinikinRect* bounds, uint32_t glyph_id, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; void GetFontExtent(minikin::MinikinExtent* extent, const minikin::MinikinPaint &paint) const; const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; SkTypeface* GetSkTypeface() const; sk_sp<SkTypeface> RefSkTypeface() const; Loading