Changeset 83941 in webkit


Ignore:
Timestamp:
Apr 14, 2011 8:52:23 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-04-14 Alok Priyadarshi <alokp@chromium.org>

Reviewed by James Robinson.

Remove dependency on chromium skia::PlatformCanvas
https://bugs.webkit.org/show_bug.cgi?id=57563

This patch does not change any functionality, just the type of object skia::PlatformCanvas -> SkCanvas. The object is still being created by a factory method skia::CreateBitmapCanvas defined in Chromium. We will eventually define an API that every port using skia will define.

  • platform/graphics/chromium/FontChromiumWin.cpp: (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI): (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter): (WebCore::Font::drawComplexText):
  • platform/graphics/chromium/ImageBufferDataSkia.h:
  • platform/graphics/chromium/LayerChromium.h:
  • platform/graphics/chromium/LayerRendererChromium.h:
  • platform/graphics/chromium/PlatformCanvas.cpp: (WebCore::PlatformCanvas::resize):
  • platform/graphics/chromium/PlatformCanvas.h:
  • platform/graphics/chromium/TransparencyWin.cpp: (WebCore::TransparencyWin::compositeTextComposite): (WebCore::TransparencyWin::makeLayerOpaque):
  • platform/graphics/skia/ImageBufferSkia.cpp: (WebCore::ImageBuffer::ImageBuffer):
  • platform/graphics/skia/ImageSkia.cpp: (WebCore::paintSkBitmap): (WebCore::Image::drawPattern):
  • platform/graphics/skia/PlatformContextSkia.cpp: (WebCore::PlatformContextSkia::PlatformContextSkia): (WebCore::PlatformContextSkia::setCanvas): (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed):
  • platform/graphics/skia/PlatformContextSkia.h: (WebCore::PlatformContextSkia::canvas): (WebCore::PlatformContextSkia::printing): (WebCore::PlatformContextSkia::setPrinting):

2011-04-14 Alok Priyadarshi <alokp@chromium.org>

Reviewed by James Robinson.

Remove dependency on chromium skia::PlatformCanvas
https://bugs.webkit.org/show_bug.cgi?id=57563

  • public/WebCanvas.h:
  • src/WebFrameImpl.cpp: (WebKit::WebFrameImpl::printPage):
  • tests/TransparencyWinTest.cpp: (WebCore::drawNativeRect): (WebCore::getPixelAt): (WebCore::clearTopLayerAlphaChannel): (WebCore::clearTopLayerAlphaPixel): (WebCore::TEST):

2011-04-14 Alok Priyadarshi <alokp@chromium.org>

Reviewed by James Robinson.

Remove dependency on chromium skia::PlatformCanvas
https://bugs.webkit.org/show_bug.cgi?id=57563

  • DumpRenderTree/chromium/TestShell.cpp: (makeCanvasOpaque): (TestShell::dumpImage):
  • DumpRenderTree/chromium/TestShell.h:
  • DumpRenderTree/chromium/WebThemeControlDRTWin.cpp: (WebThemeControlDRTWin::WebThemeControlDRTWin): (WebThemeControlDRTWin::draw): (WebThemeControlDRTWin::drawTextField): (WebThemeControlDRTWin::drawProgressBar):
  • DumpRenderTree/chromium/WebThemeControlDRTWin.h:
  • DumpRenderTree/chromium/WebViewHost.cpp: (WebViewHost::canvas):
  • DumpRenderTree/chromium/WebViewHost.h:
