Loading core/jni/android/graphics/FontFamily.cpp +8 −20 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ static void FontFamily_unref(jlong familyPtr) { } static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, int ttcIndex, jint givenWeight, jint givenItalic) { jint weight, jint italic) { uirenderer::FatVector<SkFontArguments::Axis, 2> skiaAxes; for (const auto& axis : builder->axes) { skiaAxes.emplace_back(SkFontArguments::Axis{axis.axisTag, axis.value}); Loading @@ -114,27 +114,15 @@ static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, in std::shared_ptr<minikin::MinikinFont> minikinFont = std::make_shared<MinikinFontSkia>(std::move(face), fontPtr, fontSize, ttcIndex, builder->axes); minikin::Font::Builder fontBuilder(minikinFont); int weight = givenWeight; bool italic = givenItalic == 1; if (givenWeight == RESOLVE_BY_FONT_TABLE || givenItalic == RESOLVE_BY_FONT_TABLE) { int os2Weight; bool os2Italic; if (!minikin::FontFamily::analyzeStyle(minikinFont, &os2Weight, &os2Italic)) { ALOGE("analyzeStyle failed. Using default style"); os2Weight = 400; os2Italic = false; if (weight != RESOLVE_BY_FONT_TABLE) { fontBuilder.setWeight(weight); } if (givenWeight == RESOLVE_BY_FONT_TABLE) { weight = os2Weight; if (italic != RESOLVE_BY_FONT_TABLE) { fontBuilder.setSlant(static_cast<minikin::FontStyle::Slant>(italic != 0)); } if (givenItalic == RESOLVE_BY_FONT_TABLE) { italic = os2Italic; } } builder->fonts.push_back(minikin::Font(minikinFont, minikin::FontStyle(weight, static_cast<minikin::FontStyle::Slant>(italic)))); builder->fonts.push_back(fontBuilder.build()); builder->axes.clear(); return true; } Loading core/jni/android/graphics/Paint.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -576,7 +576,7 @@ namespace PaintGlue { minikin::FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); float saveSkewX = paint->getTextSkewX(); bool savefakeBold = paint->isFakeBoldText(); MinikinFontSkia::populateSkPaint(paint, baseFont.font, baseFont.fakery); MinikinFontSkia::populateSkPaint(paint, baseFont.font->typeface().get(), baseFont.fakery); SkScalar spacing = paint->getFontMetrics(metrics); // The populateSkPaint call may have changed fake bold / text skew // because we want to measure with those effects applied, so now Loading libs/hwui/hwui/Typeface.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ Typeface* Typeface::createFromFamilies(std::vector<std::shared_ptr<minikin::Font bool italicFromFont; const minikin::FontStyle defaultStyle; const minikin::MinikinFont* mf = families.empty() ? nullptr : families[0]->getClosestMatch(defaultStyle).font; const minikin::MinikinFont* mf = families.empty() ? nullptr : families[0]->getClosestMatch(defaultStyle).font->typeface().get(); if (mf != nullptr) { SkTypeface* skTypeface = reinterpret_cast<const MinikinFontSkia*>(mf)->GetSkTypeface(); const SkFontStyle& style = skTypeface->fontStyle(); Loading Loading @@ -183,7 +183,7 @@ void Typeface::setRobotoTypefaceForTest() { std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>( std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); std::vector<minikin::Font> fonts; fonts.push_back(minikin::Font(std::move(font), minikin::FontStyle())); fonts.push_back(minikin::Font::Builder(font).build()); std::shared_ptr<minikin::FontCollection> collection = std::make_shared<minikin::FontCollection>( std::make_shared<minikin::FontFamily>(std::move(fonts))); Loading libs/hwui/tests/unit/TypefaceTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ std::shared_ptr<minikin::FontFamily> buildFamily(const char* fileName) { std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>( std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); std::vector<minikin::Font> fonts; fonts.push_back(minikin::Font(std::move(font), minikin::FontStyle())); fonts.push_back(minikin::Font::Builder(font).build()); return std::make_shared<minikin::FontFamily>(std::move(fonts)); } Loading Loading
core/jni/android/graphics/FontFamily.cpp +8 −20 Original line number Diff line number Diff line Loading @@ -90,7 +90,7 @@ static void FontFamily_unref(jlong familyPtr) { } static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, int ttcIndex, jint givenWeight, jint givenItalic) { jint weight, jint italic) { uirenderer::FatVector<SkFontArguments::Axis, 2> skiaAxes; for (const auto& axis : builder->axes) { skiaAxes.emplace_back(SkFontArguments::Axis{axis.axisTag, axis.value}); Loading @@ -114,27 +114,15 @@ static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, in std::shared_ptr<minikin::MinikinFont> minikinFont = std::make_shared<MinikinFontSkia>(std::move(face), fontPtr, fontSize, ttcIndex, builder->axes); minikin::Font::Builder fontBuilder(minikinFont); int weight = givenWeight; bool italic = givenItalic == 1; if (givenWeight == RESOLVE_BY_FONT_TABLE || givenItalic == RESOLVE_BY_FONT_TABLE) { int os2Weight; bool os2Italic; if (!minikin::FontFamily::analyzeStyle(minikinFont, &os2Weight, &os2Italic)) { ALOGE("analyzeStyle failed. Using default style"); os2Weight = 400; os2Italic = false; if (weight != RESOLVE_BY_FONT_TABLE) { fontBuilder.setWeight(weight); } if (givenWeight == RESOLVE_BY_FONT_TABLE) { weight = os2Weight; if (italic != RESOLVE_BY_FONT_TABLE) { fontBuilder.setSlant(static_cast<minikin::FontStyle::Slant>(italic != 0)); } if (givenItalic == RESOLVE_BY_FONT_TABLE) { italic = os2Italic; } } builder->fonts.push_back(minikin::Font(minikinFont, minikin::FontStyle(weight, static_cast<minikin::FontStyle::Slant>(italic)))); builder->fonts.push_back(fontBuilder.build()); builder->axes.clear(); return true; } Loading
core/jni/android/graphics/Paint.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -576,7 +576,7 @@ namespace PaintGlue { minikin::FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); float saveSkewX = paint->getTextSkewX(); bool savefakeBold = paint->isFakeBoldText(); MinikinFontSkia::populateSkPaint(paint, baseFont.font, baseFont.fakery); MinikinFontSkia::populateSkPaint(paint, baseFont.font->typeface().get(), baseFont.fakery); SkScalar spacing = paint->getFontMetrics(metrics); // The populateSkPaint call may have changed fake bold / text skew // because we want to measure with those effects applied, so now Loading
libs/hwui/hwui/Typeface.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -132,8 +132,8 @@ Typeface* Typeface::createFromFamilies(std::vector<std::shared_ptr<minikin::Font bool italicFromFont; const minikin::FontStyle defaultStyle; const minikin::MinikinFont* mf = families.empty() ? nullptr : families[0]->getClosestMatch(defaultStyle).font; const minikin::MinikinFont* mf = families.empty() ? nullptr : families[0]->getClosestMatch(defaultStyle).font->typeface().get(); if (mf != nullptr) { SkTypeface* skTypeface = reinterpret_cast<const MinikinFontSkia*>(mf)->GetSkTypeface(); const SkFontStyle& style = skTypeface->fontStyle(); Loading Loading @@ -183,7 +183,7 @@ void Typeface::setRobotoTypefaceForTest() { std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>( std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); std::vector<minikin::Font> fonts; fonts.push_back(minikin::Font(std::move(font), minikin::FontStyle())); fonts.push_back(minikin::Font::Builder(font).build()); std::shared_ptr<minikin::FontCollection> collection = std::make_shared<minikin::FontCollection>( std::make_shared<minikin::FontFamily>(std::move(fonts))); Loading
libs/hwui/tests/unit/TypefaceTests.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -57,7 +57,7 @@ std::shared_ptr<minikin::FontFamily> buildFamily(const char* fileName) { std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>( std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); std::vector<minikin::Font> fonts; fonts.push_back(minikin::Font(std::move(font), minikin::FontStyle())); fonts.push_back(minikin::Font::Builder(font).build()); return std::make_shared<minikin::FontFamily>(std::move(fonts)); } Loading