Title: [88386] trunk
Revision
88386
Author
[email protected]
Date
2011-06-08 14:16:37 -0700 (Wed, 08 Jun 2011)

Log Message

2011-06-08  John Bauman  <[email protected]>

        Reviewed by James Robinson.

        Only draw portions of tiles in contentRect
        https://bugs.webkit.org/show_bug.cgi?id=62243

        * platform/chromium/test_expectations.txt:
        * compositing/repaint/shrink-layer.html: Added.
        * compositing/repaint/shrink-layer-expected.png: Added.
        * compositing/repaint/shrink-layer-expected.txt: Added.
2011-06-08  John Bauman  <[email protected]>

        Reviewed by James Robinson.

        Only draw portions of tiles in contentRect
        https://bugs.webkit.org/show_bug.cgi?id=62243

        Old garbage data can remain in tiles, so make sure to draw only those
        portions that are supposed to be drawn.

        Test: compositing/repaint/shrink-layer.html

        * platform/graphics/chromium/LayerTilerChromium.cpp:
        (WebCore::LayerTilerChromium::draw):

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (88385 => 88386)


--- trunk/LayoutTests/ChangeLog	2011-06-08 21:15:25 UTC (rev 88385)
+++ trunk/LayoutTests/ChangeLog	2011-06-08 21:16:37 UTC (rev 88386)
@@ -1,3 +1,15 @@
+2011-06-08  John Bauman  <[email protected]>
+
+        Reviewed by James Robinson.
+
+        Only draw portions of tiles in contentRect
+        https://bugs.webkit.org/show_bug.cgi?id=62243
+
+        * platform/chromium/test_expectations.txt:
+        * compositing/repaint/shrink-layer.html: Added.
+        * compositing/repaint/shrink-layer-expected.png: Added.
+        * compositing/repaint/shrink-layer-expected.txt: Added.
+
 2011-06-08  Mark Pilgrim  <[email protected]>
 
         Reviewed by Tony Chang.

Added: trunk/LayoutTests/compositing/repaint/shrink-layer-expected.png


(Binary files differ)
Property changes on: trunk/LayoutTests/compositing/repaint/shrink-layer-expected.png ___________________________________________________________________

Added: svn:mime-type

Added: trunk/LayoutTests/compositing/repaint/shrink-layer-expected.txt (0 => 88386)


--- trunk/LayoutTests/compositing/repaint/shrink-layer-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/compositing/repaint/shrink-layer-expected.txt	2011-06-08 21:16:37 UTC (rev 88386)
@@ -0,0 +1 @@
+
Property changes on: trunk/LayoutTests/compositing/repaint/shrink-layer-expected.txt
___________________________________________________________________

Added: svn:eol-style

Added: trunk/LayoutTests/compositing/repaint/shrink-layer.html (0 => 88386)


--- trunk/LayoutTests/compositing/repaint/shrink-layer.html	                        (rev 0)
+++ trunk/LayoutTests/compositing/repaint/shrink-layer.html	2011-06-08 21:16:37 UTC (rev 88386)
@@ -0,0 +1,25 @@
+<html>
+<head>
+    <title>Test for bug 62243</title>
+    <style type="text/css">
+        #ruler {
+            -webkit-transform: translateZ(0);
+            border-bottom: 10px solid black;
+            width: 550px;
+            height: 500px;
+        }
+    </style>
+    <script src=""
+    <script>
+        if (window.layoutTestController)
+            layoutTestController.dumpAsText(true);
+        function repaintTest()
+        {
+            document.getElementById("ruler").style.height = "450px";
+        }
+    </script>
+</head>
+<body _onload_="runRepaintTest()">
+    <div id="ruler">
+</body>
+</html>
Property changes on: trunk/LayoutTests/compositing/repaint/shrink-layer.html
___________________________________________________________________

Added: svn:executable

Added: svn:eol-style

Modified: trunk/LayoutTests/platform/chromium/test_expectations.txt (88385 => 88386)


--- trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-06-08 21:15:25 UTC (rev 88385)
+++ trunk/LayoutTests/platform/chromium/test_expectations.txt	2011-06-08 21:16:37 UTC (rev 88386)
@@ -3550,6 +3550,9 @@
 BUGWK60096 DEBUG : fast/css/last-child-pseudo-class.html = TEXT PASS
 BUGWK60097 DEBUG : fast/dom/HTMLLinkElement/link-and-subresource-test.html = TEXT PASS
 
+// Needs rebaseline
+BUGWK62243 GPU : compositing/geometry/vertical-scroll-composited.html = IMAGE
+
 BUGWK60102 LINUX DEBUG GPU : compositing/geometry/fixed-in-composited.html = IMAGE
 BUGWK60102 LINUX DEBUG GPU : compositing/geometry/horizontal-scroll-composited.html = IMAGE
 BUGWK60102 LINUX GPU : compositing/geometry/tall-page-composited.html = IMAGE

Modified: trunk/Source/WebCore/ChangeLog (88385 => 88386)


--- trunk/Source/WebCore/ChangeLog	2011-06-08 21:15:25 UTC (rev 88385)
+++ trunk/Source/WebCore/ChangeLog	2011-06-08 21:16:37 UTC (rev 88386)
@@ -1,3 +1,18 @@
+2011-06-08  John Bauman  <[email protected]>
+
+        Reviewed by James Robinson.
+
+        Only draw portions of tiles in contentRect
+        https://bugs.webkit.org/show_bug.cgi?id=62243
+
+        Old garbage data can remain in tiles, so make sure to draw only those
+        portions that are supposed to be drawn.
+
+        Test: compositing/repaint/shrink-layer.html
+
+        * platform/graphics/chromium/LayerTilerChromium.cpp:
+        (WebCore::LayerTilerChromium::draw):
+
 2011-06-08  Emil A Eklund  <[email protected]>
 
         Reviewed by Eric Seidel.

Modified: trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp (88385 => 88386)


--- trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp	2011-06-08 21:15:25 UTC (rev 88385)
+++ trunk/Source/WebCore/platform/graphics/chromium/LayerTilerChromium.cpp	2011-06-08 21:16:37 UTC (rev 88386)
@@ -346,6 +346,7 @@
 
     int left, top, right, bottom;
     contentRectToTileIndices(contentRect, left, top, right, bottom);
+    IntRect layerRect = contentRectToLayerRect(contentRect);
     for (int j = top; j <= bottom; ++j) {
         for (int i = left; i <= right; ++i) {
             Tile* tile = tileAt(i, j);
@@ -359,10 +360,15 @@
             // Don't use tileContentRect here, as that contains the full
             // rect with border texels which shouldn't be drawn.
             IntRect tileRect = m_tilingData.tileBounds(m_tilingData.tileIndex(tile->i(), tile->j()));
+            IntRect displayRect = tileRect;
+            tileRect.intersect(layerRect);
+            // Keep track of how the top left has moved, so the texture can be
+            // offset the same amount.
+            IntSize offset = tileRect.minXMinYCorner() - displayRect.minXMinYCorner();
             tileRect.move(m_layerPosition.x(), m_layerPosition.y());
             tileMatrix.translate3d(tileRect.x() + tileRect.width() / 2.0, tileRect.y() + tileRect.height() / 2.0, 0);
 
-            IntPoint texOffset = m_tilingData.textureOffset(tile->i(), tile->j());
+            IntPoint texOffset = m_tilingData.textureOffset(tile->i(), tile->j()) + offset;
             float tileWidth = static_cast<float>(m_tileSize.width());
             float tileHeight = static_cast<float>(m_tileSize.height());
             float texTranslateX = texOffset.x() / tileWidth;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to