Title: [120129] trunk/Source/WebCore
Revision
120129
Author
e...@google.com
Date
2012-06-12 15:12:52 -0700 (Tue, 12 Jun 2012)

Log Message

[chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
https://bugs.webkit.org/show_bug.cgi?id=88895

Reviewed by James Robinson.

We should only set visible layer rects during the recursion in
CClayerTreeHostCommon and not while we're painting. This is one last
straggling piece of code that never got moved.

Tested by existing mask-related layout tests.

* platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
(WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
* platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
(WebCore::calculateVisibleAndScissorRectsInternal):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (120128 => 120129)


--- trunk/Source/WebCore/ChangeLog	2012-06-12 22:02:51 UTC (rev 120128)
+++ trunk/Source/WebCore/ChangeLog	2012-06-12 22:12:52 UTC (rev 120129)
@@ -1,3 +1,21 @@
+2012-06-12  Adrienne Walker  <e...@google.com>
+
+        [chromium] Don't set visible layer rect in CCLayerTreeHost paint iteration
+        https://bugs.webkit.org/show_bug.cgi?id=88895
+
+        Reviewed by James Robinson.
+
+        We should only set visible layer rects during the recursion in
+        CClayerTreeHostCommon and not while we're painting. This is one last
+        straggling piece of code that never got moved.
+
+        Tested by existing mask-related layout tests.
+
+        * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+        (WebCore::CCLayerTreeHost::paintMasksForRenderSurface):
+        * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+        (WebCore::calculateVisibleAndScissorRectsInternal):
+
 2012-06-12  Dana Jansens  <dan...@chromium.org>
 
         [chromium] Return empty visibleLayerRect for layers with empty content bounds

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp (120128 => 120129)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp	2012-06-12 22:02:51 UTC (rev 120128)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp	2012-06-12 22:12:52 UTC (rev 120129)
@@ -583,16 +583,12 @@
     // mask and replica should be painted.
 
     LayerChromium* maskLayer = renderSurfaceLayer->maskLayer();
-    if (maskLayer) {
-        maskLayer->setVisibleLayerRect(IntRect(IntPoint(), renderSurfaceLayer->contentBounds()));
+    if (maskLayer)
         update(maskLayer, paintType, updater, 0);
-    }
 
     LayerChromium* replicaMaskLayer = renderSurfaceLayer->replicaLayer() ? renderSurfaceLayer->replicaLayer()->maskLayer() : 0;
-    if (replicaMaskLayer) {
-        replicaMaskLayer->setVisibleLayerRect(IntRect(IntPoint(), renderSurfaceLayer->contentBounds()));
+    if (replicaMaskLayer)
         update(replicaMaskLayer, paintType, updater, 0);
-    }
 }
 
 void CCLayerTreeHost::paintLayerContents(const LayerList& renderSurfaceLayerList, PaintType paintType, CCTextureUpdater& updater)

Modified: trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp (120128 => 120129)


--- trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp	2012-06-12 22:02:51 UTC (rev 120128)
+++ trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp	2012-06-12 22:12:52 UTC (rev 120129)
@@ -830,11 +830,17 @@
 
     CCLayerIteratorType end = CCLayerIteratorType::end(&renderSurfaceLayerList);
     for (CCLayerIteratorType it = CCLayerIteratorType::begin(&renderSurfaceLayerList); it != end; ++it) {
-        if (!it.representsTargetRenderSurface()) {
+        if (it.representsTargetRenderSurface()) {
+            LayerType* maskLayer = it->maskLayer();
+            if (maskLayer)
+                maskLayer->setVisibleLayerRect(IntRect(IntPoint(), it->contentBounds()));
+            LayerType* replicaMaskLayer = it->replicaLayer() ? it->replicaLayer()->maskLayer() : 0;
+            if (replicaMaskLayer)
+                replicaMaskLayer->setVisibleLayerRect(IntRect(IntPoint(), it->contentBounds()));
+        } else if (it.representsItself()) {
             IntRect visibleLayerRect = calculateVisibleLayerRect(*it);
             it->setVisibleLayerRect(visibleLayerRect);
-        }
-        if (it.representsItself()) {
+
             IntRect scissorRect = calculateLayerScissorRect<LayerType, RenderSurfaceType>(*it, rootScissorRect);
             it->setScissorRect(scissorRect);
         } else if (it.representsContributingRenderSurface()) {
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to