[chromium] Add clipping to scissor rect to CCOcclusionTracker
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Mar 2012 07:07:54 +0000 (07:07 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 7 Mar 2012 07:07:54 +0000 (07:07 +0000)
commitc05d192d2f5b1c7aa5b1afafc068614519e03485
treecb086af4c99dfa28aaf736704d98f3c2c889b74b
parent437372475391c7a374d15cbf584d4bd10fcc1d0b
[chromium] Add clipping to scissor rect to CCOcclusionTracker
https://bugs.webkit.org/show_bug.cgi?id=79927

Patch by Dana Jansens <danakj@chromium.org> on 2012-03-06
Reviewed by Adrienne Walker.

Source/WebCore:

Adds logic to CCOcclusionTracker to occlude anything outside of the
current screen and target surface scissor rects. When tracking
damage for partial swaps, the scissor rects are bounded by the
tracked damage rects.

Unit tests: CCOcclusionTrackerTest.cpp

* platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
(WebCore::::CCOcclusionTrackerBase):
(WebCore):
(WebCore::::markOccludedBehindLayer):
(WebCore::testContentRectOccluded):
(WebCore::::occluded):
(WebCore::computeUnoccludedContentRect):
(WebCore::::unoccludedContentRect):
(WebCore::::layerScissorRect):
* platform/graphics/chromium/cc/CCOcclusionTracker.h:
(WebCore):
(CCOcclusionTrackerDamageClientBase):
(CCOcclusionTrackerBase):

Source/WebKit/chromium:

* tests/CCOcclusionTrackerTest.cpp:
(WebCore::TestCCOcclusionTracker::TestCCOcclusionTracker):
(TestCCOcclusionTracker):
(WebCore::TestCCOcclusionTracker::setLayerScissorRect):
(WebCore::TestCCOcclusionTracker::useDefaultLayerScissorRect):
(WebCore::TestCCOcclusionTracker::layerScissorRect):
(WebCore):
(TestDamageClient):
(WebCore::TestDamageClient::damageRect):
(WebCore::TestDamageClient::TestDamageClient):
(WebCore::TestDamageClient::setDamageRect):
(WebCore::TEST):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@110020 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/WebCore/ChangeLog
Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.cpp
Source/WebCore/platform/graphics/chromium/cc/CCOcclusionTracker.h
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp