Changeset 96515 in webkit


Ignore:
Timestamp:
Oct 3, 2011 10:20:36 AM (12 years ago)
Author:
reed@google.com
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):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r96512 r96515  
     12011-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
    1152011-10-03  Andreas Kling  <kling@webkit.org>
    216
  • trunk/Source/WebCore/platform/graphics/skia/SkiaFontWin.cpp

    r95901 r96515  
    109109    if (!gInited) {
    110110        BOOL enabled;
     111        gFlags = 0;
    111112        if (SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, &enabled, 0) && enabled) {
    112113            gFlags |= SkPaint::kAntiAlias_Flag;
     
    141142    SkSafeUnref(face);
    142143
    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;
    149146    switch (info.lfQuality) {
    150147    case NONANTIALIASED_QUALITY:
     148        textFlags = 0;
    151149        break;
    152150    case ANTIALIASED_QUALITY:
    153         flags |= SkPaint::kAntiAlias_Flag;
     151        textFlags = SkPaint::kAntiAlias_Flag;
    154152        break;
    155153    case CLEARTYPE_QUALITY:
    156         flags |= SkPaint::kAntiAlias_Flag;
    157         flags |= SkPaint::kLCDRenderText_Flag;
     154        textFlags = (SkPaint::kAntiAlias_Flag | SkPaint::kLCDRenderText_Flag);
    158155        break;
    159156    default:
    160         flags |= getDefaultGDITextFlags();
    161         break;
    162     }
     157        textFlags = getDefaultGDITextFlags();
     158        break;
     159    }
     160    // only allow features that SystemParametersInfo allows
     161    textFlags &= getDefaultGDITextFlags();
    163162
    164163    // do this check after our switch on lfQuality
    165164    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;
    168171    paint->setFlags(flags);
    169172}
     
    177180                   const SkPoint* origin)
    178181{
    179     HDC dc = GetDC(0);
    180     HGDIOBJ oldFont = SelectObject(dc, hfont);
    181 
    182182    PlatformContextSkia* platformContext = context->platformContext();
    183183    SkCanvas* canvas = platformContext->canvas();
     
    222222        skiaDrawText(canvas, *origin, &paint, &glyphs[0], &advances[0], &offsets[0], numGlyphs);
    223223    }
    224 
    225     SelectObject(dc, oldFont);
    226     ReleaseDC(0, dc);
    227224}
    228225
Note: See TracChangeset for help on using the changeset viewer.