Changeset 148094 in webkit


Ignore:
Timestamp:
Apr 10, 2013 7:58:37 AM (11 years ago)
Author:
commit-queue@webkit.org
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 <jungjik.lee@samsung.com> 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):

Location:
trunk/Source/WebCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r148093 r148094  
     12013-04-10  JungJik Lee  <jungjik.lee@samsung.com>
     2
     3        [Texmap] Update a dirty region which is not covered with keepRect.
     4        https://bugs.webkit.org/show_bug.cgi?id=113752
     5
     6        Reviewed by Jocelyn Turcotte.
     7
     8        There can be a dirty region which is not covered with keepRect.
     9        However the dirty could be inside the tile area. In this case,
     10        currently we ignore the dirty by intersecting with keepRect
     11        and the dirty region will not be invalidated until the tile is
     12        recreated. We must expand the keep rect to its intersecting tiles
     13        to make sure that the dirty region is applied to existing tiles.
     14
     15        No tests needed, change is unobservable.
     16
     17        * platform/graphics/TiledBackingStore.cpp:
     18        (WebCore::TiledBackingStore::invalidate):
     19
    1202013-04-10  Laszlo Gombos  <l.gombos@samsung.com>
    221
  • trunk/Source/WebCore/platform/graphics/TiledBackingStore.cpp

    r142979 r148094  
    8282{
    8383    IntRect dirtyRect(mapFromContents(contentsDirtyRect));
     84    IntRect keepRectFitToTileSize = tileRectForCoordinate(tileCoordinateForPoint(m_keepRect.location()));
     85    keepRectFitToTileSize.unite(tileRectForCoordinate(tileCoordinateForPoint(innerBottomRight(m_keepRect))));
    8486
    8587    // Only iterate on the part of the rect that we know we might have tiles.
    86     IntRect coveredDirtyRect = intersection(dirtyRect, m_keepRect);
     88    IntRect coveredDirtyRect = intersection(dirtyRect, keepRectFitToTileSize);
    8789    Tile::Coordinate topLeft = tileCoordinateForPoint(coveredDirtyRect.location());
    8890    Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(coveredDirtyRect));
Note: See TracChangeset for help on using the changeset viewer.