diff options
author | 2024-09-27 17:42:57 +0900 | |
---|---|---|
committer | 2024-09-30 07:08:49 +0000 | |
commit | fd13042d6df898d1139cc5e7597dbbdcaea19bc3 (patch) | |
tree | 30c1da5f4ff0125c36dcd642c366606b528d060f | |
parent | a0811c0e93b9ec1ad1874a18789ea0dd5d0508ee (diff) |
Use VariationSettings instead of vector of FontVariation
Bug: 361260253
Test: minikin_tests
Flag: com.android.text.flags.typeface_redesign
Change-Id: Ia967c6576e2e97b159aefa844207a4cce25dc749
-rw-r--r-- | libs/hwui/hwui/MinikinSkia.cpp | 6 | ||||
-rw-r--r-- | libs/hwui/hwui/MinikinSkia.h | 8 | ||||
-rw-r--r-- | libs/hwui/hwui/Typeface.cpp | 9 | ||||
-rw-r--r-- | libs/hwui/hwui/Typeface.h | 4 | ||||
-rw-r--r-- | libs/hwui/jni/FontFamily.cpp | 6 | ||||
-rw-r--r-- | libs/hwui/jni/Typeface.cpp | 5 | ||||
-rw-r--r-- | libs/hwui/jni/fonts/Font.cpp | 4 | ||||
-rw-r--r-- | native/android/system_fonts.cpp | 2 |
8 files changed, 22 insertions, 22 deletions
diff --git a/libs/hwui/hwui/MinikinSkia.cpp b/libs/hwui/hwui/MinikinSkia.cpp index bbb142014ed8..f0bcfe537998 100644 --- a/libs/hwui/hwui/MinikinSkia.cpp +++ b/libs/hwui/hwui/MinikinSkia.cpp @@ -36,7 +36,7 @@ namespace android { MinikinFontSkia::MinikinFontSkia(sk_sp<SkTypeface> typeface, int sourceId, const void* fontData, size_t fontSize, std::string_view filePath, int ttcIndex, - const std::vector<minikin::FontVariation>& axes) + const minikin::VariationSettings& axes) : mTypeface(std::move(typeface)) , mSourceId(sourceId) , mFontData(fontData) @@ -123,12 +123,12 @@ int MinikinFontSkia::GetFontIndex() const { return mTtcIndex; } -const std::vector<minikin::FontVariation>& MinikinFontSkia::GetAxes() const { +const minikin::VariationSettings& MinikinFontSkia::GetAxes() const { return mAxes; } std::shared_ptr<minikin::MinikinFont> MinikinFontSkia::createFontWithVariation( - const std::vector<minikin::FontVariation>& variations) const { + const minikin::VariationSettings& variations) const { SkFontArguments args; std::vector<SkFontArguments::VariationPosition::Coordinate> skVariation; diff --git a/libs/hwui/hwui/MinikinSkia.h b/libs/hwui/hwui/MinikinSkia.h index de9a5c2af0aa..7fe5978bfda3 100644 --- a/libs/hwui/hwui/MinikinSkia.h +++ b/libs/hwui/hwui/MinikinSkia.h @@ -32,7 +32,7 @@ class ANDROID_API MinikinFontSkia : public minikin::MinikinFont { public: MinikinFontSkia(sk_sp<SkTypeface> typeface, int sourceId, const void* fontData, size_t fontSize, std::string_view filePath, int ttcIndex, - const std::vector<minikin::FontVariation>& axes); + const minikin::VariationSettings& axes); float GetHorizontalAdvance(uint32_t glyph_id, const minikin::MinikinPaint& paint, const minikin::FontFakery& fakery) const override; @@ -59,9 +59,9 @@ public: size_t GetFontSize() const; int GetFontIndex() const; const std::string& getFilePath() const { return mFilePath; } - const std::vector<minikin::FontVariation>& GetAxes() const; + const minikin::VariationSettings& GetAxes() const; std::shared_ptr<minikin::MinikinFont> createFontWithVariation( - const std::vector<minikin::FontVariation>&) const; + const minikin::VariationSettings&) const; int GetSourceId() const override { return mSourceId; } static uint32_t packFontFlags(const SkFont&); @@ -80,7 +80,7 @@ private: const void* mFontData; size_t mFontSize; int mTtcIndex; - std::vector<minikin::FontVariation> mAxes; + minikin::VariationSettings mAxes; std::string mFilePath; }; diff --git a/libs/hwui/hwui/Typeface.cpp b/libs/hwui/hwui/Typeface.cpp index a9d1a2aed8cc..2d812d675fdc 100644 --- a/libs/hwui/hwui/Typeface.cpp +++ b/libs/hwui/hwui/Typeface.cpp @@ -92,8 +92,8 @@ Typeface* Typeface::createAbsolute(Typeface* base, int weight, bool italic) { return result; } -Typeface* Typeface::createFromTypefaceWithVariation( - Typeface* src, const std::vector<minikin::FontVariation>& variations) { +Typeface* Typeface::createFromTypefaceWithVariation(Typeface* src, + const minikin::VariationSettings& variations) { const Typeface* resolvedFace = Typeface::resolveDefault(src); Typeface* result = new Typeface(); if (result != nullptr) { @@ -192,9 +192,8 @@ void Typeface::setRobotoTypefaceForTest() { sk_sp<SkTypeface> typeface = fm->makeFromStream(std::move(fontData)); LOG_ALWAYS_FATAL_IF(typeface == nullptr, "Failed to make typeface from %s", kRobotoFont); - std::shared_ptr<minikin::MinikinFont> font = - std::make_shared<MinikinFontSkia>(std::move(typeface), 0, data, st.st_size, kRobotoFont, - 0, std::vector<minikin::FontVariation>()); + std::shared_ptr<minikin::MinikinFont> font = std::make_shared<MinikinFontSkia>( + std::move(typeface), 0, data, st.st_size, kRobotoFont, 0, minikin::VariationSettings()); std::vector<std::shared_ptr<minikin::Font>> fonts; fonts.push_back(minikin::Font::Builder(font).build()); diff --git a/libs/hwui/hwui/Typeface.h b/libs/hwui/hwui/Typeface.h index 565136e53676..2c96c1ad80fe 100644 --- a/libs/hwui/hwui/Typeface.h +++ b/libs/hwui/hwui/Typeface.h @@ -74,8 +74,8 @@ public: static Typeface* createRelative(Typeface* src, Style desiredStyle); static Typeface* createAbsolute(Typeface* base, int weight, bool italic); - static Typeface* createFromTypefaceWithVariation( - Typeface* src, const std::vector<minikin::FontVariation>& variations); + static Typeface* createFromTypefaceWithVariation(Typeface* src, + const minikin::VariationSettings& variations); static Typeface* createFromFamilies( std::vector<std::shared_ptr<minikin::FontFamily>>&& families, int weight, int italic, diff --git a/libs/hwui/jni/FontFamily.cpp b/libs/hwui/jni/FontFamily.cpp index e6d790f56d0f..9922ff393e55 100644 --- a/libs/hwui/jni/FontFamily.cpp +++ b/libs/hwui/jni/FontFamily.cpp @@ -133,9 +133,9 @@ static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, in builder->axes.clear(); return false; } - std::shared_ptr<minikin::MinikinFont> minikinFont = - std::make_shared<MinikinFontSkia>(std::move(face), fonts::getNewSourceId(), fontPtr, - fontSize, "", ttcIndex, builder->axes); + std::shared_ptr<minikin::MinikinFont> minikinFont = std::make_shared<MinikinFontSkia>( + std::move(face), fonts::getNewSourceId(), fontPtr, fontSize, "", ttcIndex, + minikin::VariationSettings(builder->axes, false)); minikin::Font::Builder fontBuilder(minikinFont); if (weight != RESOLVE_BY_FONT_TABLE) { diff --git a/libs/hwui/jni/Typeface.cpp b/libs/hwui/jni/Typeface.cpp index 209b35c5537c..0f458dde8b07 100644 --- a/libs/hwui/jni/Typeface.cpp +++ b/libs/hwui/jni/Typeface.cpp @@ -80,7 +80,8 @@ static jlong Typeface_createFromTypefaceWithVariation(JNIEnv* env, jobject, jlon AxisHelper axis(env, axisObject); variations.push_back(minikin::FontVariation(axis.getTag(), axis.getStyleValue())); } - return toJLong(Typeface::createFromTypefaceWithVariation(toTypeface(familyHandle), variations)); + return toJLong(Typeface::createFromTypefaceWithVariation( + toTypeface(familyHandle), minikin::VariationSettings(variations, false /* sorted */))); } static jlong Typeface_createWeightAlias(JNIEnv* env, jobject, jlong familyHandle, jint weight) { @@ -273,7 +274,7 @@ void MinikinFontSkiaFactory::write(minikin::BufferWriter* writer, const std::string& path = typeface->GetFontPath(); writer->writeString(path); writer->write<int>(typeface->GetFontIndex()); - const std::vector<minikin::FontVariation>& axes = typeface->GetAxes(); + const minikin::VariationSettings& axes = typeface->GetAxes(); writer->writeArray<minikin::FontVariation>(axes.data(), axes.size()); bool hasVerity = getVerity(path); writer->write<int8_t>(static_cast<int8_t>(hasVerity)); diff --git a/libs/hwui/jni/fonts/Font.cpp b/libs/hwui/jni/fonts/Font.cpp index f405abaaf5b4..6a05b6c2626c 100644 --- a/libs/hwui/jni/fonts/Font.cpp +++ b/libs/hwui/jni/fonts/Font.cpp @@ -142,7 +142,7 @@ static jlong Font_Builder_clone(JNIEnv* env, jobject clazz, jlong fontPtr, jlong std::shared_ptr<minikin::MinikinFont> newMinikinFont = std::make_shared<MinikinFontSkia>( std::move(newTypeface), minikinSkia->GetSourceId(), minikinSkia->GetFontData(), minikinSkia->GetFontSize(), minikinSkia->getFilePath(), minikinSkia->GetFontIndex(), - builder->axes); + minikin::VariationSettings(builder->axes, false)); std::shared_ptr<minikin::Font> newFont = minikin::Font::Builder(newMinikinFont) .setWeight(weight) .setSlant(static_cast<minikin::FontStyle::Slant>(italic)) @@ -303,7 +303,7 @@ static jlong Font_getAxisInfo(CRITICAL_JNI_PARAMS_COMMA jlong fontPtr, jint inde var = reader.readArray<minikin::FontVariation>().first[index]; } else { const std::shared_ptr<minikin::MinikinFont>& minikinFont = font->font->baseTypeface(); - var = minikinFont->GetAxes().at(index); + var = minikinFont->GetAxes()[index]; } uint32_t floatBinary = *reinterpret_cast<const uint32_t*>(&var.value); return (static_cast<uint64_t>(var.axisTag) << 32) | static_cast<uint64_t>(floatBinary); diff --git a/native/android/system_fonts.cpp b/native/android/system_fonts.cpp index 91f78ce6f950..0c07b2acbb0c 100644 --- a/native/android/system_fonts.cpp +++ b/native/android/system_fonts.cpp @@ -327,7 +327,7 @@ AFont* _Nonnull AFontMatcher_match( result->mWeight = font->style().weight(); result->mItalic = font->style().slant() == minikin::FontStyle::Slant::ITALIC; result->mCollectionIndex = minikinFontSkia->GetFontIndex(); - const std::vector<minikin::FontVariation>& axes = minikinFontSkia->GetAxes(); + const minikin::VariationSettings& axes = minikinFontSkia->GetAxes(); result->mAxes.reserve(axes.size()); for (auto axis : axes) { result->mAxes.push_back(std::make_pair(axis.axisTag, axis.value)); |