summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-19 01:44:21 +0000
committererg@chromium.org <erg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-12-19 01:44:21 +0000
commit564e2e53d0e025aab57c02e55e30a3dcf0b3aa9b (patch)
tree51beb4986785509afe9f837ea2359e3c817a71f3
parent29539696f99dab315ede049101c14681f62387f5 (diff)
downloadchromium_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.cc5
-rw-r--r--ui/gfx/render_text.h1
-rw-r--r--ui/gfx/render_text_pango.cc17
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();