Title: [96515] trunk/Source/WebCore
- Revision
- 96515
- Author
- r...@google.com
- Date
- 2011-10-03 10:20:36 -0700 (Mon, 03 Oct 2011)
Log Message
respect other paint flags when setting flags for the font. No need to fiddle with DC(0) in paintSkiaText.
https://bugs.webkit.org/show_bug.cgi?id=69172
Reviewed by Stephen White.
No new tests. This is a cleanup/optimization, existing tests apply
* platform/graphics/skia/SkiaFontWin.cpp:
(WebCore::getDefaultGDITextFlags):
(WebCore::setupPaintForFont):
(WebCore::paintSkiaText):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (96514 => 96515)
--- trunk/Source/WebCore/ChangeLog 2011-10-03 16:57:43 UTC (rev 96514)
+++ trunk/Source/WebCore/ChangeLog 2011-10-03 17:20:36 UTC (rev 96515)
@@ -1,3 +1,17 @@
+2011-10-03 Mike Reed <r...@google.com>
+
+ respect other paint flags when setting flags for the font. No need to fiddle with DC(0) in paintSkiaText.
+ https://bugs.webkit.org/show_bug.cgi?id=69172
+
+ Reviewed by Stephen White.
+
+ No new tests. This is a cleanup/optimization, existing tests apply
+
+ * platform/graphics/skia/SkiaFontWin.cpp:
+ (WebCore::getDefaultGDITextFlags):
+ (WebCore::setupPaintForFont):
+ (WebCore::paintSkiaText):
+
2011-10-03 Andreas Kling <kl...@webkit.org>
FontFallbackList: Glyph pages waste a lot of memory.
Modified: trunk/Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp (96514 => 96515)
--- trunk/Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp 2011-10-03 16:57:43 UTC (rev 96514)
+++ trunk/Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp 2011-10-03 17:20:36 UTC (rev 96515)
@@ -108,6 +108,7 @@
static uint32_t gFlags;
if (!gInited) {
BOOL enabled;
+ gFlags = 0;
if (SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &enabled, 0) && enabled) {
gFlags |= SkPaint::kAntiAlias_Flag;
@@ -140,31 +141,33 @@
paint->setTypeface(face);
SkSafeUnref(face);
- uint32_t flags = paint->getFlags();
- // clear our flags initially, and then selectively set them
- // based on the LOGFONT quality
- flags &= SkPaint::kAntiAlias_Flag;
- flags &= SkPaint::kLCDRenderText_Flag;
-
+ // turn lfQuality into text flags
+ uint32_t textFlags;
switch (info.lfQuality) {
case NONANTIALIASED_QUALITY:
+ textFlags = 0;
break;
case ANTIALIASED_QUALITY:
- flags |= SkPaint::kAntiAlias_Flag;
+ textFlags = SkPaint::kAntiAlias_Flag;
break;
case CLEARTYPE_QUALITY:
- flags |= SkPaint::kAntiAlias_Flag;
- flags |= SkPaint::kLCDRenderText_Flag;
+ textFlags = (SkPaint::kAntiAlias_Flag | SkPaint::kLCDRenderText_Flag);
break;
default:
- flags |= getDefaultGDITextFlags();
+ textFlags = getDefaultGDITextFlags();
break;
}
+ // only allow features that SystemParametersInfo allows
+ textFlags &= getDefaultGDITextFlags();
// do this check after our switch on lfQuality
if (disableTextLCD(pcs))
- flags &= ~SkPaint::kLCDRenderText_Flag;
+ textFlags &= ~SkPaint::kLCDRenderText_Flag;
+ // now copy in just the text flags
+ uint32_t flags = paint->getFlags();
+ flags &= ~(SkPaint::kAntiAlias_Flag | SkPaint::kLCDRenderText_Flag);
+ flags |= textFlags;
paint->setFlags(flags);
}
@@ -176,9 +179,6 @@
const GOFFSET* offsets,
const SkPoint* origin)
{
- HDC dc = GetDC(0);
- HGDIOBJ oldFont = SelectObject(dc, hfont);
-
PlatformContextSkia* platformContext = context->platformContext();
SkCanvas* canvas = platformContext->canvas();
TextDrawingModeFlags textMode = platformContext->getTextDrawingMode();
@@ -221,9 +221,6 @@
skiaDrawText(canvas, *origin, &paint, &glyphs[0], &advances[0], &offsets[0], numGlyphs);
}
-
- SelectObject(dc, oldFont);
- ReleaseDC(0, dc);
}
} // namespace WebCore
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes