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

Commit 6c18e2c8 authored by Victoria Lease's avatar Victoria Lease Committed by Android Git Automerger
Browse files

am 25df1a82: Merge "use appropriate fallback chain for style" into jb-mr2-dev

* commit '25df1a82':
  use appropriate fallback chain for style
parents 74c69f1e 25df1a82
Loading
Loading
Loading
Loading
+9 −19
Original line number Diff line number Diff line
@@ -339,23 +339,11 @@ uint32_t TextLayoutValue::getElapsedTime() {
}

TextLayoutShaper::TextLayoutShaper() {
    init();

    mBuffer = hb_buffer_create();
}

void TextLayoutShaper::init() {
    mDefaultTypeface = SkFontHost::CreateTypeface(NULL, NULL, SkTypeface::kNormal);
}

void TextLayoutShaper::unrefTypefaces() {
    SkSafeUnref(mDefaultTypeface);
}

TextLayoutShaper::~TextLayoutShaper() {
    hb_buffer_destroy(mBuffer);

    unrefTypefaces();
}

void TextLayoutShaper::computeValues(TextLayoutValue* value, const SkPaint* paint, const UChar* chars,
@@ -839,24 +827,28 @@ size_t TextLayoutShaper::shapeFontRun(const SkPaint* paint) {
    }

    if (baseGlyphCount != 0) {
        SkTypeface::Style style = SkTypeface::kNormal;
        if (typeface != NULL) {
            style = typeface->style();
        }
        typeface = typefaceForScript(paint, typeface, hb_buffer_get_script(mBuffer));
        if (!typeface) {
            baseGlyphCount = 0;
            typeface = mDefaultTypeface;
            SkSafeRef(typeface);
            typeface = SkFontHost::CreateTypeface(NULL, NULL, style);
#if DEBUG_GLYPHS
            ALOGD("Using Default Typeface");
#endif
        }
    } else {
        if (!typeface) {
            typeface = mDefaultTypeface;
            typeface = SkFontHost::CreateTypeface(NULL, NULL, SkTypeface::kNormal);
#if DEBUG_GLYPHS
            ALOGD("Using Default Typeface");
            ALOGD("Using Default Typeface (normal style)");
#endif
        }
        } else {
            SkSafeRef(typeface);
        }
    }

    mShapingPaint.setTypeface(typeface);
    hb_face_t* face = referenceCachedHBFace(typeface);
@@ -899,8 +891,6 @@ void TextLayoutShaper::purgeCaches() {
        hb_face_destroy(mCachedHBFaces.valueAt(i));
    }
    mCachedHBFaces.clear();
    unrefTypefaces();
    init();
}

TextLayoutEngine::TextLayoutEngine() {
+0 −9
Original line number Diff line number Diff line
@@ -196,19 +196,11 @@ private:
     */
    SkPaint mShapingPaint;

    /**
     * Skia default typeface to be returned if we cannot resolve script
     */
    SkTypeface* mDefaultTypeface;

    /**
     * Cache of Harfbuzz faces
     */
    KeyedVector<SkFontID, hb_face_t*> mCachedHBFaces;

    void init();
    void unrefTypefaces();

    SkTypeface* typefaceForScript(const SkPaint* paint, SkTypeface* typeface,
        hb_script_t script);

@@ -228,7 +220,6 @@ private:
    hb_face_t* referenceCachedHBFace(SkTypeface* typeface);

    bool isComplexScript(hb_script_t script);

}; // TextLayoutShaper

/**