diff options
author | Billy Hewlett <billyh@google.com> | 2012-06-07 11:17:24 -0700 |
---|---|---|
committer | Billy Hewlett <billyh@google.com> | 2012-06-07 11:17:24 -0700 |
commit | 74af3f4571f2501ed4fdd9da928db0644acc3f6c (patch) | |
tree | 85aaa26b3d8bc4f03367ddd996329d9b4528f6f1 /Source | |
parent | 317cb8464ee3ba035d9661ba0383d58f9b80620e (diff) | |
download | external_webkit-74af3f4571f2501ed4fdd9da928db0644acc3f6c.zip external_webkit-74af3f4571f2501ed4fdd9da928db0644acc3f6c.tar.gz external_webkit-74af3f4571f2501ed4fdd9da928db0644acc3f6c.tar.bz2 |
Fix hardcoded font path. Allow adding new font path thru Skia changes.
Includes patch which fixes merge issue
Bug: 6609231
Change-Id: Ib802981fd077fb733a224addfd5aad3046b96cca
Diffstat (limited to 'Source')
-rw-r--r-- | Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp | 66 |
1 files changed, 17 insertions, 49 deletions
diff --git a/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp b/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp index 7bed5bb..869c7b6 100644 --- a/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp +++ b/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp @@ -45,6 +45,7 @@ #include "SkTypeface.h" #include "SkUtils.h" #include "TextRun.h" +#include "SkTypeface_android.h" #ifdef SUPPORT_COMPLEX_SCRIPTS #include "HarfbuzzSkia.h" @@ -461,25 +462,8 @@ public: } private: - enum CustomScript { - Bengali, - Devanagari, - Hebrew, - HebrewBold, - Kannada, - Malayalam, - Naskh, - Tamil, - TamilBold, - Telugu, - Thai, - NUM_SCRIPTS - }; - - static const char* paths[NUM_SCRIPTS]; - void setupFontForScriptRun(); - const FontPlatformData* setupComplexFont(CustomScript script, + const FontPlatformData* setupComplexFont(FallbackScripts script, const FontPlatformData& platformData); HB_FontRec* allocHarfbuzzFont(); void deleteGlyphArrays(); @@ -522,22 +506,6 @@ private: unsigned m_letterSpacing; // pixels to be added after each glyph. }; - -// Indexed using enum CustomScript -const char* TextRunWalker::paths[] = { - "/system/fonts/Lohit-Bengali.ttf", - "/system/fonts/DroidSansDevanagari-Regular.ttf", - "/system/fonts/DroidSansHebrew-Regular.ttf", - "/system/fonts/DroidSansHebrew-Bold.ttf", - "/system/fonts/Lohit-Kannada.ttf", - "/system/fonts/AnjaliNewLipi-light.ttf", - "/system/fonts/DroidNaskh-Regular.ttf", - "/system/fonts/DroidSansTamil-Regular.ttf", - "/system/fonts/DroidSansTamil-Bold.ttf", - "/system/fonts/Lohit-Telugu.ttf", - "/system/fonts/DroidSansThai.ttf" -}; - TextRunWalker::TextRunWalker(const TextRun& run, int startingX, int startingY, const Font* font) : m_font(font) , m_startingX(startingX) @@ -692,7 +660,7 @@ void TextRunWalker::setWordAndLetterSpacing(int wordSpacingAdjustment, } const FontPlatformData* TextRunWalker::setupComplexFont( - CustomScript script, + FallbackScripts script, const FontPlatformData& platformData) { static FallbackHash fallbackPlatformData; @@ -703,15 +671,15 @@ const FontPlatformData* TextRunWalker::setupComplexFont( // italic, then bold italic. additional fake style bits can be added. int scriptStyleIndex = script; if (platformData.isFakeBold()) - scriptStyleIndex += NUM_SCRIPTS; + scriptStyleIndex += kFallbackScriptNumber; if (platformData.isFakeItalic()) - scriptStyleIndex += NUM_SCRIPTS << 1; + scriptStyleIndex += kFallbackScriptNumber << 1; FallbackFontKey key(scriptStyleIndex, platformData.size()); FontPlatformData* newPlatformData = 0; if (!fallbackPlatformData.contains(key)) { - SkTypeface* typeface = SkTypeface::CreateFromFile(paths[script]); + SkTypeface* typeface = SkCreateTypefaceForScript(script); newPlatformData = new FontPlatformData(platformData, typeface); SkSafeUnref(typeface); fallbackPlatformData.set(key, newPlatformData); @@ -733,51 +701,51 @@ void TextRunWalker::setupFontForScriptRun() switch (m_item.item.script) { case HB_Script_Bengali: - complexPlatformData = setupComplexFont(Bengali, platformData); + complexPlatformData = setupComplexFont(kBengali_FallbackScript, platformData); break; case HB_Script_Devanagari: - complexPlatformData = setupComplexFont(Devanagari, platformData); + complexPlatformData = setupComplexFont(kDevanagari_FallbackScript, platformData); break; case HB_Script_Hebrew: switch (platformData.typeface()->style()) { case SkTypeface::kBold: case SkTypeface::kBoldItalic: - complexPlatformData = setupComplexFont(HebrewBold, platformData); + complexPlatformData = setupComplexFont(kHebrewBold_FallbackScript, platformData); break; case SkTypeface::kNormal: case SkTypeface::kItalic: default: - complexPlatformData = setupComplexFont(Hebrew, platformData); + complexPlatformData = setupComplexFont(kHebrewRegular_FallbackScript, platformData); break; } break; case HB_Script_Kannada: - complexPlatformData = setupComplexFont(Kannada, platformData); + complexPlatformData = setupComplexFont(kKannada_FallbackScript, platformData); break; case HB_Script_Malayalam: - complexPlatformData = setupComplexFont(Malayalam, platformData); + complexPlatformData = setupComplexFont(kMalayalam_FallbackScript, platformData); break; case HB_Script_Arabic: - complexPlatformData = setupComplexFont(Naskh, platformData); + complexPlatformData = setupComplexFont(kArabic_FallbackScript, platformData); break; case HB_Script_Tamil: switch (platformData.typeface()->style()) { case SkTypeface::kBold: case SkTypeface::kBoldItalic: - complexPlatformData = setupComplexFont(TamilBold, platformData); + complexPlatformData = setupComplexFont(kTamilBold_FallbackScript, platformData); break; case SkTypeface::kNormal: case SkTypeface::kItalic: default: - complexPlatformData = setupComplexFont(Tamil, platformData); + complexPlatformData = setupComplexFont(kTamilRegular_FallbackScript, platformData); break; } break; case HB_Script_Telugu: - complexPlatformData = setupComplexFont(Telugu, platformData); + complexPlatformData = setupComplexFont(kTelugu_FallbackScript, platformData); break; case HB_Script_Thai: - complexPlatformData = setupComplexFont(Thai, platformData); + complexPlatformData = setupComplexFont(kThai_FallbackScript, platformData); break; default: // HB_Script_Common; includes Ethiopic |