Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1287)

Unified Diff: Source/core/platform/graphics/skia/FontCacheSkia.cpp

Issue 21353004: Use Skia for font selection on windows (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/platform/graphics/skia/FontCacheSkia.cpp
diff --git a/Source/core/platform/graphics/skia/FontCacheSkia.cpp b/Source/core/platform/graphics/skia/FontCacheSkia.cpp
index 14fafc3fa7f11255f74d9d27d798b213b1e154bc..cba5debca22aca4f0f88ad8c12ce825e70df82a5 100644
--- a/Source/core/platform/graphics/skia/FontCacheSkia.cpp
+++ b/Source/core/platform/graphics/skia/FontCacheSkia.cpp
@@ -46,6 +46,7 @@ void FontCache::platformInit()
{
}
+#if !OS(WINDOWS)
PassRefPtr<SimpleFontData> FontCache::getFontDataForCharacter(const Font& font, UChar32 c)
{
icu::Locale locale = icu::Locale::getDefault();
@@ -83,6 +84,8 @@ PassRefPtr<SimpleFontData> FontCache::getFontDataForCharacter(const Font& font,
return getFontResourceData(&platformData, DoNotRetain);
}
+#endif // !OS(WINDOWNS)
+
PassRefPtr<SimpleFontData> FontCache::getSimilarFontPlatformData(const Font& font)
{
return 0;
@@ -107,11 +110,9 @@ void FontCache::getTraitsInFamily(const AtomicString& familyName,
notImplemented();
}
-FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription,
- const AtomicString& family)
+SkTypeface* FontCache::createTypeface(const FontDescription& fontDescription, const AtomicString& family, CString& name)
{
- const char* name = 0;
- CString s;
+ name = "";
// If we're creating a fallback font (e.g. "-webkit-monospace"), convert the name into
// the fallback name (like "monospace") that fontconfig understands.
@@ -134,12 +135,9 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
break;
}
}
- if (!name)
- name = "";
} else {
// convert the name to utf8
- s = family.string().utf8();
- name = s.data();
+ name = family.string().utf8();
}
int style = SkTypeface::kNormal;
@@ -148,19 +146,26 @@ FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontD
if (fontDescription.italic())
style |= SkTypeface::kItalic;
- SkTypeface* tf = SkTypeface::CreateFromName(name, static_cast<SkTypeface::Style>(style));
+ return SkTypeface::CreateFromName(name.data(), static_cast<SkTypeface::Style>(style));
+}
+
+#if !OS(WINDOWS)
+FontPlatformData* FontCache::createFontPlatformData(const FontDescription& fontDescription, const AtomicString& family)
+{
+ CString name;
+ SkTypeface* tf = createTypeface(fontDescription, family, name);
if (!tf)
return 0;
- FontPlatformData* result =
- new FontPlatformData(tf,
- name,
- fontDescription.computedSize(),
- (style & SkTypeface::kBold) && !tf->isBold(),
- (style & SkTypeface::kItalic) && !tf->isItalic(),
- fontDescription.orientation());
+ FontPlatformData* result = new FontPlatformData(tf,
+ name.data(),
+ fontDescription.computedSize(),
+ fontDescription.weight() >= FontWeightBold && !tf->isBold(),
+ fontDescription.italic() && !tf->isItalic(),
+ fontDescription.orientation());
tf->unref();
return result;
}
+#endif // !OS(WINDOWNS)
} // namespace WebCore

Powered by Google App Engine
This is Rietveld 408576698