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

Commit ab42b32f authored by Behdad Esfahbod's avatar Behdad Esfahbod Committed by Android Git Automerger
Browse files

am 7dc6dcd4: Merge "Remove dependency on SkPaintOptionsAndroid" into lmp-dev

* commit '7dc6dcd417c23159047082a891288775b9e778b2':
  Remove dependency on SkPaintOptionsAndroid
parents 7adcb6de ec233212
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -45,10 +45,9 @@ void MinikinUtils::doLayout(Layout* layout, const Paint* paint, int bidiFlags, T
    FontStyle resolved = resolvedFace->fStyle;

    /* Prepare minikin FontStyle */
    SkString langStr = paint->getPaintOptionsAndroid().getLanguage().getTag();
    FontLanguage minikinLang(langStr.c_str(), langStr.size());
    SkPaintOptionsAndroid::FontVariant var = paint->getPaintOptionsAndroid().getFontVariant();
    FontVariant minikinVariant = var == SkPaintOptionsAndroid::kElegant_Variant ? VARIANT_ELEGANT
    std::string lang = paint->getTextLocale();
    FontLanguage minikinLang(lang.c_str(), lang.size());
    FontVariant minikinVariant = (paint->getFontVariant() == VARIANT_ELEGANT) ? VARIANT_ELEGANT
            : VARIANT_COMPACT;
    FontStyle minikinStyle(minikinLang, minikinVariant, resolved.getWeight(), resolved.getItalic());

+4 −13
Original line number Diff line number Diff line
@@ -365,27 +365,19 @@ public:
        char langTag[ULOC_FULLNAME_CAPACITY];
        toLanguageTag(langTag, ULOC_FULLNAME_CAPACITY, localeChars.c_str());

        SkPaintOptionsAndroid paintOpts = obj->getPaintOptionsAndroid();
        paintOpts.setLanguage(langTag);
        obj->setPaintOptionsAndroid(paintOpts);
        obj->setTextLocale(langTag);
    }

    static jboolean isElegantTextHeight(JNIEnv* env, jobject paint) {
        NPE_CHECK_RETURN_ZERO(env, paint);
        Paint* obj = GraphicsJNI::getNativePaint(env, paint);
        SkPaintOptionsAndroid paintOpts = obj->getPaintOptionsAndroid();
        return paintOpts.getFontVariant() == SkPaintOptionsAndroid::kElegant_Variant;
        return obj->getFontVariant() == VARIANT_ELEGANT;
    }

    static void setElegantTextHeight(JNIEnv* env, jobject paint, jboolean aa) {
        NPE_CHECK_RETURN_VOID(env, paint);
        Paint* obj = GraphicsJNI::getNativePaint(env, paint);
        SkPaintOptionsAndroid::FontVariant variant =
            aa ? SkPaintOptionsAndroid::kElegant_Variant :
            SkPaintOptionsAndroid::kDefault_Variant;
        SkPaintOptionsAndroid paintOpts = obj->getPaintOptionsAndroid();
        paintOpts.setFontVariant(variant);
        obj->setPaintOptionsAndroid(paintOpts);
        obj->setFontVariant(aa ? VARIANT_ELEGANT : VARIANT_DEFAULT);
    }

    static jfloat getTextSize(JNIEnv* env, jobject paint) {
@@ -457,8 +449,7 @@ public:
        // restore the original settings.
        paint->setTextSkewX(saveSkewX);
        paint->setFakeBoldText(savefakeBold);
        SkPaintOptionsAndroid paintOpts = paint->getPaintOptionsAndroid();
        if (paintOpts.getFontVariant() == SkPaintOptionsAndroid::kElegant_Variant) {
        if (paint->getFontVariant() == VARIANT_ELEGANT) {
            SkScalar size = paint->getTextSize();
            metrics->fTop = -size * kElegantTop / 2048;
            metrics->fBottom = -size * kElegantBottom / 2048;
+20 −0
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@
#include <SkPaint.h>
#include <string>

#include <minikin/FontFamily.h>

namespace android {

class Paint : public SkPaint {
@@ -51,9 +53,27 @@ public:
        return mFontFeatureSettings;
    }

    void setTextLocale(const std::string &textLocale) {
        mTextLocale = textLocale;
    }

    std::string getTextLocale() const {
        return mTextLocale;
    }

    void setFontVariant(FontVariant variant) {
        mFontVariant = variant;
    }

    FontVariant getFontVariant() const {
        return mFontVariant;
    }

private:
    float mLetterSpacing;
    std::string mFontFeatureSettings;
    std::string mTextLocale;
    FontVariant mFontVariant;
};

}  // namespace android
+7 −3
Original line number Diff line number Diff line
@@ -23,11 +23,11 @@
namespace android {

Paint::Paint() : SkPaint(),
        mLetterSpacing(0), mFontFeatureSettings() {
        mLetterSpacing(0), mFontFeatureSettings(), mTextLocale(), mFontVariant(VARIANT_DEFAULT) {
}

Paint::Paint(const Paint& paint) : SkPaint(paint),
        mLetterSpacing(0), mFontFeatureSettings() {
        mLetterSpacing(0), mFontFeatureSettings(), mTextLocale(), mFontVariant(VARIANT_DEFAULT) {
}

Paint::~Paint() {
@@ -37,13 +37,17 @@ Paint& Paint::operator=(const Paint& other) {
    SkPaint::operator=(other);
    mLetterSpacing = other.mLetterSpacing;
    mFontFeatureSettings = other.mFontFeatureSettings;
    mTextLocale = other.mTextLocale;
    mFontVariant = other.mFontVariant;
    return *this;
}

bool operator==(const Paint& a, const Paint& b) {
    return static_cast<const SkPaint&>(a) == static_cast<const SkPaint&>(b)
            && a.mLetterSpacing == b.mLetterSpacing
            && a.mFontFeatureSettings == b.mFontFeatureSettings;
            && a.mFontFeatureSettings == b.mFontFeatureSettings
            && a.mTextLocale == b.mTextLocale
            && a.mFontVariant == b.mFontVariant;
}

}