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

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

Update FontStyle location in minikin.

Bug: 65024629
Test: hwui_unit_tests
Change-Id: I54d701945dfb0792f08a4c26cc1f8b6a6ab9e67e
parent 9d30e6cf
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -44,10 +44,10 @@ namespace android {

struct NativeFamilyBuilder {
    NativeFamilyBuilder(uint32_t langId, int variant)
        : langId(langId), variant(static_cast<minikin::FontVariant>(variant)),
        : langId(langId), variant(static_cast<minikin::FontFamily::Variant>(variant)),
          allowUnsupportedFont(false) {}
    uint32_t langId;
    minikin::FontVariant variant;
    minikin::FontFamily::Variant variant;
    bool allowUnsupportedFont;
    std::vector<minikin::Font> fonts;
    std::vector<minikin::FontVariation> axes;
@@ -141,7 +141,7 @@ static bool addSkTypeface(NativeFamilyBuilder* builder, sk_sp<SkData>&& data, in
    }

    builder->fonts.push_back(minikin::Font(minikinFont,
            minikin::FontStyle(weight, static_cast<minikin::FontSlant>(italic))));
            minikin::FontStyle(weight, static_cast<minikin::FontStyle::Slant>(italic))));
    builder->axes.clear();
    return true;
}
+4 −3
Original line number Diff line number Diff line
@@ -581,7 +581,7 @@ namespace PaintGlue {
        // restore the original settings.
        paint->setTextSkewX(saveSkewX);
        paint->setFakeBoldText(savefakeBold);
        if (paint->getFontVariant() == minikin::FontVariant::ELEGANT) {
        if (paint->getFamilyVariant() == minikin::FontFamily::Variant::ELEGANT) {
            SkScalar size = paint->getTextSize();
            metrics->fTop = -size * kElegantTop / 2048;
            metrics->fBottom = -size * kElegantBottom / 2048;
@@ -880,12 +880,13 @@ namespace PaintGlue {

    static jboolean isElegantTextHeight(jlong paintHandle) {
        Paint* obj = reinterpret_cast<Paint*>(paintHandle);
        return obj->getFontVariant() == minikin::FontVariant::ELEGANT;
        return obj->getFamilyVariant() == minikin::FontFamily::Variant::ELEGANT;
    }

    static void setElegantTextHeight(jlong paintHandle, jboolean aa) {
        Paint* obj = reinterpret_cast<Paint*>(paintHandle);
        obj->setFontVariant(aa ? minikin::FontVariant::ELEGANT : minikin::FontVariant::DEFAULT);
        obj->setFamilyVariant(
                aa ? minikin::FontFamily::Variant::ELEGANT : minikin::FontFamily::Variant::DEFAULT);
    }

    static jfloat getTextSize(jlong paintHandle) {
+1 −1
Original line number Diff line number Diff line
@@ -83,7 +83,7 @@ static jint Typeface_getStyle(JNIEnv* env, jobject obj, jlong faceHandle) {

static jint Typeface_getWeight(JNIEnv* env, jobject obj, jlong faceHandle) {
    Typeface* face = reinterpret_cast<Typeface*>(faceHandle);
    return face->fStyle.weight;
    return face->fStyle.weight();
}

static jlong Typeface_createFromArray(JNIEnv *env, jobject, jlongArray familyArray,
+2 −7
Original line number Diff line number Diff line
@@ -29,12 +29,6 @@ namespace android {
minikin::MinikinPaint MinikinUtils::prepareMinikinPaint(const Paint* paint,
                                                        const Typeface* typeface) {
    const Typeface* resolvedFace = Typeface::resolveDefault(typeface);
    minikin::FontStyle resolved = resolvedFace->fStyle;

    const minikin::FontVariant minikinVariant =
            (paint->getFontVariant() == minikin::FontVariant::ELEGANT)
                    ? minikin::FontVariant::ELEGANT
                    : minikin::FontVariant::COMPACT;

    minikin::MinikinPaint minikinPaint;
    /* Prepare minikin Paint */
@@ -46,7 +40,8 @@ minikin::MinikinPaint MinikinUtils::prepareMinikinPaint(const Paint* paint,
    minikinPaint.wordSpacing = paint->getWordSpacing();
    minikinPaint.paintFlags = MinikinFontSkia::packPaintFlags(paint);
    minikinPaint.localeListId = paint->getMinikinLocaleListId();
    minikinPaint.fontStyle = minikin::FontStyle(minikinVariant, resolved.weight, resolved.slant);
    minikinPaint.familyVariant = paint->getFamilyVariant();
    minikinPaint.fontStyle = resolvedFace->fStyle;
    minikinPaint.fontFeatureSettings = paint->getFontFeatureSettings();
    minikinPaint.hyphenEdit = minikin::HyphenEdit(paint->getHyphenEdit());
    return minikinPaint;
+3 −3
Original line number Diff line number Diff line
@@ -73,9 +73,9 @@ public:

    uint32_t getMinikinLocaleListId() const { return mMinikinLocaleListId; }

    void setFontVariant(minikin::FontVariant variant) { mFontVariant = variant; }
    void setFamilyVariant(minikin::FontFamily::Variant variant) { mFamilyVariant = variant; }

    minikin::FontVariant getFontVariant() const { return mFontVariant; }
    minikin::FontFamily::Variant getFamilyVariant() const { return mFamilyVariant; }

    void setHyphenEdit(uint32_t hyphen) { mHyphenEdit = hyphen; }

@@ -90,7 +90,7 @@ private:
    float mWordSpacing = 0;
    std::string mFontFeatureSettings;
    uint32_t mMinikinLocaleListId;
    minikin::FontVariant mFontVariant;
    minikin::FontFamily::Variant mFamilyVariant;
    uint32_t mHyphenEdit = 0;
    // The native Typeface object has the same lifetime of the Java Typeface
    // object. The Java Paint object holds a strong reference to the Java Typeface
Loading