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

Side by Side Diff: Source/core/platform/graphics/skia/FontCacheSkiaWin.cpp

Issue 26335002: Add runtime flag for using DirectWrite on windows (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007 Apple Computer, Inc. 2 * Copyright (C) 2006, 2007 Apple Computer, Inc.
3 * Copyright (c) 2006, 2007, 2008, 2009, 2012 Google Inc. All rights reserved. 3 * Copyright (c) 2006, 2007, 2008, 2009, 2012 Google Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 14 matching lines...) Expand all
25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 #include "config.h" 32 #include "config.h"
33 #include "core/platform/graphics/FontCache.h" 33 #include "core/platform/graphics/FontCache.h"
34 34
35 #include "RuntimeEnabledFeatures.h"
35 #include "SkFontMgr.h" 36 #include "SkFontMgr.h"
36 #include "SkTypeface_win.h" 37 #include "SkTypeface_win.h"
37 #include "platform/NotImplemented.h" 38 #include "platform/NotImplemented.h"
38 #include "core/platform/graphics/Font.h" 39 #include "core/platform/graphics/Font.h"
39 #include "core/platform/graphics/SimpleFontData.h" 40 #include "core/platform/graphics/SimpleFontData.h"
40 #include "core/platform/graphics/chromium/FontPlatformDataChromiumWin.h" 41 #include "core/platform/graphics/chromium/FontPlatformDataChromiumWin.h"
41 #include "core/platform/graphics/chromium/FontUtilsChromiumWin.h" 42 #include "core/platform/graphics/chromium/FontUtilsChromiumWin.h"
42 43
43 namespace WebCore { 44 namespace WebCore {
44 45
45 FontCache::FontCache() 46 FontCache::FontCache()
46 : m_purgePreventCount(0) 47 : m_purgePreventCount(0)
47 { 48 {
48 m_fontManager = adoptPtr(SkFontMgr_New_GDI()); 49 SkFontMgr* fontManager = 0;
50
51 // Prefer DirectWrite (if runtime feature is enabled) but fallback
52 // to GDI on platforms where DirectWrite is not supported.
53 if (RuntimeEnabledFeatures::directWriteEnabled())
54 fontManager = SkFontMgr_New_DirectWrite();
55 if (!fontManager)
56 fontManager = SkFontMgr_New_GDI();
57
58 m_fontManager = adoptPtr(fontManager);
49 } 59 }
50 60
51 61
52 static bool fontContainsCharacter(const FontPlatformData* fontData, const wchar_ t* family, UChar32 character) 62 static bool fontContainsCharacter(const FontPlatformData* fontData, const wchar_ t* family, UChar32 character)
53 { 63 {
54 SkPaint paint; 64 SkPaint paint;
55 fontData->setupPaint(&paint); 65 fontData->setupPaint(&paint);
56 paint.setTextEncoding(SkPaint::kUTF32_TextEncoding); 66 paint.setTextEncoding(SkPaint::kUTF32_TextEncoding);
57 67
58 uint16_t glyph; 68 uint16_t glyph;
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 name.data(), 220 name.data(),
211 fontDescription.computedSize(), 221 fontDescription.computedSize(),
212 fontDescription.weight() >= FontWeightBold && !tf->isBold(), 222 fontDescription.weight() >= FontWeightBold && !tf->isBold(),
213 fontDescription.italic() && !tf->isItalic(), 223 fontDescription.italic() && !tf->isItalic(),
214 fontDescription.orientation()); 224 fontDescription.orientation());
215 tf->unref(); 225 tf->unref();
216 return result; 226 return result;
217 } 227 }
218 228
219 } 229 }
OLDNEW
« Source/core/page/RuntimeEnabledFeatures.in ('K') | « Source/core/page/RuntimeEnabledFeatures.in ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698