Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2855)

Unified Diff: cc/picture_layer_tiling.cc

Issue 12289020: cc: Make the TileManager operate on ManagedTileState directly (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix clang dtor nits Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/picture_layer_tiling.h ('k') | cc/picture_layer_tiling_set_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/picture_layer_tiling.cc
diff --git a/cc/picture_layer_tiling.cc b/cc/picture_layer_tiling.cc
index 95be306169e327fa4b7f8685d86fc3c0fc979e18..bb1222ed52bb47224b9d9518a13059374d3ee6be 100644
--- a/cc/picture_layer_tiling.cc
+++ b/cc/picture_layer_tiling.cc
@@ -50,7 +50,7 @@ Tile* PictureLayerTiling::TileAt(int i, int j) const {
TileMap::const_iterator iter = tiles_.find(TileMapKey(i, j));
if (iter == tiles_.end())
return NULL;
- return iter->second.get();
+ return iter->second.tile();
}
void PictureLayerTiling::CreateTile(int i, int j) {
@@ -60,7 +60,7 @@ void PictureLayerTiling::CreateTile(int i, int j) {
DCHECK(tiles_.find(key) == tiles_.end());
scoped_refptr<Tile> tile = client_->CreateTile(this, tile_rect);
if (tile)
- tiles_[key] = tile;
+ tiles_.insert(make_pair(key, TileHandle(tile)));
}
Region PictureLayerTiling::OpaqueRegionInContentRect(
@@ -414,7 +414,8 @@ void PictureLayerTiling::UpdateTilePriorities(
TilePriority priority;
DCHECK(!priority.is_live);
- Tile* tile = find->second.get();
+ TileHandle* tile_handle = &find->second;
+ Tile* tile = tile_handle->tile();
tile->set_priority(tree, priority);
}
last_prioritized_rect_ = inflated_rect;
@@ -439,7 +440,8 @@ void PictureLayerTiling::UpdateTilePriorities(
TileMap::iterator find = tiles_.find(iter.index());
if (find == tiles_.end())
continue;
- Tile* tile = find->second.get();
+ TileHandle* tile_handle = &find->second;
+ Tile* tile = tile_handle->tile();
gfx::Rect tile_bounds =
tiling_data_.TileBounds(iter.index_x(), iter.index_y());
@@ -472,7 +474,8 @@ void PictureLayerTiling::UpdateTilePriorities(
TileMap::iterator find = tiles_.find(iter.index());
if (find == tiles_.end())
continue;
- Tile* tile = find->second.get();
+ TileHandle* tile_handle = &find->second;
+ Tile* tile = tile_handle->tile();
gfx::Rect tile_bounds =
tiling_data_.TileBounds(iter.index_x(), iter.index_y());
@@ -517,8 +520,9 @@ void PictureLayerTiling::UpdateTilePriorities(
void PictureLayerTiling::DidBecomeActive() {
for (TileMap::const_iterator it = tiles_.begin(); it != tiles_.end(); ++it) {
- it->second->set_priority(ACTIVE_TREE, it->second->priority(PENDING_TREE));
- it->second->set_priority(PENDING_TREE, TilePriority());
+ Tile* tile = it->second.tile();
+ tile->set_priority(ACTIVE_TREE, tile->priority(PENDING_TREE));
+ tile->set_priority(PENDING_TREE, TilePriority());
// Tile holds a ref onto a picture pile. If the tile never gets invalidated
// and recreated, then that picture pile ref could exist indefinitely. To
@@ -526,7 +530,7 @@ void PictureLayerTiling::DidBecomeActive() {
// will cause PicturePileImpls and their clones to get deleted once the
// corresponding PictureLayerImpl and any in flight raster jobs go out of
// scope.
- client_->UpdatePile(it->second);
+ client_->UpdatePile(tile);
}
}
@@ -539,4 +543,12 @@ scoped_ptr<base::Value> PictureLayerTiling::AsValue() const {
return state.PassAs<base::Value>();
}
+TileHandle::TileHandle(scoped_refptr<Tile> tile)
+ : tile_(tile),
+ managed_tile_state_(tile_->tile_manager()->RegisterTile(tile_)) {
+}
+
+TileHandle::~TileHandle() {
+}
+
} // namespace cc
« no previous file with comments | « cc/picture_layer_tiling.h ('k') | cc/picture_layer_tiling_set_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698