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

Unified Diff: cc/tile.cc

Issue 11417002: First draft of TileManager's tile prioritzation system (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.h ('k') | cc/tile_manager.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tile.cc
diff --git a/cc/tile.cc b/cc/tile.cc
index 7c205e88010fd1b7a79087cf694e306e3a945b45..dcf2b6c0f79eb4c6b4023bfc7be8238ba41efaab 100644
--- a/cc/tile.cc
+++ b/cc/tile.cc
@@ -5,65 +5,35 @@
#include "cc/tile.h"
#include "cc/tile_manager.h"
+#include "third_party/khronos/GLES2/gl2.h"
namespace cc {
Tile::Tile(TileManager* tile_manager,
+ PicturePile* picture_pile,
gfx::Size tile_size,
GLenum format,
- gfx::Rect rect_inside_picture,
- TileQuality quality)
+ gfx::Rect rect_inside_picture)
: tile_manager_(tile_manager),
+ picture_pile_(picture_pile),
tile_size_(tile_size),
format_(format),
- rect_inside_picture_(rect_inside_picture),
- quality_(quality) {
+ rect_inside_picture_(rect_inside_picture) {
+ tile_manager_->RegisterTile(this);
}
Tile::~Tile() {
- for (size_t i = 0; i < versions_.size(); i++)
- tile_manager_->DidDeleteTileVersion(versions_[i]);
- versions_.clear();
+ tile_manager_->UnregisterTile(this);
}
-void Tile::SetPicturePile(int frame_number, PicturePile* picture_pile) {
- DCHECK(GetVersion(frame_number) == NULL);
- TileVersion* version = new TileVersion(this, frame_number, picture_pile);
- versions_.push_back(version);
- tile_manager_->DidCreateTileVersion(version);
+void Tile::set_priority(WhichTree tree, const TilePriority& priority) {
+ tile_manager_->WillModifyTilePriority(this, tree, priority);
+ priority_[tree] = priority;
}
-void Tile::ModifyPriority(int frame_number, const TilePriority& priority) {
- TileVersion* version = GetVersion(frame_number);
- DCHECK(version) <<
- "Tile must have a picture pile before its priority can be modified";
- tile_manager_->WillModifyTileVersionPriority(version, priority);
- version->ModifyPriority(priority);
-}
-
-ResourceProvider::ResourceId Tile::GetDrawableResourceId(int frame_number) {
- TileVersion* version = GetVersion(frame_number);
- if (!version)
- return 0;
- return version->resource_id();
-}
-
-void Tile::DeleteVersionOnRequestOfTileManager(int frame_number) {
- for (size_t i = 0; i < versions_.size(); i++) {
- if (versions_[i]->frame_number() == frame_number) {
- versions_.erase(versions_.begin() + frame_number);
- return;
- }
- }
- DCHECK(false) << "Could not find version";
-}
-
-TileVersion* Tile::GetVersion(int frame_number) {
- for (size_t i = 0; i < versions_.size(); i++) {
- if (versions_[i]->frame_number() == frame_number)
- return versions_[i];
- }
- return NULL;
+size_t Tile::bytes_consumed_if_allocated() const {
+ DCHECK(format_ == GL_RGBA);
+ return 4 * tile_size_.width() * tile_size_.height();
}
} // namespace cc
« no previous file with comments | « cc/tile.h ('k') | cc/tile_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698