Location:
trunk
Files:
23 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r83940 r83941  
     12011-04-14  Alok Priyadarshi  <alokp@chromium.org>
     2
     3        Reviewed by James Robinson.
     4
     5        Remove dependency on chromium skia::PlatformCanvas
     6        https://bugs.webkit.org/show_bug.cgi?id=57563
     7
     8        This patch does not change any functionality, just the type of object skia::PlatformCanvas -> SkCanvas. The object is still being created by a factory method skia::CreateBitmapCanvas defined in Chromium. We will eventually define an API that every port using skia will define.
     9
     10        * platform/graphics/chromium/FontChromiumWin.cpp:
     11        (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::initializeForGDI):
     12        (WebCore::TransparencyAwareFontPainter::TransparencyAwareFontPainter::~TransparencyAwareFontPainter):
     13        (WebCore::Font::drawComplexText):
     14        * platform/graphics/chromium/ImageBufferDataSkia.h:
     15        * platform/graphics/chromium/LayerChromium.h:
     16        * platform/graphics/chromium/LayerRendererChromium.h:
     17        * platform/graphics/chromium/PlatformCanvas.cpp:
     18        (WebCore::PlatformCanvas::resize):
     19        * platform/graphics/chromium/PlatformCanvas.h:
     20        * platform/graphics/chromium/TransparencyWin.cpp:
     21        (WebCore::TransparencyWin::compositeTextComposite):
     22        (WebCore::TransparencyWin::makeLayerOpaque):
     23        * platform/graphics/skia/ImageBufferSkia.cpp:
     24        (WebCore::ImageBuffer::ImageBuffer):
     25        * platform/graphics/skia/ImageSkia.cpp:
     26        (WebCore::paintSkBitmap):
     27        (WebCore::Image::drawPattern):
     28        * platform/graphics/skia/PlatformContextSkia.cpp:
     29        (WebCore::PlatformContextSkia::PlatformContextSkia):
     30        (WebCore::PlatformContextSkia::setCanvas):
     31        (WebCore::PlatformContextSkia::isNativeFontRenderingAllowed):
     32        * platform/graphics/skia/PlatformContextSkia.h:
     33        (WebCore::PlatformContextSkia::canvas):
     34        (WebCore::PlatformContextSkia::printing):
     35        (WebCore::PlatformContextSkia::setPrinting):
     36
    1372011-04-14  Eric Seidel  <eric@webkit.org>
    238
  • trunk/Source/WebCore/platform/graphics/chromium/FontChromiumWin.cpp

    r83666 r83941  
    166166    // Set up the DC, using the one from the transparency helper.
    167167    if (m_transparency.platformContext()) {
    168         m_hdc = m_transparency.platformContext()->canvas()->beginPlatformPaint();
     168        m_hdc = skia::BeginPlatformPaint(m_transparency.platformContext()->canvas());
    169169        SetTextColor(m_hdc, skia::SkColorToCOLORREF(color));
    170170        SetBkMode(m_hdc, TRANSPARENT);
     
    180180        m_graphicsContext->endTransparencyLayer();
    181181    m_graphicsContext->restore();
    182     m_platformContext->canvas()->endPlatformPaint();
     182    skia::EndPlatformPaint(m_platformContext->canvas());
    183183}
    184184
     
    543543    state.draw(graphicsContext, hdc, lroundf(point.x()), lroundf(point.y() - fontMetrics().ascent()), from, to);
    544544
    545     context->canvas()->endPlatformPaint();
     545    skia::EndPlatformPaint(context->canvas());
    546546}
    547547
  • trunk/Source/WebCore/platform/graphics/chromium/ImageBufferDataSkia.h

    r83786 r83941  
    3939    ImageBufferData(const IntSize&);
    4040
    41     skia::PlatformCanvas m_canvas;
     41    OwnPtr<SkCanvas> m_canvas;
    4242    PlatformContextSkia m_platformContext;
    4343};
  • trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.h

    r83915 r83941  
    5151#include <wtf/text/WTFString.h>
    5252
    53 
    54 namespace skia {
    55 class PlatformCanvas;
    56 }
    57 
    5853namespace WebCore {
    5954
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h

    r83915 r83941  
    188188
    189189#if USE(SKIA)
    190     OwnPtr<skia::PlatformCanvas> m_rootLayerCanvas;
     190    OwnPtr<SkCanvas> m_rootLayerCanvas;
    191191    OwnPtr<PlatformContextSkia> m_rootLayerSkiaContext;
    192192    OwnPtr<GraphicsContext> m_rootLayerGraphicsContext;
  • trunk/Source/WebCore/platform/graphics/chromium/PlatformCanvas.cpp

    r83915 r83941  
    5353    m_size = size;
    5454#if USE(SKIA)
    55     m_skiaCanvas = new skia::PlatformCanvas(size.width(), size.height(), false);
     55    m_skiaCanvas = skia::CreateBitmapCanvas(size.width(), size.height(), false);
    5656#elif PLATFORM(CG)
    5757    size_t bufferSize = size.width() * size.height() * 4;
  • trunk/Source/WebCore/platform/graphics/chromium/PlatformCanvas.h

    r83915 r83941  
    4040
    4141#if USE(SKIA)
    42 namespace skia { class PlatformCanvas; }
    4342class SkBitmap;
     43class SkCanvas;
    4444#endif
    4545
     
    100100private:
    101101#if USE(SKIA)
    102     OwnPtr<skia::PlatformCanvas> m_skiaCanvas;
     102    OwnPtr<SkCanvas> m_skiaCanvas;
    103103#elif PLATFORM(CG)
    104104    OwnArrayPtr<uint8_t> m_pixelData;
  • trunk/Source/WebCore/platform/graphics/chromium/TransparencyWin.cpp

    r83666 r83941  
    5050const int maxCachedBufferPixelSize = 65536;
    5151
    52 inline skia::PlatformCanvas* canvasForContext(const GraphicsContext& context)
     52inline SkCanvas* canvasForContext(const GraphicsContext& context)
    5353{
    5454    return context.platformContext()->canvas();
     
    5757inline const SkBitmap& bitmapForContext(const GraphicsContext& context)
    5858{
    59     return canvasForContext(context)->getTopPlatformDevice().accessBitmap(false);
     59    return canvasForContext(context)->getTopDevice()->accessBitmap(false);
    6060}
    6161
     
    467467        return;
    468468
    469     const SkBitmap& bitmap = m_layerBuffer->context()->platformContext()->canvas()->getTopPlatformDevice().accessBitmap(true);
     469    const SkBitmap& bitmap = m_layerBuffer->context()->platformContext()->canvas()->getTopDevice()->accessBitmap(true);
    470470    SkColor textColor = m_textCompositeColor.rgb();
    471471    for (int y = 0; y < m_layerSize.height(); y++) {
     
    503503
    504504    SkBitmap& bitmap = const_cast<SkBitmap&>(m_drawContext->platformContext()->
    505         canvas()->getTopPlatformDevice().accessBitmap(true));
     505        canvas()->getTopDevice()->accessBitmap(true));
    506506    for (int y = 0; y < m_layerSize.height(); y++) {
    507507        uint32_t* row = bitmap.getAddr32(0, y);
  • trunk/Source/WebCore/platform/graphics/skia/ImageBufferSkia.cpp

    r83790 r83941  
    6767    , m_size(size)
    6868{
    69     if (!m_data.m_canvas.initialize(size.width(), size.height(), false)) {
     69    SkCanvas* canvas = skia::CreateBitmapCanvas(size.width(), size.height(), false);
     70    if (!canvas) {
    7071        success = false;
    7172        return;
    7273    }
    7374
    74     m_data.m_platformContext.setCanvas(&m_data.m_canvas);
     75    m_data.m_canvas = canvas;
     76    m_data.m_platformContext.setCanvas(m_data.m_canvas.get());
    7577    m_context.set(new GraphicsContext(&m_data.m_platformContext));
    7678    m_context->platformContext()->setDrawingToImageBuffer(true);
     
    7981    // required, but the canvas is currently filled with the magic transparency
    8082    // color. Can we have another way to manage this?
    81     m_data.m_canvas.drawARGB(0, 0, 0, 0, SkXfermode::kClear_Mode);
     83    m_data.m_canvas->drawARGB(0, 0, 0, 0, SkXfermode::kClear_Mode);
    8284    success = true;
    8385}
  • trunk/Source/WebCore/platform/graphics/skia/ImageSkia.cpp

    r83666 r83941  
    263263    paint.setLooper(platformContext->getDrawLooper());
    264264
    265     skia::PlatformCanvas* canvas = platformContext->canvas();
    266 
    267     ResamplingMode resampling = platformContext->isPrinting() ? RESAMPLE_NONE :
     265    SkCanvas* canvas = platformContext->canvas();
     266
     267    ResamplingMode resampling;
     268#if ENABLE(SKIA_GPU)
     269    resampling = RESAMPLE_LINEAR;
     270#else
     271    resampling = platformContext->printing() ? RESAMPLE_NONE :
    268272        computeResamplingMode(platformContext, bitmap, srcRect.width(), srcRect.height(),
    269273                              SkScalarToFloat(destRect.width()),
    270274                              SkScalarToFloat(destRect.height()));
     275#endif
    271276    if (resampling == RESAMPLE_AWESOME) {
    272277        drawResampledBitmap(*canvas, paint, bitmap, srcRect, destRect);
     
    364369    // Compute the resampling mode.
    365370    ResamplingMode resampling;
    366     if (context->platformContext()->isPrinting())
     371#if ENABLE(SKIA_GPU)
     372    resampling = RESAMPLE_LINEAR;
     373#else
     374    if (context->platformContext()->printing())
    367375      resampling = RESAMPLE_LINEAR;
    368376    else {
     
    371379                                         destBitmapWidth, destBitmapHeight);
    372380    }
     381#endif
    373382
    374383    // Load the transform WebKit requested.
  • trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.cpp

    r83733 r83941  
    214214
    215215// Danger: canvas can be NULL.
    216 PlatformContextSkia::PlatformContextSkia(skia::PlatformCanvas* canvas)
     216PlatformContextSkia::PlatformContextSkia(SkCanvas* canvas)
    217217    : m_canvas(canvas)
     218    , m_printing(false)
    218219    , m_drawingToImageBuffer(false)
    219220    , m_useGPU(false)
     
    241242}
    242243
    243 void PlatformContextSkia::setCanvas(skia::PlatformCanvas* canvas)
     244void PlatformContextSkia::setCanvas(SkCanvas* canvas)
    244245{
    245246    m_canvas = canvas;
     
    610611}
    611612
    612 bool PlatformContextSkia::isPrinting()
    613 {
    614 #if ENABLE(SKIA_GPU)
    615     return true;
    616 #else
    617     return m_canvas->getTopPlatformDevice().IsVectorial();
    618 #endif
    619 }
    620 
    621613bool PlatformContextSkia::isNativeFontRenderingAllowed()
    622614{
     
    624616    return false;
    625617#else
    626     return m_canvas->getTopPlatformDevice().IsNativeFontRenderingAllowed();
     618    return skia::SupportsPlatformPaint(m_canvas);
    627619#endif
    628620}
  • trunk/Source/WebCore/platform/graphics/skia/PlatformContextSkia.h

    r83666 r83941  
    7373    // For printing, there shouldn't be any canvas. canvas can be NULL. If you
    7474    // supply a NULL canvas, you can also call setCanvas later.
    75     PlatformContextSkia(skia::PlatformCanvas*);
     75    PlatformContextSkia(SkCanvas*);
    7676    ~PlatformContextSkia();
    7777
    7878    // Sets the canvas associated with this context. Use when supplying NULL
    7979    // to the constructor.
    80     void setCanvas(skia::PlatformCanvas*);
     80    void setCanvas(SkCanvas*);
    8181
    8282    // If false we're rendering to a GraphicsContext for a web page, if false
     
    148148
    149149    // Returns the canvas used for painting, NOT guaranteed to be non-null.
    150     skia::PlatformCanvas* canvas() { return m_canvas; }
     150    SkCanvas* canvas() { return m_canvas; }
    151151
    152152    InterpolationQuality interpolationQuality() const;
     
    164164    // context. Bitmap shouldn't be resampled when printing to keep the best
    165165    // possible quality.
    166     bool isPrinting();
     166    bool printing() const { return m_printing; }
     167    void setPrinting(bool p) { m_printing = p; }
    167168
    168169    // Returns if the context allows rendering of fonts using native platform
     
    186187#endif
    187188    // Call these before making a call that manipulates the underlying
    188     // skia::PlatformCanvas or WebCore::GLES2Canvas
     189    // SkCanvas or WebCore::GLES2Canvas
    189190    void prepareForSoftwareDraw() const;
    190191    void prepareForHardwareDraw() const;
    191     // Call to force the skia::PlatformCanvas to contain all rendering results.
     192    // Call to force the SkCanvas to contain all rendering results.
    192193    void syncSoftwareCanvas() const;
    193194    void markDirtyRect(const IntRect& rect);
     
    206207
    207208    // NULL indicates painting is disabled. Never delete this object.
    208     skia::PlatformCanvas* m_canvas;
     209    SkCanvas* m_canvas;
    209210
    210211    // States stack. Enables local drawing state change with save()/restore()
     
    219220    IntSize m_imageResamplingHintSrcSize;
    220221    FloatSize m_imageResamplingHintDstSize;
     222    bool m_printing;
    221223    bool m_drawingToImageBuffer;
    222224    bool m_useGPU;
  • trunk/Source/WebKit/chromium/ChangeLog

    r83935 r83941  
     12011-04-14  Alok Priyadarshi  <alokp@chromium.org>
     2
     3        Reviewed by James Robinson.
     4
     5        Remove dependency on chromium skia::PlatformCanvas
     6        https://bugs.webkit.org/show_bug.cgi?id=57563
     7
     8        * public/WebCanvas.h:
     9        * src/WebFrameImpl.cpp:
     10        (WebKit::WebFrameImpl::printPage):
     11        * tests/TransparencyWinTest.cpp:
     12        (WebCore::drawNativeRect):
     13        (WebCore::getPixelAt):
     14        (WebCore::clearTopLayerAlphaChannel):
     15        (WebCore::clearTopLayerAlphaPixel):
     16        (WebCore::TEST):
     17
    1182011-04-14  Brian Salomon  <bsalomon@google.com>
    219
  • trunk/Source/WebKit/chromium/public/WebCanvas.h

    r83666 r83941  
    3535
    3636#if WEBKIT_USING_SKIA
    37 namespace skia { class PlatformCanvas; }
     37class SkCanvas;
    3838#elif WEBKIT_USING_CG
    3939struct CGContext;
     
    4343
    4444#if WEBKIT_USING_SKIA
    45 typedef skia::PlatformCanvas WebCanvas;
     45typedef SkCanvas WebCanvas;
    4646#elif WEBKIT_USING_CG
    4747typedef struct CGContext WebCanvas;
  • trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp

    r83666 r83941  
    14101410    }
    14111411
    1412     return m_printContext->spoolPage(GraphicsContextBuilder(canvas).context(), page);
     1412    GraphicsContextBuilder builder(canvas);
     1413    GraphicsContext& gc = builder.context();
     1414#if WEBKIT_USING_SKIA
     1415    gc.platformContext()->setPrinting(true);
     1416#endif
     1417
     1418    return m_printContext->spoolPage(gc, page);
    14131419}
    14141420
  • trunk/Source/WebKit/chromium/tests/TransparencyWinTest.cpp

    r83666 r83941  
    5151                           int x, int y, int w, int h)
    5252{
    53     skia::PlatformCanvas* canvas = context->platformContext()->canvas();
    54     HDC dc = canvas->beginPlatformPaint();
     53    SkCanvas* canvas = context->platformContext()->canvas();
     54    HDC dc = skia::BeginPlatformPaint(canvas);
    5555
    5656    RECT innerRc;
     
    6262             reinterpret_cast<HBRUSH>(GetStockObject(BLACK_BRUSH)));
    6363
    64     canvas->endPlatformPaint();
     64    skia::EndPlatformPaint(canvas);
    6565}
    6666
    6767static Color getPixelAt(GraphicsContext* context, int x, int y)
    6868{
    69     const SkBitmap& bitmap = context->platformContext()->canvas()->
    70         getTopPlatformDevice().accessBitmap(false);
     69    const SkBitmap& bitmap = context->platformContext()->canvas()->getTopDevice()->accessBitmap(false);
    7170    return Color(*reinterpret_cast<const RGBA32*>(bitmap.getAddr32(x, y)));
    7271}
     
    7675static void clearTopLayerAlphaChannel(GraphicsContext* context)
    7776{
    78     SkBitmap& bitmap = const_cast<SkBitmap&>(context->platformContext()->
    79         canvas()->getTopPlatformDevice().accessBitmap(false));
     77    SkBitmap& bitmap = const_cast<SkBitmap&>(context->platformContext()->canvas()->getTopDevice()->accessBitmap(false));
    8078    for (int y = 0; y < bitmap.height(); y++) {
    8179        uint32_t* row = bitmap.getAddr32(0, y);
     
    8886static void clearTopLayerAlphaPixel(GraphicsContext* context, int x, int y)
    8987{
    90     SkBitmap& bitmap = const_cast<SkBitmap&>(context->platformContext()->
    91         canvas()->getTopPlatformDevice().accessBitmap(false));
     88    SkBitmap& bitmap = const_cast<SkBitmap&>(context->platformContext()->canvas()->getTopDevice()->accessBitmap(false));
    9289    *bitmap.getAddr32(x, y) &= 0x00FFFFFF;
    9390}
     
    560557        // clearTopLayerAlphaChannel because that will actually clear the whole
    561558        // canvas (since we have no extra layer!).
    562         SkBitmap& bitmap = const_cast<SkBitmap&>(helper.context()->
    563             platformContext()->canvas()->getTopPlatformDevice().
    564             accessBitmap(false));
     559        SkBitmap& bitmap = const_cast<SkBitmap&>(helper.context()->platformContext()->canvas()->getTopDevice()->accessBitmap(false));
    565560        *bitmap.getAddr32(2, 2) &= 0x00FFFFFF;
    566561        helper.composite();
  • trunk/Tools/ChangeLog

    r83928 r83941  
     12011-04-14  Alok Priyadarshi  <alokp@chromium.org>
     2
     3        Reviewed by James Robinson.
     4
     5        Remove dependency on chromium skia::PlatformCanvas
     6        https://bugs.webkit.org/show_bug.cgi?id=57563
     7
     8        * DumpRenderTree/chromium/TestShell.cpp:
     9        (makeCanvasOpaque):
     10        (TestShell::dumpImage):
     11        * DumpRenderTree/chromium/TestShell.h:
     12        * DumpRenderTree/chromium/WebThemeControlDRTWin.cpp:
     13        (WebThemeControlDRTWin::WebThemeControlDRTWin):
     14        (WebThemeControlDRTWin::draw):
     15        (WebThemeControlDRTWin::drawTextField):
     16        (WebThemeControlDRTWin::drawProgressBar):
     17        * DumpRenderTree/chromium/WebThemeControlDRTWin.h:
     18        * DumpRenderTree/chromium/WebViewHost.cpp:
     19        (WebViewHost::canvas):
     20        * DumpRenderTree/chromium/WebViewHost.h:
     21
    1222011-04-14  Keith Kyzivat  <keith.kyzivat@nokia.com>
    223
  • trunk/Tools/DumpRenderTree/chromium/TestShell.cpp

    r82481 r83941  
    5151#include "WebView.h"
    5252#include "WebViewHost.h"
    53 #include "skia/ext/bitmap_platform_device.h"
    5453#include "skia/ext/platform_canvas.h"
    5554#include "webkit/support/webkit_support.h"
     
    7776static const char dataUrlPattern[] = "data:";
    7877static const string::size_type dataUrlPatternSize = sizeof(dataUrlPattern) - 1;
     78
     79// FIXME: Move this to a common place so that it can be shared with
     80// WebCore::TransparencyWin::makeLayerOpaque().
     81static void makeCanvasOpaque(SkCanvas* canvas)
     82{
     83    const SkBitmap& bitmap = canvas->getTopDevice()->accessBitmap(true);
     84    ASSERT(bitmap.config() == SkBitmap::kARGB_8888_Config);
     85
     86    SkAutoLockPixels lock(bitmap);
     87    for (int y = 0; y < bitmap.height(); y++) {
     88        uint32_t* row = bitmap.getAddr32(0, y);
     89        for (int x = 0; x < bitmap.width(); x++)
     90            row[x] |= 0xFF000000; // Set alpha bits to 1.
     91    }
     92}
    7993
    8094TestShell::TestShell(bool testShellMode)
     
    517531}
    518532
    519 void TestShell::dumpImage(skia::PlatformCanvas* canvas) const
    520 {
    521     skia::BitmapPlatformDevice& device =
    522         static_cast<skia::BitmapPlatformDevice&>(canvas->getTopPlatformDevice());
    523     const SkBitmap& sourceBitmap = device.accessBitmap(false);
    524 
    525     SkAutoLockPixels sourceBitmapLock(sourceBitmap);
    526 
     533void TestShell::dumpImage(SkCanvas* canvas) const
     534{
    527535    // Fix the alpha. The expected PNGs on Mac have an alpha channel, so we want
    528536    // to keep it. On Windows, the alpha channel is wrong since text/form control
     
    534542#else
    535543    bool discardTransparency = true;
    536     device.makeOpaque(0, 0, sourceBitmap.width(), sourceBitmap.height());
     544    makeCanvasOpaque(canvas);
    537545#endif
     546
     547    const SkBitmap& sourceBitmap = canvas->getTopDevice()->accessBitmap(false);
     548    SkAutoLockPixels sourceBitmapLock(sourceBitmap);
    538549
    539550    // Compute MD5 sum.
  • trunk/Tools/DumpRenderTree/chromium/TestShell.h

    r81603 r83941  
    5555class WebURL;
    5656}
    57 namespace skia {
    58 class PlatformCanvas;
    59 }
    6057
    6158class DRTDevToolsAgent;
     
    183180    void dump();
    184181    std::string dumpAllBackForwardLists();
    185     void dumpImage(skia::PlatformCanvas*) const;
     182    void dumpImage(SkCanvas*) const;
    186183
    187184    bool m_testIsPending;
  • trunk/Tools/DumpRenderTree/chromium/WebThemeControlDRTWin.cpp

    r74421 r83941  
    4747
    4848using namespace std;
    49 using namespace skia;
    5049
    5150static const SkColor edgeColor     = SK_ColorBLACK;
     
    9493// WebThemeControlDRTWin
    9594
    96 WebThemeControlDRTWin::WebThemeControlDRTWin(PlatformCanvas* canvas,
     95WebThemeControlDRTWin::WebThemeControlDRTWin(SkCanvas* canvas,
    9796                                             const SkIRect& irect,
    9897                                             Type ctype,
     
    305304    const int sliderIndent = 2;
    306305
    307     m_canvas->beginPlatformPaint();
     306    skia::BeginPlatformPaint(m_canvas);
    308307
    309308    switch (m_type) {
     
    476475
    477476    markState();
    478     m_canvas->endPlatformPaint();
     477    skia::EndPlatformPaint(m_canvas);
    479478}
    480479
     
    486485    SkPaint paint;
    487486
    488     m_canvas->beginPlatformPaint();
     487    skia::BeginPlatformPaint(m_canvas);
    489488    if (fillContentArea) {
    490489        paint.setColor(color);
     
    499498
    500499    markState();
    501     m_canvas->endPlatformPaint();
     500    skia::EndPlatformPaint(m_canvas);
    502501}
    503502
     
    506505    SkPaint paint;
    507506
    508     m_canvas->beginPlatformPaint();
     507    skia::BeginPlatformPaint(m_canvas);
    509508    paint.setColor(m_bgColor);
    510509    paint.setStyle(SkPaint::kFill_Style);
     
    519518
    520519    markState();
    521     m_canvas->endPlatformPaint();
    522 }
    523 
     520    skia::EndPlatformPaint(m_canvas);
     521}
     522
  • trunk/Tools/DumpRenderTree/chromium/WebThemeControlDRTWin.h

    r76248 r83941  
    121121    };
    122122
    123     // canvas is the canvas to draw onto, and rect gives the size of the
    124     // control. ctype and cstate specify the type and state of the control.
    125     WebThemeControlDRTWin(skia::PlatformCanvas* canvas,
    126                           const SkIRect& rect,
    127                           Type ctype,
    128                           State cstate);
     123    // Constructs a control of the given size, type and state to draw
     124    // on to the given canvas.
     125    WebThemeControlDRTWin(SkCanvas*, const SkIRect&, Type, State);
    129126    ~WebThemeControlDRTWin();
    130127
     
    185182    void markState();
    186183
    187     skia::PlatformCanvas* m_canvas;
     184    SkCanvas* m_canvas;
    188185    const SkIRect m_irect;
    189186    const Type m_type;
  • trunk/Tools/DumpRenderTree/chromium/WebViewHost.cpp

    r83632 r83941  
    6767using namespace WebCore;
    6868using namespace WebKit;
    69 using namespace skia;
    7069using namespace std;
    7170
     
    15131512}
    15141513
    1515 PlatformCanvas* WebViewHost::canvas()
     1514SkCanvas* WebViewHost::canvas()
    15161515{
    15171516    if (m_canvas)
     
    15191518    WebSize widgetSize = webWidget()->size();
    15201519    resetScrollRect();
    1521     m_canvas.set(new PlatformCanvas(widgetSize.width, widgetSize.height, true));
     1520    m_canvas.set(skia::CreateBitmapCanvas(
     1521        widgetSize.width, widgetSize.height, true));
    15221522    return m_canvas.get();
    15231523}
  • trunk/Tools/DumpRenderTree/chromium/WebViewHost.h

    r83632 r83941  
    4646
    4747class LayoutTestController;
     48class SkCanvas;
    4849class TestShell;
     50
    4951namespace WebKit {
    5052class WebFrame;
     
    6163struct WebURLError;
    6264struct WebWindowFeatures;
    63 }
    64 namespace skia {
    65 class PlatformCanvas;
    6665}
    6766
     
    8887    void updatePaintRect(const WebKit::WebRect&);
    8988    void paintInvalidatedRegion();
    90     skia::PlatformCanvas* canvas();
     89    SkCanvas* canvas();
    9190    void displayRepaintMask();
    9291
     
    334333
    335334    // Painting.
    336     OwnPtr<skia::PlatformCanvas> m_canvas;
     335    OwnPtr<SkCanvas> m_canvas;
    337336    WebKit::WebRect m_paintRect;
    338337    bool m_isPainting;
Note: See TracChangeset for help on using the changeset viewer.