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

Unified Diff: cc/tile_manager.cc

Issue 11364194: Introduce Tile Versions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 1 month 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/tile_manager.h ('k') | cc/tile_priority.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tile_manager.cc
diff --git a/cc/tile_manager.cc b/cc/tile_manager.cc
index 68f399c3bdc417ac0565336b7a22ee90acce2744..ced363c0314db737cbba7cbe011cdd7129e0b966 100644
--- a/cc/tile_manager.cc
+++ b/cc/tile_manager.cc
@@ -8,26 +8,56 @@
namespace cc {
-TileManager::TileManager(TileManagerClient* client) {
+TileManager::TileManager(TileManagerClient* client)
+ : client_(client)
+ , manage_tiles_pending_(false)
+{
}
TileManager::~TileManager() {
- DCHECK(registered_tiles_.size() == 0);
+ ManageTiles();
+ DCHECK(tile_versions_.size() == 0);
}
-void TileManager::RegisterTile(Tile* tile) {
- registered_tiles_.push_back(tile);
+void TileManager::SetGlobalState(const GlobalStateThatImpactsTilePriority& global_state) {
+ global_state_ = global_state;
+ ScheduleManageTiles();
}
-void TileManager::UnregisterTile(Tile* tile) {
- // TODO(nduca): Known slow. Shrug. Fish need frying.
- for (size_t i = 0; i < registered_tiles_.size(); i++) {
- if (registered_tiles_[i] == tile) {
- registered_tiles_.erase(registered_tiles_.begin() + i);
+void TileManager::ManageTiles() {
+ // Figure out how much memory we would be willing to give out.
+
+ // Free up memory.
+
+ // GC old versions.
+}
+
+void TileManager::DidCreateTileVersion(TileVersion* version) {
+ tile_versions_.push_back(version);
+ ScheduleManageTiles();
+}
+
+void TileManager::DidDeleteTileVersion(TileVersion* version) {
+ for (size_t i = 0; i < tile_versions_.size(); i++) {
+ if (tile_versions_[i] == version) {
+ tile_versions_.erase(tile_versions_.begin() + i);
return;
}
}
- DCHECK(false) << "Tile " << tile << " wasnt regitered.";
+ DCHECK(false) << "Could not find tile version.";
+}
+
+void TileManager::WillModifyTileVersionPriority(TileVersion*, const TilePriority& new_priority) {
+ // TODO(nduca): Do something smarter if reprioritization turns out to be
+ // costly.
+ ScheduleManageTiles();
+}
+
+void TileManager::ScheduleManageTiles() {
+ if (manage_tiles_pending_)
+ return;
+ ScheduleManageTiles();
+ manage_tiles_pending_ = true;
}
}
« no previous file with comments | « cc/tile_manager.h ('k') | cc/tile_priority.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698