diff options
author | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-19 00:43:36 +0000 |
---|---|---|
committer | jam@chromium.org <jam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-19 00:43:36 +0000 |
commit | 6091604d9afaa69457389d83f1a9d6453150e6f4 (patch) | |
tree | a008aad369c12d1d12f0adeb9fa276b9c8305e50 /content/renderer/render_view_linux.cc | |
parent | 611cc90419870d40c0048c01ce72def49b8b5dd3 (diff) | |
download | chromium_src-6091604d9afaa69457389d83f1a9d6453150e6f4.zip chromium_src-6091604d9afaa69457389d83f1a9d6453150e6f4.tar.gz chromium_src-6091604d9afaa69457389d83f1a9d6453150e6f4.tar.bz2 |
Move a bunch of remaining files from chrome\renderer to content\renderer.
TBR=avi
Review URL: http://codereview.chromium.org/6688047
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78781 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_view_linux.cc')
-rw-r--r-- | content/renderer/render_view_linux.cc | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/content/renderer/render_view_linux.cc b/content/renderer/render_view_linux.cc new file mode 100644 index 0000000..b8540a9 --- /dev/null +++ b/content/renderer/render_view_linux.cc @@ -0,0 +1,112 @@ +// Copyright (c) 2009 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "content/renderer/render_view.h" + +#include "content/common/renderer_preferences.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebFontRendering.h" + +using WebKit::WebFontRendering; + +static SkPaint::Hinting RendererPreferencesToSkiaHinting( + const RendererPreferences& prefs) { + if (!prefs.should_antialias_text) { + // When anti-aliasing is off, GTK maps all non-zero hinting settings to + // 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight' + // hinting selected will see readable text in everything expect Chromium. + switch (prefs.hinting) { + case RENDERER_PREFERENCES_HINTING_NONE: + return SkPaint::kNo_Hinting; + case RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT: + case RENDERER_PREFERENCES_HINTING_SLIGHT: + case RENDERER_PREFERENCES_HINTING_MEDIUM: + case RENDERER_PREFERENCES_HINTING_FULL: + return SkPaint::kNormal_Hinting; + default: + NOTREACHED(); + return SkPaint::kNormal_Hinting; + } + } + + switch (prefs.hinting) { + case RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT: + return SkPaint::kNormal_Hinting; + case RENDERER_PREFERENCES_HINTING_NONE: + return SkPaint::kNo_Hinting; + case RENDERER_PREFERENCES_HINTING_SLIGHT: + return SkPaint::kSlight_Hinting; + case RENDERER_PREFERENCES_HINTING_MEDIUM: + return SkPaint::kNormal_Hinting; + case RENDERER_PREFERENCES_HINTING_FULL: + return SkPaint::kFull_Hinting; + default: + NOTREACHED(); + return SkPaint::kNormal_Hinting; + } +} + +static SkFontHost::LCDOrder RendererPreferencesToSkiaLCDOrder( + RendererPreferencesSubpixelRenderingEnum subpixel) { + switch (subpixel) { + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB: + return SkFontHost::kRGB_LCDOrder; + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR: + return SkFontHost::kBGR_LCDOrder; + default: + NOTREACHED(); + return SkFontHost::kRGB_LCDOrder; + } +} + +static SkFontHost::LCDOrientation + RendererPreferencesToSkiaLCDOrientation( + RendererPreferencesSubpixelRenderingEnum subpixel) { + switch (subpixel) { + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR: + return SkFontHost::kHorizontal_LCDOrientation; + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB: + case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR: + return SkFontHost::kVertical_LCDOrientation; + default: + NOTREACHED(); + return SkFontHost::kHorizontal_LCDOrientation; + } +} + +static bool RendererPreferencesToAntiAliasFlag( + const RendererPreferences& prefs) { + return prefs.should_antialias_text; +} + +static bool RendererPreferencesToSubpixelGlyphsFlag( + const RendererPreferences& prefs) { + if (prefs.subpixel_rendering != + RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT && + prefs.subpixel_rendering != + RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE) { + return true; + } + + return false; +} + +void RenderView::UpdateFontRenderingFromRendererPrefs() { + const RendererPreferences& prefs = renderer_preferences_; + WebFontRendering::setHinting( + RendererPreferencesToSkiaHinting(prefs)); + WebFontRendering::setLCDOrder( + RendererPreferencesToSkiaLCDOrder(prefs.subpixel_rendering)); + WebFontRendering::setLCDOrientation( + RendererPreferencesToSkiaLCDOrientation(prefs.subpixel_rendering)); + WebFontRendering::setAntiAlias(RendererPreferencesToAntiAliasFlag(prefs)); + WebFontRendering::setSubpixelGlyphs( + RendererPreferencesToSubpixelGlyphsFlag(prefs)); +} |