diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/skia/FontSkia.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/skia/FontSkia.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/Source/WebCore/platform/graphics/skia/FontSkia.cpp b/Source/WebCore/platform/graphics/skia/FontSkia.cpp index 03f1417fb..c8097e349 100644 --- a/Source/WebCore/platform/graphics/skia/FontSkia.cpp +++ b/Source/WebCore/platform/graphics/skia/FontSkia.cpp @@ -31,6 +31,7 @@ #include "config.h" #include "Font.h" +#include "FontSmoothingMode.h" #include "GlyphBuffer.h" #include "GraphicsContext.h" #include "LayoutTestSupport.h" @@ -71,6 +72,16 @@ static void setupPaint(SkPaint* paint, const SimpleFontData* fontData, const Fon paint->setAutohinted(false); // freetype specific paint->setLCDRenderText(shouldSmoothFonts); paint->setSubpixelText(true); + +#if OS(DARWIN) + // When using CoreGraphics, disable hinting when webkit-font-smoothing:antialiased is used. + // See crbug.com/152304 + if (font->fontDescription().fontSmoothing() == Antialiased) + paint->setHinting(SkPaint::kNo_Hinting); +#endif + + if (font->fontDescription().textRenderingMode() == GeometricPrecision) + paint->setHinting(SkPaint::kNo_Hinting); } // TODO: This needs to be split into helper functions to better scope the @@ -120,8 +131,8 @@ void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font, for (int i = 0; i < numGlyphs; i++) { pos[i].set(x, y); - x += SkFloatToScalar(adv[i].width); - y += SkFloatToScalar(adv[i].height); + x += SkFloatToScalar(adv[i].width()); + y += SkFloatToScalar(adv[i].height()); } SkCanvas* canvas = gc->platformContext()->canvas(); |