Title: [148094] trunk/Source/WebCore
Revision
148094
Author
[email protected]
Date
2013-04-10 07:58:37 -0700 (Wed, 10 Apr 2013)

Log Message

[Texmap] Update a dirty region which is not covered with keepRect.
https://bugs.webkit.org/show_bug.cgi?id=113752

Patch by JungJik Lee <[email protected]> on 2013-04-10
Reviewed by Jocelyn Turcotte.

There can be a dirty region which is not covered with keepRect.
However the dirty could be inside the tile area. In this case,
currently we ignore the dirty by intersecting with keepRect
and the dirty region will not be invalidated until the tile is
recreated. We must expand the keep rect to its intersecting tiles
to make sure that the dirty region is applied to existing tiles.

No tests needed, change is unobservable.

* platform/graphics/TiledBackingStore.cpp:
(WebCore::TiledBackingStore::invalidate):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (148093 => 148094)


--- trunk/Source/WebCore/ChangeLog	2013-04-10 14:36:00 UTC (rev 148093)
+++ trunk/Source/WebCore/ChangeLog	2013-04-10 14:58:37 UTC (rev 148094)
@@ -1,3 +1,22 @@
+2013-04-10  JungJik Lee  <[email protected]>
+
+        [Texmap] Update a dirty region which is not covered with keepRect.
+        https://bugs.webkit.org/show_bug.cgi?id=113752
+
+        Reviewed by Jocelyn Turcotte.
+
+        There can be a dirty region which is not covered with keepRect. 
+        However the dirty could be inside the tile area. In this case, 
+        currently we ignore the dirty by intersecting with keepRect 
+        and the dirty region will not be invalidated until the tile is 
+        recreated. We must expand the keep rect to its intersecting tiles 
+        to make sure that the dirty region is applied to existing tiles. 
+
+        No tests needed, change is unobservable.
+
+        * platform/graphics/TiledBackingStore.cpp:
+        (WebCore::TiledBackingStore::invalidate):
+
 2013-04-10  Laszlo Gombos  <[email protected]>
 
         Remove ENABLE_3D_PLUGIN

Modified: trunk/Source/WebCore/platform/graphics/TiledBackingStore.cpp (148093 => 148094)


--- trunk/Source/WebCore/platform/graphics/TiledBackingStore.cpp	2013-04-10 14:36:00 UTC (rev 148093)
+++ trunk/Source/WebCore/platform/graphics/TiledBackingStore.cpp	2013-04-10 14:58:37 UTC (rev 148094)
@@ -81,9 +81,11 @@
 void TiledBackingStore::invalidate(const IntRect& contentsDirtyRect)
 {
     IntRect dirtyRect(mapFromContents(contentsDirtyRect));
+    IntRect keepRectFitToTileSize = tileRectForCoordinate(tileCoordinateForPoint(m_keepRect.location()));
+    keepRectFitToTileSize.unite(tileRectForCoordinate(tileCoordinateForPoint(innerBottomRight(m_keepRect))));
 
     // Only iterate on the part of the rect that we know we might have tiles.
-    IntRect coveredDirtyRect = intersection(dirtyRect, m_keepRect);
+    IntRect coveredDirtyRect = intersection(dirtyRect, keepRectFitToTileSize);
     Tile::Coordinate topLeft = tileCoordinateForPoint(coveredDirtyRect.location());
     Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(coveredDirtyRect));
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to