summaryrefslogtreecommitdiffstats
path: root/ui/gfx/font_render_params_mac.cc
diff options
context:
space:
mode:
authorckocagil <ckocagil@chromium.org>2014-08-25 15:13:43 -0700
committerCommit bot <commit-bot@chromium.org>2014-08-25 22:15:23 +0000
commit04f49f48a13c337cb9eaef0146ec4f15ed91984a (patch)
tree8b4da16988c7abfcb15b1ec6b908f8cbdb418b42 /ui/gfx/font_render_params_mac.cc
parentf28421761b5b19f33c011b3ca016bdb88b858c63 (diff)
downloadchromium_src-04f49f48a13c337cb9eaef0146ec4f15ed91984a.zip
chromium_src-04f49f48a13c337cb9eaef0146ec4f15ed91984a.tar.gz
chromium_src-04f49f48a13c337cb9eaef0146ec4f15ed91984a.tar.bz2
Re-land: RenderTextHarfBuzz: Set font render parameters in font data functions
Originally landed at: https://codereview.chromium.org/480533002/ - Properly pass font render settings to Skia font data functions. Otherwise Skia always returns rounded values. - If subpixel positioning is off, round the glyph positions to match Pango's rounding logic. BUG=402715,402374,402347 TEST=On Linux, character positions in UI text (address bar, infobars, tab titles) should be identical with --enable-harfbuzz-rendertext and --disable-harfbuzz-rendertext. Review URL: https://codereview.chromium.org/484883003 Cr-Commit-Position: refs/heads/master@{#291767}
Diffstat (limited to 'ui/gfx/font_render_params_mac.cc')
-rw-r--r--ui/gfx/font_render_params_mac.cc38
1 files changed, 38 insertions, 0 deletions
diff --git a/ui/gfx/font_render_params_mac.cc b/ui/gfx/font_render_params_mac.cc
new file mode 100644
index 0000000..0062f3b1
--- /dev/null
+++ b/ui/gfx/font_render_params_mac.cc
@@ -0,0 +1,38 @@
+// Copyright 2014 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 "ui/gfx/font_render_params.h"
+
+#include "base/logging.h"
+#include "base/macros.h"
+
+namespace gfx {
+
+namespace {
+
+// Returns params that match SkiaTextRenderer's default render settings.
+FontRenderParams LoadDefaults() {
+ FontRenderParams params;
+ params.antialiasing = true;
+ params.autohinter = false;
+ params.use_bitmaps = true;
+ params.subpixel_rendering = FontRenderParams::SUBPIXEL_RENDERING_RGB;
+ params.subpixel_positioning = true;
+ params.hinting = FontRenderParams::HINTING_MEDIUM;
+
+ return params;
+}
+
+} // namespace
+
+FontRenderParams GetFontRenderParams(const FontRenderParamsQuery& query,
+ std::string* family_out) {
+ // TODO: Query the OS for font render settings instead of returning defaults.
+ if (!query.is_empty() || family_out)
+ NOTIMPLEMENTED();
+ CR_DEFINE_STATIC_LOCAL(const gfx::FontRenderParams, params, (LoadDefaults()));
+ return params;
+}
+
+} // namespace gfx