| Index: chrome/renderer/render_view_linux.cc
|
| diff --git a/chrome/renderer/render_view_linux.cc b/chrome/renderer/render_view_linux.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0c6375f8e30bc38b79c973a13a6947119756c334
|
| --- /dev/null
|
| +++ b/chrome/renderer/render_view_linux.cc
|
| @@ -0,0 +1,94 @@
|
| +// 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 "chrome/renderer/render_view.h"
|
| +
|
| +#include "chrome/common/renderer_preferences.h"
|
| +#include "webkit/api/public/linux/WebFontRendering.h"
|
| +
|
| +using WebKit::WebFontRendering;
|
| +
|
| +static SkPaint::Hinting RendererPreferencesToSkiaHinting(
|
| + RendererPreferencesHintingEnum hinting) {
|
| + switch (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.hinting));
|
| + WebFontRendering::setLCDOrder(
|
| + RendererPreferencesToSkiaLCDOrder(prefs.subpixel_rendering));
|
| + WebFontRendering::setLCDOrientation(
|
| + RendererPreferencesToSkiaLCDOrientation(prefs.subpixel_rendering));
|
| + WebFontRendering::setAntiAlias(RendererPreferencesToAntiAliasFlag(prefs));
|
| + WebFontRendering::setSubpixelGlyphs(
|
| + RendererPreferencesToSubpixelGlyphsFlag(prefs));
|
| +}
|
|
|