Index: Source/platform/fonts/win/FontCacheSkiaWin.cpp |
diff --git a/Source/platform/fonts/win/FontCacheSkiaWin.cpp b/Source/platform/fonts/win/FontCacheSkiaWin.cpp |
index 8851cd1ceedf31e060f192ee7d9cb2c370ba1f68..5802e0d5bb2386d18569b3e61b602cc141c0b959 100644 |
--- a/Source/platform/fonts/win/FontCacheSkiaWin.cpp |
+++ b/Source/platform/fonts/win/FontCacheSkiaWin.cpp |
@@ -42,10 +42,6 @@ |
namespace WebCore { |
-// Minimum size, in pixels, at which anti alias is enabled for certain |
-// scripts. Only applies to the Direct Write backend for now. |
-static const unsigned s_minSizeForComplexScriptsAntiAlias = 32; |
- |
FontCache::FontCache() |
: m_purgePreventCount(0) |
{ |
@@ -191,6 +187,40 @@ static bool typefacesMatchesFamily(const SkTypeface* tf, const AtomicString& fam |
return matchesRequestedFamily; |
} |
+// Minimum size, in pixels, at which anti alias is enabled for certain |
+// scripts. Only applies to the Direct Write backend for now. |
+static unsigned minSizeForAntiAlias(UScriptCode script) |
+{ |
+ switch (script) { |
+ case USCRIPT_TRADITIONAL_HAN: |
+ return 24; |
+ case USCRIPT_SIMPLIFIED_HAN: |
+ case USCRIPT_HIRAGANA: |
+ case USCRIPT_KATAKANA: |
+ case USCRIPT_KATAKANA_OR_HIRAGANA: |
+ case USCRIPT_HANGUL: |
+ case USCRIPT_BENGALI: |
+ return 16; |
+ case USCRIPT_THAI: |
+ case USCRIPT_HEBREW: |
+ case USCRIPT_ARABIC: |
+ case USCRIPT_DEVANAGARI: |
+ case USCRIPT_GURMUKHI: |
+ case USCRIPT_GUJARATI: |
+ case USCRIPT_TAMIL: |
+ case USCRIPT_TELUGU: |
+ case USCRIPT_KANNADA: |
+ case USCRIPT_GEORGIAN: |
+ case USCRIPT_ARMENIAN: |
+ case USCRIPT_THAANA: |
+ case USCRIPT_CANADIAN_ABORIGINAL: |
+ case USCRIPT_CHEROKEE: |
+ case USCRIPT_MONGOLIAN: |
+ default: |
+ return 0; |
+ } |
+} |
+ |
FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family, float fontSize) |
{ |
CString name; |
@@ -215,31 +245,9 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD |
fontDescription.orientation(), |
s_useSubpixelPositioning); |
- // FIXME: Turn this into a script to min-size table. |
- if (s_useDirectWrite |
- && (fontDescription.script() == USCRIPT_SIMPLIFIED_HAN |
- || fontDescription.script() == USCRIPT_TRADITIONAL_HAN |
- || fontDescription.script() == USCRIPT_HIRAGANA |
- || fontDescription.script() == USCRIPT_KATAKANA |
- || fontDescription.script() == USCRIPT_KATAKANA_OR_HIRAGANA |
- || fontDescription.script() == USCRIPT_HANGUL |
- || fontDescription.script() == USCRIPT_THAI |
- || fontDescription.script() == USCRIPT_HEBREW |
- || fontDescription.script() == USCRIPT_ARABIC |
- || fontDescription.script() == USCRIPT_DEVANAGARI |
- || fontDescription.script() == USCRIPT_BENGALI |
- || fontDescription.script() == USCRIPT_GURMUKHI |
- || fontDescription.script() == USCRIPT_GUJARATI |
- || fontDescription.script() == USCRIPT_TAMIL |
- || fontDescription.script() == USCRIPT_TELUGU |
- || fontDescription.script() == USCRIPT_KANNADA |
- || fontDescription.script() == USCRIPT_GEORGIAN |
- || fontDescription.script() == USCRIPT_ARMENIAN |
- || fontDescription.script() == USCRIPT_THAANA |
- || fontDescription.script() == USCRIPT_CANADIAN_ABORIGINAL |
- || fontDescription.script() == USCRIPT_CHEROKEE |
- || fontDescription.script() == USCRIPT_MONGOLIAN)) { |
- result->setMinSizeForAntiAlias(s_minSizeForComplexScriptsAntiAlias); |
+ if (s_useDirectWrite) { |
+ result->setMinSizeForAntiAlias( |
+ minSizeForAntiAlias(fontDescription.script())); |
} |
return result; |