Loading core/jni/android/graphics/TextLayoutCache.cpp +23 −12 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading core/jni/android/graphics/TextLayoutCache.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
core/jni/android/graphics/TextLayoutCache.cpp +23 −12 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading @@ -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 Loading Loading @@ -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 Loading
core/jni/android/graphics/TextLayoutCache.h +1 −1 Original line number Diff line number Diff line Loading @@ -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); Loading