Title: [112326] trunk/Source/WebKit/chromium
Revision
112326
Author
[email protected]
Date
2012-03-27 15:29:21 -0700 (Tue, 27 Mar 2012)

Log Message

[chromium] A unit test to verify clipping is honored when moving occlusion to parent surface
https://bugs.webkit.org/show_bug.cgi?id=81783

Patch by Dana Jansens <[email protected]> on 2012-03-27
Reviewed by Adrienne Walker.

* tests/CCOcclusionTrackerTest.cpp:
(WebCore::CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent::runMyTest):
(WebCore):
(CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping):
(WebCore::CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping::runMyTest):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (112325 => 112326)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-03-27 22:24:36 UTC (rev 112325)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-03-27 22:29:21 UTC (rev 112326)
@@ -1,3 +1,16 @@
+2012-03-27  Dana Jansens  <[email protected]>
+
+        [chromium] A unit test to verify clipping is honored when moving occlusion to parent surface
+        https://bugs.webkit.org/show_bug.cgi?id=81783
+
+        Reviewed by Adrienne Walker.
+
+        * tests/CCOcclusionTrackerTest.cpp:
+        (WebCore::CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent::runMyTest):
+        (WebCore):
+        (CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping):
+        (WebCore::CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping::runMyTest):
+
 2012-03-27  James Robinson  <[email protected]>
 
         Scrollable plugins not registered properly in ScrollingCoordinator

Modified: trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp (112325 => 112326)


--- trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp	2012-03-27 22:24:36 UTC (rev 112325)
+++ trunk/Source/WebKit/chromium/tests/CCOcclusionTrackerTest.cpp	2012-03-27 22:29:21 UTC (rev 112326)
@@ -1889,13 +1889,35 @@
         EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size());
         EXPECT_EQ_RECT(IntRect(0, 0, 400, 400), occlusion.occlusionInTargetSurface().bounds());
         EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size());
+    }
+};
 
-        EXPECT_EQ_RECT(occlusion.occlusionInScreenSpace().bounds(), occlusion.occlusionInTargetSurface().bounds());
+MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent);
+
+template<class Types, bool opaqueLayers>
+class CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping : public CCOcclusionTrackerTest<Types, opaqueLayers> {
+protected:
+    void runMyTest()
+    {
+        typename Types::ContentLayerType* parent = this->createRoot(this->identityMatrix, FloatPoint(0, 0), IntSize(300, 300));
+        typename Types::ContentLayerType* surface = this->createDrawingSurface(parent, this->identityMatrix, FloatPoint(0, 0), IntSize(500, 300), false);
+        surface->setOpaqueContentsRect(IntRect(0, 0, 400, 200));
+        this->calcDrawEtc(parent);
+
+        TestCCOcclusionTrackerBase<typename Types::LayerType, typename Types::RenderSurfaceType> occlusion(IntRect(0, 0, 1000, 1000));
+
+        occlusion.enterTargetRenderSurface(surface->renderSurface());
+        occlusion.markOccludedBehindLayer(surface);
+        occlusion.finishedTargetRenderSurface(surface, surface->renderSurface());
+        occlusion.leaveToTargetRenderSurface(parent->renderSurface());
+
+        EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInScreenSpace().bounds());
         EXPECT_EQ(1u, occlusion.occlusionInScreenSpace().rects().size());
+        EXPECT_EQ_RECT(IntRect(0, 0, 300, 200), occlusion.occlusionInTargetSurface().bounds());
         EXPECT_EQ(1u, occlusion.occlusionInTargetSurface().rects().size());
     }
 };
 
-MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesToParent);
+MAIN_AND_IMPL_THREAD_TEST(CCOcclusionTrackerTestSurfaceOcclusionTranslatesWithClipping);
 
 } // namespace
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to