Skip to content

Commit 6162876

Browse files
author
Fabrice Di Meglio
committed
Fix bug #6318791 Replace the Lohit Devanagari and Tamil with Droid versions
- take care of ttf filename changes and regular/bold versions Change-Id: Ib71d2537df16ff954cef9619c12d611948d19efe
1 parent 476b03b commit 6162876

File tree

2 files changed

+37
-12
lines changed

2 files changed

+37
-12
lines changed

core/jni/android/graphics/TextLayoutCache.cpp

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,9 @@ namespace android {
3434
#define TYPE_FACE_HEBREW_REGULAR "/system/fonts/DroidSansHebrew-Regular.ttf"
3535
#define TYPE_FACE_HEBREW_BOLD "/system/fonts/DroidSansHebrew-Bold.ttf"
3636
#define TYPEFACE_BENGALI "/system/fonts/Lohit-Bengali.ttf"
37-
#define TYPEFACE_DEVANAGARI "/system/fonts/Lohit-Devanagari.ttf"
38-
#define TYPEFACE_TAMIL "/system/fonts/Lohit-Tamil.ttf"
37+
#define TYPEFACE_DEVANAGARI_REGULAR "/system/fonts/DroidSansDevanagari-Regular.ttf"
38+
#define TYPEFACE_TAMIL_REGULAR "/system/fonts/DroidSansTamil-Regular.ttf"
39+
#define TYPEFACE_TAMIL_BOLD "/system/fonts/DroidSansTamil-Bold.ttf"
3940
#define TYPEFACE_THAI "/system/fonts/DroidSansThai.ttf"
4041

4142
ANDROID_SINGLETON_STATIC_INSTANCE(TextLayoutEngine);
@@ -337,8 +338,9 @@ TextLayoutShaper::TextLayoutShaper() : mShaperItemGlyphArraySize(0) {
337338
mHebrewBoldTypeface = NULL;
338339
mBengaliTypeface = NULL;
339340
mThaiTypeface = NULL;
340-
mDevanagariTypeface = NULL;
341-
mTamilTypeface = NULL;
341+
mDevanagariRegularTypeface = NULL;
342+
mTamilRegularTypeface = NULL;
343+
mTamilBoldTypeface = NULL;
342344

343345
mFontRec.klass = &harfbuzzSkiaClass;
344346
mFontRec.userData = 0;
@@ -364,8 +366,9 @@ TextLayoutShaper::~TextLayoutShaper() {
364366
SkSafeUnref(mHebrewBoldTypeface);
365367
SkSafeUnref(mBengaliTypeface);
366368
SkSafeUnref(mThaiTypeface);
367-
SkSafeUnref(mDevanagariTypeface);
368-
SkSafeUnref(mTamilTypeface);
369+
SkSafeUnref(mDevanagariRegularTypeface);
370+
SkSafeUnref(mTamilRegularTypeface);
371+
SkSafeUnref(mTamilBoldTypeface);
369372
deleteShaperItemGlyphArrays();
370373
}
371374

@@ -801,17 +804,38 @@ SkTypeface* TextLayoutShaper::typefaceForUnichar(const SkPaint* paint, SkTypefac
801804
break;
802805

803806
case HB_Script_Devanagari:
804-
typeface = getCachedTypeface(&mDevanagariTypeface, TYPEFACE_DEVANAGARI);
807+
typeface = getCachedTypeface(&mDevanagariRegularTypeface, TYPEFACE_DEVANAGARI_REGULAR);
805808
#if DEBUG_GLYPHS
806-
ALOGD("Using Devanagari Typeface");
809+
ALOGD("Using Devanagari Regular Typeface");
807810
#endif
808811
break;
809812

810813
case HB_Script_Tamil:
811-
typeface = getCachedTypeface(&mTamilTypeface, TYPEFACE_TAMIL);
814+
if (typeface) {
815+
switch (typeface->style()) {
816+
case SkTypeface::kBold:
817+
case SkTypeface::kBoldItalic:
818+
typeface = getCachedTypeface(&mTamilBoldTypeface, TYPEFACE_TAMIL_BOLD);
812819
#if DEBUG_GLYPHS
813-
ALOGD("Using Tamil Typeface");
820+
ALOGD("Using Tamil Bold Typeface");
814821
#endif
822+
break;
823+
824+
case SkTypeface::kNormal:
825+
case SkTypeface::kItalic:
826+
default:
827+
typeface = getCachedTypeface(&mTamilRegularTypeface, TYPEFACE_TAMIL_REGULAR);
828+
#if DEBUG_GLYPHS
829+
ALOGD("Using Tamil Regular Typeface");
830+
#endif
831+
break;
832+
}
833+
} else {
834+
typeface = getCachedTypeface(&mTamilRegularTypeface, TYPEFACE_TAMIL_REGULAR);
835+
#if DEBUG_GLYPHS
836+
ALOGD("Using Tamil Regular Typeface");
837+
#endif
838+
}
815839
break;
816840

817841
default:

core/jni/android/graphics/TextLayoutCache.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,8 +194,9 @@ class TextLayoutShaper {
194194
SkTypeface* mHebrewBoldTypeface;
195195
SkTypeface* mBengaliTypeface;
196196
SkTypeface* mThaiTypeface;
197-
SkTypeface* mDevanagariTypeface;
198-
SkTypeface* mTamilTypeface;
197+
SkTypeface* mDevanagariRegularTypeface;
198+
SkTypeface* mTamilRegularTypeface;
199+
SkTypeface* mTamilBoldTypeface;
199200

200201
/**
201202
* Cache of Harfbuzz faces

0 commit comments

Comments
 (0)