diff options
author | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-19 01:44:21 +0000 |
---|---|---|
committer | erg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-19 01:44:21 +0000 |
commit | 564e2e53d0e025aab57c02e55e30a3dcf0b3aa9b (patch) | |
tree | 51beb4986785509afe9f837ea2359e3c817a71f3 | |
parent | 29539696f99dab315ede049101c14681f62387f5 (diff) | |
download | chromium_src-564e2e53d0e025aab57c02e55e30a3dcf0b3aa9b.zip chromium_src-564e2e53d0e025aab57c02e55e30a3dcf0b3aa9b.tar.gz chromium_src-564e2e53d0e025aab57c02e55e30a3dcf0b3aa9b.tar.bz2 |
Plumb the font hinting settings from render_text_pango.cc to SkPaint.
This also doesn't fix the font hinting settings, but is another link in
plumbing from the user settings to the actual rendering.
BUG=318395
Review URL: https://codereview.chromium.org/110583007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@241749 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | ui/gfx/render_text.cc | 5 | ||||
-rw-r--r-- | ui/gfx/render_text.h | 1 | ||||
-rw-r--r-- | ui/gfx/render_text_pango.cc | 17 |
3 files changed, 23 insertions, 0 deletions
diff --git a/ui/gfx/render_text.cc b/ui/gfx/render_text.cc index e8e3436..bd590f0 100644 --- a/ui/gfx/render_text.cc +++ b/ui/gfx/render_text.cc @@ -168,6 +168,7 @@ SkiaTextRenderer::SkiaTextRenderer(Canvas* canvas) paint_.setAntiAlias(true); paint_.setSubpixelText(true); paint_.setLCDRenderText(true); + paint_.setHinting(SkPaint::kNormal_Hinting); bounds_.setEmpty(); } @@ -197,6 +198,10 @@ void SkiaTextRenderer::SetFontSmoothingSettings(bool enable_smoothing, paint_.setLCDRenderText(enable_lcd_text); } +void SkiaTextRenderer::SetFontHinting(SkPaint::Hinting hinting) { + paint_.setHinting(hinting); +} + void SkiaTextRenderer::SetTypeface(SkTypeface* typeface) { paint_.setTypeface(typeface); } diff --git a/ui/gfx/render_text.h b/ui/gfx/render_text.h index 8696d69..06d53f4 100644 --- a/ui/gfx/render_text.h +++ b/ui/gfx/render_text.h @@ -51,6 +51,7 @@ class SkiaTextRenderer { void SetDrawLooper(SkDrawLooper* draw_looper); void SetFontSmoothingSettings(bool enable_smoothing, bool enable_lcd_text); + void SetFontHinting(SkPaint::Hinting hinting); void SetTypeface(SkTypeface* typeface); void SetTextSize(SkScalar size); void SetFontFamilyWithStyle(const std::string& family, int font_style); diff --git a/ui/gfx/render_text_pango.cc b/ui/gfx/render_text_pango.cc index f120a5c..29f3ffd 100644 --- a/ui/gfx/render_text_pango.cc +++ b/ui/gfx/render_text_pango.cc @@ -399,6 +399,23 @@ void RenderTextPango::DrawVisualText(Canvas* canvas) { render_params.antialiasing, use_subpixel_rendering && !background_is_transparent()); + SkPaint::Hinting skia_hinting = SkPaint::kNormal_Hinting; + switch (render_params.hinting) { + case gfx::FontRenderParams::HINTING_NONE: + skia_hinting = SkPaint::kNo_Hinting; + break; + case gfx::FontRenderParams::HINTING_SLIGHT: + skia_hinting = SkPaint::kSlight_Hinting; + break; + case gfx::FontRenderParams::HINTING_MEDIUM: + skia_hinting = SkPaint::kNormal_Hinting; + break; + case gfx::FontRenderParams::HINTING_FULL: + skia_hinting = SkPaint::kFull_Hinting; + break; + } + renderer.SetFontHinting(skia_hinting); + // Temporarily apply composition underlines and selection colors. ApplyCompositionAndSelectionStyles(); |