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

Commit 96051184 authored by Billy Hewlett's avatar Billy Hewlett Committed by Android (Google) Code Review
Browse files

Revert "Revert "Use Elegant fonts for Webkit, Compact fonts for Textview""

This reverts commit 6fadccd2
parent 6fadccd2
Loading
Loading
Loading
Loading
+23 −12
Original line number Diff line number Diff line
@@ -755,7 +755,8 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
    // Set the correct Typeface depending on the script
    switch (script) {
    case HB_Script_Arabic:
        typeface = getCachedTypeface(&mArabicTypeface, kArabic_FallbackScript);
        typeface = getCachedTypeface(&mArabicTypeface, HB_Script_Arabic,
                SkTypeface::kNormal);
#if DEBUG_GLYPHS
        ALOGD("Using Arabic Typeface");
#endif
@@ -766,7 +767,8 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
            switch (typeface->style()) {
            case SkTypeface::kBold:
            case SkTypeface::kBoldItalic:
                typeface = getCachedTypeface(&mHebrewBoldTypeface, kHebrewBold_FallbackScript);
                typeface = getCachedTypeface(&mHebrewBoldTypeface, HB_Script_Hebrew,
                        SkTypeface::kBold);
#if DEBUG_GLYPHS
                ALOGD("Using Hebrew Bold/BoldItalic Typeface");
#endif
@@ -775,14 +777,16 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
            case SkTypeface::kNormal:
            case SkTypeface::kItalic:
            default:
                typeface = getCachedTypeface(&mHebrewRegularTypeface, kHebrewRegular_FallbackScript);
                typeface = getCachedTypeface(&mHebrewRegularTypeface, HB_Script_Hebrew,
                        SkTypeface::kNormal);
#if DEBUG_GLYPHS
                ALOGD("Using Hebrew Regular/Italic Typeface");
#endif
                break;
            }
        } else {
            typeface = getCachedTypeface(&mHebrewRegularTypeface, kHebrewRegular_FallbackScript);
            typeface = getCachedTypeface(&mHebrewRegularTypeface, HB_Script_Hebrew,
                    SkTypeface::kNormal);
#if DEBUG_GLYPHS
            ALOGD("Using Hebrew Regular Typeface");
#endif
@@ -790,21 +794,24 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
        break;

    case HB_Script_Bengali:
        typeface = getCachedTypeface(&mBengaliTypeface, kBengali_FallbackScript);
        typeface = getCachedTypeface(&mBengaliTypeface, HB_Script_Bengali,
                SkTypeface::kNormal);
#if DEBUG_GLYPHS
        ALOGD("Using Bengali Typeface");
#endif
        break;

    case HB_Script_Thai:
        typeface = getCachedTypeface(&mThaiTypeface, kThai_FallbackScript);
        typeface = getCachedTypeface(&mThaiTypeface, HB_Script_Thai,
                SkTypeface::kNormal);
#if DEBUG_GLYPHS
        ALOGD("Using Thai Typeface");
#endif
        break;

    case HB_Script_Devanagari:
       typeface = getCachedTypeface(&mDevanagariRegularTypeface, kDevanagari_FallbackScript);
       typeface = getCachedTypeface(&mDevanagariRegularTypeface, HB_Script_Devanagari,
               SkTypeface::kNormal);
#if DEBUG_GLYPHS
       ALOGD("Using Devanagari Regular Typeface");
#endif
@@ -815,7 +822,8 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
            switch (typeface->style()) {
            case SkTypeface::kBold:
            case SkTypeface::kBoldItalic:
                typeface = getCachedTypeface(&mTamilBoldTypeface, kTamilBold_FallbackScript);
                typeface = getCachedTypeface(&mTamilBoldTypeface, HB_Script_Tamil,
                        SkTypeface::kBold);
#if DEBUG_GLYPHS
                ALOGD("Using Tamil Bold Typeface");
#endif
@@ -824,14 +832,16 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
            case SkTypeface::kNormal:
            case SkTypeface::kItalic:
            default:
                typeface = getCachedTypeface(&mTamilRegularTypeface, kTamilRegular_FallbackScript);
                typeface = getCachedTypeface(&mTamilRegularTypeface, HB_Script_Tamil,
                        SkTypeface::kNormal);
#if DEBUG_GLYPHS
                ALOGD("Using Tamil Regular Typeface");
#endif
                break;
            }
        } else {
            typeface = getCachedTypeface(&mTamilRegularTypeface, kTamilRegular_FallbackScript);
            typeface = getCachedTypeface(&mTamilRegularTypeface, HB_Script_Tamil,
                    SkTypeface::kNormal);
#if DEBUG_GLYPHS
            ALOGD("Using Tamil Regular Typeface");
#endif
@@ -949,9 +959,10 @@ void TextLayoutShaper::deleteShaperItemGlyphArrays() {
    delete[] mShaperItem.log_clusters;
}

SkTypeface* TextLayoutShaper::getCachedTypeface(SkTypeface** typeface, FallbackScripts fallbackEnum) {
SkTypeface* TextLayoutShaper::getCachedTypeface(SkTypeface** typeface, HB_Script script,
        SkTypeface::Style style) {
    if (!*typeface) {
        *typeface = SkCreateTypefaceForScript(fallbackEnum);
        *typeface = SkCreateTypefaceForScript(script, style);
        // CreateFromFile(path) can return NULL if the path is non existing
        if (!*typeface) {
#if DEBUG_GLYPHS
+1 −1
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ private:
            Vector<jfloat>* const outAdvances, jfloat* outTotalAdvance,
            Vector<jchar>* const outGlyphs);

    SkTypeface* getCachedTypeface(SkTypeface** typeface, FallbackScripts fallbackEnum);
    SkTypeface* getCachedTypeface(SkTypeface** typeface, HB_Script script, SkTypeface::Style style);
    HB_Face getCachedHBFace(SkTypeface* typeface);

    void ensureShaperItemGlyphArrays(size_t size);