| Index: src/ports/SkFontHost_android.cpp
|
| diff --git a/src/ports/SkFontHost_android.cpp b/src/ports/SkFontHost_android.cpp
|
| index 37495e7a10e2f5077135cc53a22943b4a3488d31..ce478def6bad336527ae30321f8201f59dd428c9 100644
|
| --- a/src/ports/SkFontHost_android.cpp
|
| +++ b/src/ports/SkFontHost_android.cpp
|
| @@ -878,40 +878,6 @@ SkTypeface* SkFontHost::CreateTypefaceFromFile(const char path[]) {
|
| // Function from SkTypeface_android.h
|
| ///////////////////////////////////////////////////////////////////////////////
|
|
|
| -struct FBScriptInfo {
|
| - const FallbackScripts fScript;
|
| - const char* fScriptID;
|
| - const SkTypeface::Style fStyle;
|
| - const SkUnichar fChar; // representative character for that script type
|
| - SkFontID fFontID;
|
| -};
|
| -
|
| -#define SK_DEFINE_SCRIPT_ENTRY(script, style, unichar) \
|
| - { script, #script, style, unichar, 0 }
|
| -
|
| -static FBScriptInfo gFBScriptInfo[] = {
|
| - SK_DEFINE_SCRIPT_ENTRY(kArabic_FallbackScript, SkTypeface::kNormal, 0x0627),
|
| - SK_DEFINE_SCRIPT_ENTRY(kArmenian_FallbackScript, SkTypeface::kNormal, 0x0531),
|
| - SK_DEFINE_SCRIPT_ENTRY(kBengali_FallbackScript, SkTypeface::kNormal, 0x0981),
|
| - SK_DEFINE_SCRIPT_ENTRY(kDevanagari_FallbackScript, SkTypeface::kNormal, 0x0901),
|
| - SK_DEFINE_SCRIPT_ENTRY(kEthiopic_FallbackScript, SkTypeface::kNormal, 0x1200),
|
| - SK_DEFINE_SCRIPT_ENTRY(kGeorgian_FallbackScript, SkTypeface::kNormal, 0x10A0),
|
| - SK_DEFINE_SCRIPT_ENTRY(kHebrewRegular_FallbackScript, SkTypeface::kNormal, 0x0591),
|
| - SK_DEFINE_SCRIPT_ENTRY(kHebrewBold_FallbackScript, SkTypeface::kBold, 0x0591),
|
| - SK_DEFINE_SCRIPT_ENTRY(kKannada_FallbackScript, SkTypeface::kNormal, 0x0C90),
|
| - SK_DEFINE_SCRIPT_ENTRY(kMalayalam_FallbackScript, SkTypeface::kNormal, 0x0D10),
|
| - SK_DEFINE_SCRIPT_ENTRY(kTamilRegular_FallbackScript, SkTypeface::kNormal, 0x0B82),
|
| - SK_DEFINE_SCRIPT_ENTRY(kTamilBold_FallbackScript, SkTypeface::kBold, 0x0B82),
|
| - SK_DEFINE_SCRIPT_ENTRY(kThai_FallbackScript, SkTypeface::kNormal, 0x0E01),
|
| - SK_DEFINE_SCRIPT_ENTRY(kTelugu_FallbackScript, SkTypeface::kNormal, 0x0C10),
|
| -};
|
| -
|
| -static bool gFBScriptInitialized = false;
|
| -static const int gFBScriptInfoCount = sizeof(gFBScriptInfo) / sizeof(FBScriptInfo);
|
| -
|
| -// ensure that if any value is added to the public enum it is also added here
|
| -SK_COMPILE_ASSERT(gFBScriptInfoCount == kFallbackScriptNumber, FBScript_count_mismatch);
|
| -
|
| // this function can't be called if the gFamilyHeadAndNameListMutex is already locked
|
| static bool typefaceContainsChar(SkTypeface* face, SkUnichar uni) {
|
| SkPaint paint;
|
| @@ -940,103 +906,6 @@ static SkTypeface* findFallbackTypefaceForChar(SkUnichar uni) {
|
| return 0;
|
| }
|
|
|
| -// this function can't be called if the gFamilyHeadAndNameListMutex is already locked
|
| -static SkFontID findFallbackFontIDForChar(SkUnichar uni, SkTypeface::Style style) {
|
| - const SkTypeface* tf = findFallbackTypefaceForChar(uni);
|
| - if (!tf) {
|
| - return 0;
|
| - }
|
| - return find_typeface(tf, style)->uniqueID();
|
| -}
|
| -
|
| -// this function can't be called if the gFamilyHeadAndNameListMutex is already locked
|
| -static void initFBScriptInfo() {
|
| - if (gFBScriptInitialized) {
|
| - return;
|
| - }
|
| -
|
| - // ensure the system fonts are loaded
|
| - gFamilyHeadAndNameListMutex.acquire();
|
| - load_system_fonts();
|
| - gFamilyHeadAndNameListMutex.release();
|
| -
|
| - for (int i = 0; i < gFBScriptInfoCount; i++) {
|
| - FBScriptInfo& scriptInfo = gFBScriptInfo[i];
|
| - // selects the best available style for the desired font. However, if
|
| - // bold is requested and no bold font exists for the typeface containing
|
| - // the character the next best style is chosen (e.g. normal).
|
| - scriptInfo.fFontID = findFallbackFontIDForChar(scriptInfo.fChar, scriptInfo.fStyle);
|
| -#if SK_DEBUG_FONTS
|
| - SkDebugf("gFBScriptInfo[%s] --> %d", scriptInfo.fScriptID, scriptInfo.fFontID);
|
| -#endif
|
| - }
|
| - // mark the value as initialized so we don't repeat our work unnecessarily
|
| - gFBScriptInitialized = true;
|
| -}
|
| -
|
| -SkTypeface* SkCreateTypefaceForScript(FallbackScripts script) {
|
| - if (!SkTypeface_ValidScript(script)) {
|
| - return NULL;
|
| - }
|
| -
|
| - // ensure that our table is populated
|
| - initFBScriptInfo();
|
| -
|
| - FBScriptInfo& scriptInfo = gFBScriptInfo[script];
|
| -
|
| - // ensure the element with that index actually maps to the correct script
|
| - SkASSERT(scriptInfo.fScript == script);
|
| -
|
| - // if a suitable script could not be found then return NULL
|
| - if (scriptInfo.fFontID == 0) {
|
| - return NULL;
|
| - }
|
| -
|
| - SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex);
|
| -
|
| - // retrieve the typeface the corresponds to this fontID
|
| - SkTypeface* tf = find_from_uniqueID(scriptInfo.fFontID);
|
| - // we ref(), since the semantic is to return a new instance
|
| - tf->ref();
|
| - return tf;
|
| -}
|
| -
|
| -const char* SkGetFallbackScriptID(FallbackScripts script) {
|
| - for (int i = 0; i < gFBScriptInfoCount; i++) {
|
| - if (gFBScriptInfo[i].fScript == script) {
|
| - return gFBScriptInfo[i].fScriptID;
|
| - }
|
| - }
|
| - return NULL;
|
| -}
|
| -
|
| -FallbackScripts SkGetFallbackScriptFromID(const char* id) {
|
| - for (int i = 0; i < gFBScriptInfoCount; i++) {
|
| - if (strcmp(gFBScriptInfo[i].fScriptID, id) == 0) {
|
| - return gFBScriptInfo[i].fScript;
|
| - }
|
| - }
|
| - return kFallbackScriptNumber; // Use kFallbackScriptNumber as an invalid value.
|
| -}
|
| -
|
| -SkTypeface* SkCreateFallbackTypefaceForChar(SkUnichar uni,
|
| - SkTypeface::Style style) {
|
| - {
|
| - SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex);
|
| - load_system_fonts();
|
| - }
|
| -
|
| - SkTypeface* tf = findFallbackTypefaceForChar(uni);
|
| - if (!tf) {
|
| - return NULL;
|
| - }
|
| - SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex);
|
| - tf = find_typeface(tf, style);
|
| - // we ref(), since the semantic is to return a new instance
|
| - tf->ref();
|
| - return tf;
|
| -}
|
| -
|
| bool SkGetFallbackFamilyNameForChar(SkUnichar uni, SkString* name) {
|
| SkASSERT(name);
|
| {
|
|
|