@@ -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
4142ANDROID_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 :
0 commit comments