From 6148667638b4a39c80b0742f640cc167abe0139b Mon Sep 17 00:00:00 2001 From: Russell Brenner Date: Mon, 7 Nov 2011 16:10:32 -0800 Subject: Add support for Bengali and Tamil gpos/gsub tables HB_Script_Bengali and HB_Script_Tamil are now recognized in FontAndroid.cpp and map to Lohit-Bengali.ttf and Lohit-Tamil.ttf, allowing Harfbuzz to properly load the gpos/gsub tables for those languages. Bug: 5578901 Change-Id: I20ed542dd5a616535222dcb5c808f3716a062e80 --- .../platform/graphics/android/FontAndroid.cpp | 36 ++++++++++++++-------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'Source') diff --git a/Source/WebCore/platform/graphics/android/FontAndroid.cpp b/Source/WebCore/platform/graphics/android/FontAndroid.cpp index 3528d47..795111d 100644 --- a/Source/WebCore/platform/graphics/android/FontAndroid.cpp +++ b/Source/WebCore/platform/graphics/android/FontAndroid.cpp @@ -445,11 +445,13 @@ public: private: enum CustomScript { - Hindi, - Thai, - Naskh, + Bengali, + Devanagari, Hebrew, HebrewBold, + Naskh, + Tamil, + Thai, NUM_SCRIPTS }; @@ -502,11 +504,13 @@ private: // Indexed using enum CustomScript const char* TextRunWalker::paths[] = { + "/system/fonts/Lohit-Bengali.ttf", "/system/fonts/Lohit-Devanagari.ttf", - "/system/fonts/DroidSansThai.ttf", - "/system/fonts/DroidNaskh-Regular.ttf", "/system/fonts/DroidSansHebrew-Regular.ttf", - "/system/fonts/DroidSansHebrew-Bold.ttf" + "/system/fonts/DroidSansHebrew-Bold.ttf", + "/system/fonts/DroidNaskh-Regular.ttf", + "/system/fonts/Lohit-Tamil.ttf", + "/system/fonts/DroidSansThai.ttf" }; // Indexed using enum CustomScript @@ -689,14 +693,11 @@ void TextRunWalker::setupFontForScriptRun() const FontPlatformData* complexPlatformData = &platformData; switch (m_item.item.script) { + case HB_Script_Bengali: + complexPlatformData = setupComplexFont(Bengali, platformData); + break; case HB_Script_Devanagari: - complexPlatformData = setupComplexFont(Hindi, platformData); - break; - case HB_Script_Thai: - complexPlatformData = setupComplexFont(Thai, platformData); - break; - case HB_Script_Arabic: - complexPlatformData = setupComplexFont(Naskh, platformData); + complexPlatformData = setupComplexFont(Devanagari, platformData); break; case HB_Script_Hebrew: switch (platformData.typeface()->style()) { @@ -711,6 +712,15 @@ void TextRunWalker::setupFontForScriptRun() break; } break; + case HB_Script_Arabic: + complexPlatformData = setupComplexFont(Naskh, platformData); + break; + case HB_Script_Tamil: + complexPlatformData = setupComplexFont(Tamil, platformData); + break; + case HB_Script_Thai: + complexPlatformData = setupComplexFont(Thai, platformData); + break; default: // HB_Script_Common; includes Ethiopic complexPlatformData = &platformData; -- cgit v1.1