diff options
| author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-09 14:16:12 +0100 |
|---|---|---|
| committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-02-09 14:16:12 +0100 |
| commit | 03e12282df9aa1e1fb05a8b90f1cfc2e08764cec (patch) | |
| tree | 52599cd0ab782b1768e23ad176f7618f98333cb6 /Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp | |
| parent | cd44dc59cdfc39534aef4d417e9f3c412e3be139 (diff) | |
| download | qtwebkit-03e12282df9aa1e1fb05a8b90f1cfc2e08764cec.tar.gz | |
Imported WebKit commit e09a82039aa4273ab318b71122e92d8e5f233525 (http://svn.webkit.org/repository/webkit/trunk@107223)
Diffstat (limited to 'Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp')
| -rw-r--r-- | Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp b/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp index 0f379d64e..a9f7b1c1a 100644 --- a/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp +++ b/Source/WebKit/chromium/tests/CCDamageTrackerTest.cpp @@ -70,7 +70,7 @@ void emulateDrawingOneFrame(CCLayerImpl* root) // Iterate back-to-front, so that damage correctly propagates from descendant surfaces to ancestors. for (int i = renderSurfaceLayerList.size() - 1; i >= 0; --i) { CCRenderSurface* targetSurface = renderSurfaceLayerList[i]->renderSurface(); - targetSurface->damageTracker()->updateDamageRectForNextFrame(targetSurface->layerList(), targetSurface->owningLayerId(), renderSurfaceLayerList[i]->maskLayer()); + targetSurface->damageTracker()->updateDamageTrackingState(targetSurface->layerList(), targetSurface->owningLayerId(), renderSurfaceLayerList[i]->maskLayer()); } root->resetAllChangeTrackingForSubtree(); @@ -748,4 +748,27 @@ TEST_F(CCDamageTrackerTest, verifyDamageForReplicaMask) EXPECT_FLOAT_RECT_EQ(FloatRect(194, 200, 6, 8), childDamageRect); } +TEST_F(CCDamageTrackerTest, verifyDamageWhenReset) +{ + RefPtr<CCLayerImpl> root = createAndSetUpTestTreeWithOneSurface(); + RefPtr<CCLayerImpl> child = root->children()[0]; + + // Case 1: This test ensures that when the tracker is forced to have full damage, that + // it takes priority over any other partial damage. + // + child->setUpdateRect(FloatRect(10, 11, 12, 13)); + root->renderSurface()->damageTracker()->forceFullDamageNextUpdate(); + emulateDrawingOneFrame(root.get()); + FloatRect rootDamageRect = root->renderSurface()->damageTracker()->currentDamageRect(); + EXPECT_FLOAT_RECT_EQ(FloatRect(0, 0, 500, 500), rootDamageRect); + + // Case 2: An additional sanity check that forcing full damage works even when nothing + // on the layer tree changed. + // + root->renderSurface()->damageTracker()->forceFullDamageNextUpdate(); + emulateDrawingOneFrame(root.get()); + rootDamageRect = root->renderSurface()->damageTracker()->currentDamageRect(); + EXPECT_FLOAT_RECT_EQ(FloatRect(0, 0, 500, 500), rootDamageRect); +} + } // namespace |
