Title: [125325] trunk/Source
Revision
125325
Author
[email protected]
Date
2012-08-10 13:40:38 -0700 (Fri, 10 Aug 2012)

Log Message

[chromium] Remove targetSurface pointer from CCRenderPass
https://bugs.webkit.org/show_bug.cgi?id=93734

Reviewed by Adrienne Walker.

Source/WebCore:

This removes the CCRenderSurface pointer from the CCRenderPass
structure, allowing it to be serialized and used across processes
freely.

No new tests; no intended change in behaviour.

* platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
(WebCore::CCLayerTreeHostImpl::drawLayers):
* platform/graphics/chromium/cc/CCRenderPass.cpp:
(WebCore::CCRenderPass::CCRenderPass):
* platform/graphics/chromium/cc/CCRenderPass.h:
(CCRenderPass):

Source/WebKit/chromium:

Use the RenderPass's damageRect instead of the surface's damageRect
directly to test the same things without requiring a pointer to
the surface that generated the RenderPass.

* tests/CCLayerTreeHostImplTest.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (125324 => 125325)


--- trunk/Source/WebCore/ChangeLog	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebCore/ChangeLog	2012-08-10 20:40:38 UTC (rev 125325)
@@ -1,3 +1,23 @@
+2012-08-10  Dana Jansens  <[email protected]>
+
+        [chromium] Remove targetSurface pointer from CCRenderPass
+        https://bugs.webkit.org/show_bug.cgi?id=93734
+
+        Reviewed by Adrienne Walker.
+
+        This removes the CCRenderSurface pointer from the CCRenderPass
+        structure, allowing it to be serialized and used across processes
+        freely.
+
+        No new tests; no intended change in behaviour.
+
+        * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+        (WebCore::CCLayerTreeHostImpl::drawLayers):
+        * platform/graphics/chromium/cc/CCRenderPass.cpp:
+        (WebCore::CCRenderPass::CCRenderPass):
+        * platform/graphics/chromium/cc/CCRenderPass.h:
+        (CCRenderPass):
+
 2012-08-10  Mario Sanchez Prada  <[email protected]>
 
         [GTK] Broken implementation of AtkText and AtkEditableText for password fields

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp (125324 => 125325)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp	2012-08-10 20:40:38 UTC (rev 125325)
@@ -545,18 +545,17 @@
 
     m_layerRenderer->drawFrame(frame.renderPasses, frame.renderPassesById);
 
-    for (unsigned int i = 0; i < frame.renderPasses.size(); i++) {
-        frame.renderPasses[i]->targetSurface()->damageTracker()->didDrawDamagedArea();
-
-        // Once a RenderPass has been drawn, its damage should be cleared in
-        // case the RenderPass will be reused next frame.
-        frame.renderPasses[i]->setDamageRect(FloatRect());
-    }
-
     if (m_settings.showDebugRects())
         m_debugRectHistory->saveDebugRectsForCurrentFrame(m_rootLayerImpl.get(), *frame.renderSurfaceLayerList, frame.occludingScreenSpaceRects, settings());
 
+    // Once a RenderPass has been drawn, its damage should be cleared in
+    // case the RenderPass will be reused next frame.
+    for (unsigned int i = 0; i < frame.renderPasses.size(); i++)
+        frame.renderPasses[i]->setDamageRect(FloatRect());
+
     // The next frame should start by assuming nothing has changed, and changes are noted as they occur.
+    for (unsigned int i = 0; i < frame.renderSurfaceLayerList->size(); i++)
+        (*frame.renderSurfaceLayerList)[i]->renderSurface()->damageTracker()->didDrawDamagedArea();
     m_rootLayerImpl->resetAllChangeTrackingForSubtree();
 }
 

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp (125324 => 125325)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.cpp	2012-08-10 20:40:38 UTC (rev 125325)
@@ -45,7 +45,6 @@
 
 CCRenderPass::CCRenderPass(CCRenderSurface* targetSurface, int id)
     : m_id(id)
-    , m_targetSurface(targetSurface)
     , m_transformToRootTarget(targetSurface->screenSpaceTransform())
     , m_outputRect(targetSurface->contentRect())
     , m_hasTransparentBackground(true)

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h (125324 => 125325)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCRenderPass.h	2012-08-10 20:40:38 UTC (rev 125325)
@@ -65,7 +65,6 @@
     const CCQuadList& quadList() const { return m_quadList; }
 
     int id() const { return m_id; }
