Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fd13042d authored by Seigo Nonaka's avatar Seigo Nonaka
Browse files

Use VariationSettings instead of vector of FontVariation

Bug: 361260253
Test: minikin_tests
Flag: com.android.text.flags.typeface_redesign
Change-Id: Ia967c6576e2e97b159aefa844207a4cce25dc749
parent a0811c0e
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
+4 −4
Original line number Diff line number Diff line
@@ -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;
};

+4 −5
Original line number Diff line number Diff line
@@ -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());

+2 −2
Original line number Diff line number Diff line
@@ -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,
+3 −3
Original line number Diff line number Diff line
@@ -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) {
Loading