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);