Changeset 96515 in webkit
- Timestamp:
- Oct 3, 2011 10:20:36 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r96512 r96515 1 2011-10-03 Mike Reed <reed@google.com> 2 3 respect other paint flags when setting flags for the font. No need to fiddle with DC(0) in paintSkiaText. 4 https://bugs.webkit.org/show_bug.cgi?id=69172 5 6 Reviewed by Stephen White. 7 8 No new tests. This is a cleanup/optimization, existing tests apply 9 10 * platform/graphics/skia/SkiaFontWin.cpp: 11 (WebCore::getDefaultGDITextFlags): 12 (WebCore::setupPaintForFont): 13 (WebCore::paintSkiaText): 14 1 15 2011-10-03 Andreas Kling <kling@webkit.org> 2 16 -
trunk/Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp
r95901 r96515 109 109 if (!gInited) { 110 110 BOOL enabled; 111 gFlags = 0; 111 112 if (SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &enabled, 0) && enabled) { 112 113 gFlags |= SkPaint::kAntiAlias_Flag; … … 141 142 SkSafeUnref(face); 142 143 143 uint32_t flags = paint->getFlags(); 144 // clear our flags initially, and then selectively set them 145 // based on the LOGFONT quality 146 flags &= SkPaint::kAntiAlias_Flag; 147 flags &= SkPaint::kLCDRenderText_Flag; 148 144 // turn lfQuality into text flags 145 uint32_t textFlags; 149 146 switch (info.lfQuality) { 150 147 case NONANTIALIASED_QUALITY: 148 textFlags = 0; 151 149 break; 152 150 case ANTIALIASED_QUALITY: 153 flags |= SkPaint::kAntiAlias_Flag;151 textFlags = SkPaint::kAntiAlias_Flag; 154 152 break; 155 153 case CLEARTYPE_QUALITY: 156 flags |= SkPaint::kAntiAlias_Flag; 157 flags |= SkPaint::kLCDRenderText_Flag; 154 textFlags = (SkPaint::kAntiAlias_Flag | SkPaint::kLCDRenderText_Flag); 158 155 break; 159 156 default: 160 flags |= getDefaultGDITextFlags(); 161 break; 162 } 157 textFlags = getDefaultGDITextFlags(); 158 break; 159 } 160 // only allow features that SystemParametersInfo allows 161 textFlags &= getDefaultGDITextFlags(); 163 162 164 163 // do this check after our switch on lfQuality 165 164 if (disableTextLCD(pcs)) 166 flags &= ~SkPaint::kLCDRenderText_Flag; 167 165 textFlags &= ~SkPaint::kLCDRenderText_Flag; 166 167 // now copy in just the text flags 168 uint32_t flags = paint->getFlags(); 169 flags &= ~(SkPaint::kAntiAlias_Flag | SkPaint::kLCDRenderText_Flag); 170 flags |= textFlags; 168 171 paint->setFlags(flags); 169 172 } … … 177 180 const SkPoint* origin) 178 181 { 179 HDC dc = GetDC(0);180 HGDIOBJ oldFont = SelectObject(dc, hfont);181 182 182 PlatformContextSkia* platformContext = context->platformContext(); 183 183 SkCanvas* canvas = platformContext->canvas(); … … 222 222 skiaDrawText(canvas, *origin, &paint, &glyphs[0], &advances[0], &offsets[0], numGlyphs); 223 223 } 224 225 SelectObject(dc, oldFont);226 ReleaseDC(0, dc);227 224 } 228 225
Note: See TracChangeset
for help on using the changeset viewer.