Title: [137923] trunk/Source/WebCore
Revision
137923
Author
[email protected]
Date
2012-12-17 10:59:26 -0800 (Mon, 17 Dec 2012)

Log Message

Don't allow edge TileCache tiles to be larger than necessary
https://bugs.webkit.org/show_bug.cgi?id=105195

Reviewed by Anders Carlsson.

The TileCache would allow edge tiles to be larger than the required size, with the assumption
that the extra space would never be visible. However, for content tiled layers, it can be,
and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.

* platform/graphics/ca/mac/TileCache.mm:
(WebCore::TileCache::revalidateTiles):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (137922 => 137923)


--- trunk/Source/WebCore/ChangeLog	2012-12-17 18:46:33 UTC (rev 137922)
+++ trunk/Source/WebCore/ChangeLog	2012-12-17 18:59:26 UTC (rev 137923)
@@ -1,3 +1,17 @@
+2012-12-17  Simon Fraser  <[email protected]>
+
+        Don't allow edge TileCache tiles to be larger than necessary
+        https://bugs.webkit.org/show_bug.cgi?id=105195
+
+        Reviewed by Anders Carlsson.
+
+        The TileCache would allow edge tiles to be larger than the required size, with the assumption
+        that the extra space would never be visible. However, for content tiled layers, it can be,
+        and it doesn't get correctly cleared. So always keep the edge tiles at the specified size.
+
+        * platform/graphics/ca/mac/TileCache.mm:
+        (WebCore::TileCache::revalidateTiles):
+
 2012-12-17  Bem Jones-Bey  <[email protected]>
 
         [CSS Exclusions] Floats should respect shape-inside on exclusions

Modified: trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm (137922 => 137923)


--- trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm	2012-12-17 18:46:33 UTC (rev 137922)
+++ trunk/Source/WebCore/platform/graphics/ca/mac/TileCache.mm	2012-12-17 18:59:26 UTC (rev 137923)
@@ -616,10 +616,9 @@
                 [m_tileContainerLayer.get() addSublayer:tileInfo.layer.get()];
             } else {
                 // We already have a layer for this tile. Ensure that its size is correct.
-                CGSize tileLayerSize = [tileInfo.layer.get() frame].size;
-                if (tileLayerSize.width >= tileRect.width() && tileLayerSize.height >= tileRect.height())
-                    continue;
-                [tileInfo.layer.get() setFrame:tileRect];
+                FloatSize tileLayerSize([tileInfo.layer.get() frame].size);
+                if (tileLayerSize != FloatSize(tileRect.size()))
+                    [tileInfo.layer.get() setFrame:tileRect];
             }
             
             ++primaryLayerCount;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to