diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-18 23:48:18 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-18 23:48:18 +0000 |
commit | 8f322ba0e048d54343148cbaa1e0626063e67d65 (patch) | |
tree | f6592ec76722f5c3aecb8b19283c53f1f0b867d5 /cc/base/tiling_data.h | |
parent | 8117570c80d29229bed3edea8f4288b026714ab1 (diff) | |
download | chromium_src-8f322ba0e048d54343148cbaa1e0626063e67d65.zip chromium_src-8f322ba0e048d54343148cbaa1e0626063e67d65.tar.gz chromium_src-8f322ba0e048d54343148cbaa1e0626063e67d65.tar.bz2 |
cc: Expand invalidation to full tile when recording is missing for the tile.
Currently we do a walk over all tiles in the pending tree's pile, but
there can be 1 million x 1 million tiles on some pages, which makes this
method take multiple _seconds_ to complete.
These loops were added in r184525 which gave the tradeoffs that led to
them, which are that we want to only use a single pile for all the tiles
on this layer, but we don't want raster tiles on the active layer (when
this activates) that can't be rastered by the pile they are attached to.
Instead of walking every pile-tile, to find the tiles that are not
present in the current recording and invalidate them, we expand
invalidations outside the interest rect to cover the full recording tiles,
and we expand invalidation inside the interest rect to include any raster
tiles that don't have a recording (such as in the offscreen animating gif
case). We give this expanded invalidation to the pending layer, causing
it to drop rastered tiles from the active tree that intersect with an
unrecorded area.
R=enne
BUG=371839
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=277964
Review URL: https://codereview.chromium.org/294163009
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278196 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/base/tiling_data.h')
-rw-r--r-- | cc/base/tiling_data.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/cc/base/tiling_data.h b/cc/base/tiling_data.h index 3059c21..8550e5f 100644 --- a/cc/base/tiling_data.h +++ b/cc/base/tiling_data.h @@ -52,7 +52,8 @@ class CC_EXPORT TilingData { int LastBorderTileXIndexFromSrcCoord(int src_position) const; int LastBorderTileYIndexFromSrcCoord(int src_position) const; - gfx::Rect ExpandRectToTileBoundsWithBorders(const gfx::Rect rect) const; + gfx::Rect ExpandRectToTileBoundsWithBorders(const gfx::Rect& rect) const; + gfx::Rect ExpandRectToTileBounds(const gfx::Rect& rect) const; gfx::Rect TileBounds(int i, int j) const; gfx::Rect TileBoundsWithBorder(int i, int j) const; |