-    CCRenderSurface* targetSurface() const { return m_targetSurface; }
 
     // FIXME: Modify this transform when merging the RenderPass into a parent compositor.
     // Transforms from quad's original content space to the root target's content space.
@@ -92,7 +91,6 @@
     CCRenderPass(CCRenderSurface*, int id);
 
     int m_id;
-    CCRenderSurface* m_targetSurface;
     CCQuadList m_quadList;
     WebKit::WebTransformationMatrix m_transformToRootTarget;
     IntRect m_outputRect;

Modified: trunk/Source/WebKit/chromium/ChangeLog (125324 => 125325)


--- trunk/Source/WebKit/chromium/ChangeLog	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebKit/chromium/ChangeLog	2012-08-10 20:40:38 UTC (rev 125325)
@@ -1,3 +1,16 @@
+2012-08-10  Dana Jansens  <[email protected]>
+
+        [chromium] Remove targetSurface pointer from CCRenderPass
+        https://bugs.webkit.org/show_bug.cgi?id=93734
+
+        Reviewed by Adrienne Walker.
+
+        Use the RenderPass's damageRect instead of the surface's damageRect
+        directly to test the same things without requiring a pointer to
+        the surface that generated the RenderPass.
+
+        * tests/CCLayerTreeHostImplTest.cpp:
+
 2012-08-10  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r125310.

Modified: trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp (125324 => 125325)


--- trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp	2012-08-10 20:40:11 UTC (rev 125324)
+++ trunk/Source/WebKit/chromium/tests/CCLayerTreeHostImplTest.cpp	2012-08-10 20:40:38 UTC (rev 125325)
@@ -3322,7 +3322,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_TRUE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_FALSE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3340,7 +3340,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3359,7 +3359,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3380,7 +3380,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_TRUE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_FALSE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3407,7 +3407,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         // Was our surface evicted?
         EXPECT_FALSE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
@@ -3428,7 +3428,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3449,7 +3449,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3483,10 +3483,10 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_TRUE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_FALSE(targetPass->damageRect().isEmpty());
 
-        EXPECT_TRUE(frame.renderPasses[0]->targetSurface()->contentsChanged());
-        EXPECT_TRUE(frame.renderPasses[1]->targetSurface()->contentsChanged());
+        EXPECT_FALSE(frame.renderPasses[0]->damageRect().isEmpty());
+        EXPECT_FALSE(frame.renderPasses[1]->damageRect().isEmpty());
 
         EXPECT_FALSE(frame.renderPasses[0]->hasOcclusionFromOutsideTargetSurface());
         EXPECT_FALSE(frame.renderPasses[1]->hasOcclusionFromOutsideTargetSurface());
@@ -3506,7 +3506,7 @@
         ASSERT_EQ(1U, frame.renderPasses.size());
         EXPECT_EQ(1U, frame.renderPasses[0]->quadList().size());
 
-        EXPECT_FALSE(frame.renderPasses[0]->targetSurface()->contentsChanged());
+        EXPECT_TRUE(frame.renderPasses[0]->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3525,7 +3525,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3546,7 +3546,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_TRUE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_FALSE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
@@ -3573,7 +3573,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[1]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[1]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         // Was our surface evicted?
         EXPECT_FALSE(myHostImpl->layerRenderer()->haveCachedResourcesForRenderPassId(targetPass->id()));
@@ -3612,7 +3612,7 @@
         EXPECT_EQ(CCDrawQuad::RenderPass, frame.renderPasses[0]->quadList()[0]->material());
         CCRenderPassDrawQuad* quad = static_cast<CCRenderPassDrawQuad*>(frame.renderPasses[0]->quadList()[0].get());
         CCRenderPass* targetPass = frame.renderPassesById.get(quad->renderPassId());
-        EXPECT_FALSE(targetPass->targetSurface()->contentsChanged());
+        EXPECT_TRUE(targetPass->damageRect().isEmpty());
 
         myHostImpl->drawLayers(frame);
         myHostImpl->didDrawAllLayers(frame);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to