Skip to content
  • commit-queue@webkit.org's avatar
    [skia] Track a simple opaque area when painting via PlatformContextSkia and... · 965f1bcf
    commit-queue@webkit.org authored
    [skia] Track a simple opaque area when painting via PlatformContextSkia and save in LayerTextureUpdater
    https://bugs.webkit.org/show_bug.cgi?id=74352
    
    Patch by Dana Jansens <danakj@chromium.org> on 2012-01-12
    Reviewed by Stephen White.
    
    Source/WebCore:
    
    New unit tests in PlatformContextSkiaTest.cpp
    
    * WebCore.gypi:
    * platform/graphics/skia/GraphicsContextSkia.cpp:
    (WebCore::GraphicsContext::clearRect):
    (WebCore::GraphicsContext::drawConvexPolygon):
    (WebCore::GraphicsContext::drawEllipse):
    (WebCore::drawOuterPath):
    (WebCore::drawInnerPath):
    (WebCore::GraphicsContext::drawFocusRing):
    (WebCore::GraphicsContext::drawLine):
    (WebCore::GraphicsContext::drawLineForTextChecking):
    (WebCore::GraphicsContext::drawLineForText):
    (WebCore::GraphicsContext::fillPath):
    (WebCore::GraphicsContext::fillRect):
    (WebCore::GraphicsContext::fillRoundedRect):
    (WebCore::GraphicsContext::strokeArc):
    (WebCore::GraphicsContext::strokePath):
    (WebCore::GraphicsContext::strokeRect):
    * platform/graphics/skia/ImageSkia.cpp:
    (WebCore::paintSkBitmap):
    * platform/graphics/skia/OpaqueRegionSkia.cpp: Added.
    (WebCore::OpaqueRegionSkia::OpaqueRegionSkia):
    (WebCore::OpaqueRegionSkia::~OpaqueRegionSkia):
    (WebCore::OpaqueRegionSkia::asRect):
    (WebCore::xfermodeIsOpaque):
    (WebCore::xfermodePreservesOpaque):
    (WebCore::paintIsOpaque):
    (WebCore::OpaqueRegionSkia::didDrawRect):
    (WebCore::OpaqueRegionSkia::didDrawPath):
    (WebCore::OpaqueRegionSkia::didDrawPoints):
    (WebCore::OpaqueRegionSkia::didDrawBounded):
    (WebCore::OpaqueRegionSkia::didDraw):
    (WebCore::OpaqueRegionSkia::didDrawUnbounded):
    (WebCore::OpaqueRegionSkia::markRectAsOpaque):
    (WebCore::OpaqueRegionSkia::markRectAsNonOpaque):
    * platform/graphics/skia/OpaqueRegionSkia.h: Added.
    * platform/graphics/skia/PlatformContextSkia.cpp:
    (WebCore::PlatformContextSkia::PlatformContextSkia):
    (WebCore::PlatformContextSkia::clippedToImage):
    (WebCore::PlatformContextSkia::drawRect):
    (WebCore::PlatformContextSkia::paintSkPaint):
    (WebCore::PlatformContextSkia::didDrawRect):
    (WebCore::PlatformContextSkia::didDrawPath):
    (WebCore::PlatformContextSkia::didDrawPoints):
    (WebCore::PlatformContextSkia::didDrawBounded):
    * platform/graphics/skia/PlatformContextSkia.h:
    (WebCore::PlatformContextSkia::setTrackOpaqueRegion):
    (WebCore::PlatformContextSkia::opaqueRegion):
    
    Source/WebKit/chromium:
    
    * WebKit.gypi:
    * tests/PlatformContextSkiaTest.cpp: Added.
    (WebCore::TEST):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@104861 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    965f1bcf