[chromium] Decide occlusion in paint culling with CCOcclusionTracker
https://bugs.webkit.org/show_bug.cgi?id=81181
Patch by Dana Jansens <danakj@chromium.org> on 2012-03-15
Reviewed by Adrienne Walker.
Source/WebCore:
Plumb a CCOcclusionTracker* around instead of a bare Region, so that it
can make a more informed decision if a tile is occluded or not during
paint.
Covered by existing tests.
* platform/graphics/chromium/Canvas2DLayerChromium.cpp:
(WebCore::Canvas2DLayerChromium::paintContentsIfDirty):
* platform/graphics/chromium/Canvas2DLayerChromium.h:
(Canvas2DLayerChromium):
* platform/graphics/chromium/ContentLayerChromium.cpp:
(WebCore::ContentLayerChromium::paintContentsIfDirty):
(WebCore::ContentLayerChromium::idlePaintContentsIfDirty):
* platform/graphics/chromium/ContentLayerChromium.h:
(WebCore):
(ContentLayerChromium):
* platform/graphics/chromium/ImageLayerChromium.cpp:
(WebCore::ImageLayerChromium::paintContentsIfDirty):
* platform/graphics/chromium/ImageLayerChromium.h:
(WebCore):
(ImageLayerChromium):
* platform/graphics/chromium/LayerChromium.h:
(WebCore::LayerChromium::paintContentsIfDirty):
(WebCore::LayerChromium::idlePaintContentsIfDirty):
* platform/graphics/chromium/TiledLayerChromium.cpp:
(WebCore::TiledLayerChromium::prepareToUpdateTiles):
(WebCore::TiledLayerChromium::prepareToUpdate):
(WebCore::TiledLayerChromium::prepareToUpdateIdle):
* platform/graphics/chromium/TiledLayerChromium.h:
(TiledLayerChromium):
* platform/graphics/chromium/WebGLLayerChromium.cpp:
(WebCore::WebGLLayerChromium::paintContentsIfDirty):
* platform/graphics/chromium/WebGLLayerChromium.h:
(WebGLLayerChromium):
* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::paintContentsIfDirty):
(WebCore::CCLayerTreeHost::paintMaskAndReplicaForRenderSurface):
(WebCore::CCLayerTreeHost::paintLayerContents):
* platform/graphics/chromium/cc/CCLayerTreeHost.h:
Source/WebKit/chromium:
* tests/CCLayerTreeHostTest.cpp:
(WTF::ContentLayerChromiumWithUpdateTracking::paintContentsIfDirty):
(WTF::ContentLayerChromiumWithUpdateTracking::idlePaintContentsIfDirty):
(WTF::TestLayerChromium::paintContentsIfDirty):
* tests/Canvas2DLayerChromiumTest.cpp:
* tests/TiledLayerChromiumTest.cpp:
(TestCCOcclusionTracker):
(WTF::TestCCOcclusionTracker::TestCCOcclusionTracker):
(WTF::TestCCOcclusionTracker::setOcclusion):
(WTF::TestCCOcclusionTracker::layerScissorRectInTargetSurface):
(WTF):
(WTF::FakeTiledLayerChromium::prepareToUpdate):
(WTF::FakeTiledLayerChromium::prepareToUpdateIdle):
(WTF::FakeTiledLayerChromium::paintContentsIfDirty):
(WTF::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110929
268f45cc-cd09-0410-ab3c-
d52691b4dbfc