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

Side by Side Diff: chrome/renderer/render_view_linux.cc

Issue 159152: Linux: splice together RendererPreferences and SkFontHost (Closed)
Patch Set: ... Created 11 years, 5 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
OLDNEW
(Empty)
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/renderer/render_view.h"
6
7 #include "chrome/common/renderer_preferences.h"
8 #include "webkit/api/public/linux/WebFontRendering.h"
9
10 using WebKit::WebFontRendering;
11
12 static SkPaint::Hinting RendererPreferencesToSkiaHinting(
13 RendererPreferencesHintingEnum hinting) {
14 switch (hinting) {
15 case RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT:
16 return SkPaint::kNormal_Hinting;
17 case RENDERER_PREFERENCES_HINTING_NONE:
18 return SkPaint::kNo_Hinting;
19 case RENDERER_PREFERENCES_HINTING_SLIGHT:
20 return SkPaint::kSlight_Hinting;
21 case RENDERER_PREFERENCES_HINTING_MEDIUM:
22 return SkPaint::kNormal_Hinting;
23 case RENDERER_PREFERENCES_HINTING_FULL:
24 return SkPaint::kFull_Hinting;
25 default:
26 NOTREACHED();
27 return SkPaint::kNormal_Hinting;
28 }
29 }
30
31 static SkFontHost::LCDOrder RendererPreferencesToSkiaLCDOrder(
32 RendererPreferencesSubpixelRenderingEnum subpixel) {
33 switch (subpixel) {
34 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT:
35 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE:
36 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB:
37 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB:
38 return SkFontHost::kRGB_LCDOrder;
39 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR:
40 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR:
41 return SkFontHost::kBGR_LCDOrder;
42 default:
43 NOTREACHED();
44 return SkFontHost::kRGB_LCDOrder;
45 }
46 }
47
48 static SkFontHost::LCDOrientation
49 RendererPreferencesToSkiaLCDOrientation(
50 RendererPreferencesSubpixelRenderingEnum subpixel) {
51 switch (subpixel) {
52 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT:
53 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE:
54 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB:
55 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR:
56 return SkFontHost::kHorizontal_LCDOrientation;
57 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB:
58 case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR:
59 return SkFontHost::kVertical_LCDOrientation;
60 default:
61 NOTREACHED();
62 return SkFontHost::kHorizontal_LCDOrientation;
63 }
64 }
65
66 static bool RendererPreferencesToAntiAliasFlag(
67 const RendererPreferences& prefs) {
68 return prefs.should_antialias_text;
69 }
70
71 static bool RendererPreferencesToSubpixelGlyphsFlag(
72 const RendererPreferences& prefs) {
73 if (prefs.subpixel_rendering !=
74 RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT &&
75 prefs.subpixel_rendering !=
76 RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE) {
77 return true;
78 }
79
80 return false;
81 }
82
83 void RenderView::UpdateFontRenderingFromRendererPrefs() {
84 const RendererPreferences& prefs = renderer_preferences_;
85 WebFontRendering::setHinting(
86 RendererPreferencesToSkiaHinting(prefs.hinting));
87 WebFontRendering::setLCDOrder(
88 RendererPreferencesToSkiaLCDOrder(prefs.subpixel_rendering));
89 WebFontRendering::setLCDOrientation(
90 RendererPreferencesToSkiaLCDOrientation(prefs.subpixel_rendering));
91 WebFontRendering::setAntiAlias(RendererPreferencesToAntiAliasFlag(prefs));
92 WebFontRendering::setSubpixelGlyphs(
93 RendererPreferencesToSubpixelGlyphsFlag(prefs));
94 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698