Loading core/jni/android/graphics/FontFamily.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -83,7 +83,8 @@ static void FontFamily_unref(jlong familyPtr) { static void addSkTypeface(jlong builderPtr, sk_sp<SkTypeface> face, const void* fontData, size_t fontSize, int ttcIndex, jint givenWeight, jboolean givenItalic) { minikin::MinikinFont* minikinFont = new MinikinFontSkia(std::move(face), fontData, fontSize, ttcIndex); new MinikinFontSkia(std::move(face), fontData, fontSize, ttcIndex, std::vector<minikin::FontVariation>()); NativeFamilyBuilder* builder = reinterpret_cast<NativeFamilyBuilder*>(builderPtr); int weight = givenWeight / 100; bool italic = givenItalic; Loading Loading @@ -208,7 +209,8 @@ static jboolean FontFamily_addFontWeightStyle(JNIEnv* env, jobject clazz, jlong return false; } minikin::MinikinFont* minikinFont = new MinikinFontSkia(std::move(face), fontPtr, fontSize, ttcIndex); new MinikinFontSkia(std::move(face), fontPtr, fontSize, ttcIndex, std::vector<minikin::FontVariation>()); NativeFamilyBuilder* builder = reinterpret_cast<NativeFamilyBuilder*>(builderPtr); builder->fonts.push_back(minikin::Font(minikinFont, minikin::FontStyle(weight / 100, isItalic))); Loading libs/hwui/hwui/MinikinSkia.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ namespace android { MinikinFontSkia::MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontData, size_t fontSize, int ttcIndex) : int ttcIndex, const std::vector<minikin::FontVariation>& axes) : minikin::MinikinFont(typeface->uniqueID()), mTypeface(std::move(typeface)), mFontData(fontData), mFontSize(fontSize), mTtcIndex(ttcIndex) { mFontSize(fontSize), mTtcIndex(ttcIndex), mAxes(axes) { } static void MinikinFontSkia_SetSkiaPaint(const minikin::MinikinFont* font, SkPaint* skPaint, Loading Loading @@ -87,6 +87,10 @@ int MinikinFontSkia::GetFontIndex() const { return mTtcIndex; } const std::vector<minikin::FontVariation>& MinikinFontSkia::GetAxes() const { return mAxes; } minikin::MinikinFont* MinikinFontSkia::createFontWithVariation( const std::vector<minikin::FontVariation>& variations) const { SkFontMgr::FontParameters params; Loading @@ -106,7 +110,7 @@ minikin::MinikinFont* MinikinFontSkia::createFontWithVariation( sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); sk_sp<SkTypeface> face(fm->createFromStream(stream, params)); return new MinikinFontSkia(std::move(face), mFontData, mFontSize, ttcIndex); return new MinikinFontSkia(std::move(face), mFontData, mFontSize, ttcIndex, variations); } uint32_t MinikinFontSkia::packPaintFlags(const SkPaint* paint) { Loading libs/hwui/hwui/MinikinSkia.h +3 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ namespace android { class ANDROID_API MinikinFontSkia : public minikin::MinikinFont { public: explicit MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontData, size_t fontSize, int ttcIndex); int ttcIndex, const std::vector<minikin::FontVariation>& axes); float GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const; Loading @@ -44,6 +44,7 @@ public: const void* GetFontData() const; size_t GetFontSize() const; int GetFontIndex() const; const std::vector<minikin::FontVariation>& GetAxes() const; minikin::MinikinFont* createFontWithVariation( const std::vector<minikin::FontVariation>&) const; Loading @@ -61,6 +62,7 @@ private: const void* mFontData; size_t mFontSize; int mTtcIndex; std::vector<minikin::FontVariation> mAxes; }; } // namespace android Loading libs/hwui/hwui/Typeface.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,8 @@ void Typeface::setRobotoTypefaceForTest() { sk_sp<SkTypeface> typeface = SkTypeface::MakeFromStream(fontData.release()); LOG_ALWAYS_FATAL_IF(typeface == nullptr, "Failed to make typeface from %s", kRobotoFont); minikin::MinikinFont* font = new MinikinFontSkia(std::move(typeface), data, st.st_size, 0); minikin::MinikinFont* font = new MinikinFontSkia(std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); minikin::FontFamily* family = new minikin::FontFamily( std::vector<minikin::Font>({ minikin::Font(font, minikin::FontStyle()) })); font->Unref(); Loading Loading
core/jni/android/graphics/FontFamily.cpp +4 −2 Original line number Diff line number Diff line Loading @@ -83,7 +83,8 @@ static void FontFamily_unref(jlong familyPtr) { static void addSkTypeface(jlong builderPtr, sk_sp<SkTypeface> face, const void* fontData, size_t fontSize, int ttcIndex, jint givenWeight, jboolean givenItalic) { minikin::MinikinFont* minikinFont = new MinikinFontSkia(std::move(face), fontData, fontSize, ttcIndex); new MinikinFontSkia(std::move(face), fontData, fontSize, ttcIndex, std::vector<minikin::FontVariation>()); NativeFamilyBuilder* builder = reinterpret_cast<NativeFamilyBuilder*>(builderPtr); int weight = givenWeight / 100; bool italic = givenItalic; Loading Loading @@ -208,7 +209,8 @@ static jboolean FontFamily_addFontWeightStyle(JNIEnv* env, jobject clazz, jlong return false; } minikin::MinikinFont* minikinFont = new MinikinFontSkia(std::move(face), fontPtr, fontSize, ttcIndex); new MinikinFontSkia(std::move(face), fontPtr, fontSize, ttcIndex, std::vector<minikin::FontVariation>()); NativeFamilyBuilder* builder = reinterpret_cast<NativeFamilyBuilder*>(builderPtr); builder->fonts.push_back(minikin::Font(minikinFont, minikin::FontStyle(weight / 100, isItalic))); Loading
libs/hwui/hwui/MinikinSkia.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -25,9 +25,9 @@ namespace android { MinikinFontSkia::MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontData, size_t fontSize, int ttcIndex) : int ttcIndex, const std::vector<minikin::FontVariation>& axes) : minikin::MinikinFont(typeface->uniqueID()), mTypeface(std::move(typeface)), mFontData(fontData), mFontSize(fontSize), mTtcIndex(ttcIndex) { mFontSize(fontSize), mTtcIndex(ttcIndex), mAxes(axes) { } static void MinikinFontSkia_SetSkiaPaint(const minikin::MinikinFont* font, SkPaint* skPaint, Loading Loading @@ -87,6 +87,10 @@ int MinikinFontSkia::GetFontIndex() const { return mTtcIndex; } const std::vector<minikin::FontVariation>& MinikinFontSkia::GetAxes() const { return mAxes; } minikin::MinikinFont* MinikinFontSkia::createFontWithVariation( const std::vector<minikin::FontVariation>& variations) const { SkFontMgr::FontParameters params; Loading @@ -106,7 +110,7 @@ minikin::MinikinFont* MinikinFontSkia::createFontWithVariation( sk_sp<SkFontMgr> fm(SkFontMgr::RefDefault()); sk_sp<SkTypeface> face(fm->createFromStream(stream, params)); return new MinikinFontSkia(std::move(face), mFontData, mFontSize, ttcIndex); return new MinikinFontSkia(std::move(face), mFontData, mFontSize, ttcIndex, variations); } uint32_t MinikinFontSkia::packPaintFlags(const SkPaint* paint) { Loading
libs/hwui/hwui/MinikinSkia.h +3 −1 Original line number Diff line number Diff line Loading @@ -29,7 +29,7 @@ namespace android { class ANDROID_API MinikinFontSkia : public minikin::MinikinFont { public: explicit MinikinFontSkia(sk_sp<SkTypeface> typeface, const void* fontData, size_t fontSize, int ttcIndex); int ttcIndex, const std::vector<minikin::FontVariation>& axes); float GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint &paint) const; Loading @@ -44,6 +44,7 @@ public: const void* GetFontData() const; size_t GetFontSize() const; int GetFontIndex() const; const std::vector<minikin::FontVariation>& GetAxes() const; minikin::MinikinFont* createFontWithVariation( const std::vector<minikin::FontVariation>&) const; Loading @@ -61,6 +62,7 @@ private: const void* mFontData; size_t mFontSize; int mTtcIndex; std::vector<minikin::FontVariation> mAxes; }; } // namespace android Loading
libs/hwui/hwui/Typeface.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -150,7 +150,8 @@ void Typeface::setRobotoTypefaceForTest() { sk_sp<SkTypeface> typeface = SkTypeface::MakeFromStream(fontData.release()); LOG_ALWAYS_FATAL_IF(typeface == nullptr, "Failed to make typeface from %s", kRobotoFont); minikin::MinikinFont* font = new MinikinFontSkia(std::move(typeface), data, st.st_size, 0); minikin::MinikinFont* font = new MinikinFontSkia(std::move(typeface), data, st.st_size, 0, std::vector<minikin::FontVariation>()); minikin::FontFamily* family = new minikin::FontFamily( std::vector<minikin::Font>({ minikin::Font(font, minikin::FontStyle()) })); font->Unref(); Loading