| Index: cc/resources/tile_manager.h
|
| ===================================================================
|
| --- cc/resources/tile_manager.h (revision 211727)
|
| +++ cc/resources/tile_manager.h (working copy)
|
| @@ -18,11 +18,10 @@
|
| #include "cc/resources/picture_pile_impl.h"
|
| #include "cc/resources/raster_worker_pool.h"
|
| #include "cc/resources/resource_pool.h"
|
| +#include "cc/resources/tile.h"
|
|
|
| namespace cc {
|
| class ResourceProvider;
|
| -class Tile;
|
| -class TileVersion;
|
|
|
| class CC_EXPORT TileManagerClient {
|
| public:
|
| @@ -67,8 +66,8 @@
|
| }
|
|
|
| bool AreTilesRequiredForActivationReady() const {
|
| - return tiles_that_need_to_be_initialized_for_activation_.empty() &&
|
| - oom_tiles_that_need_to_be_initialized_for_activation_.empty();
|
| + return all_tiles_required_for_activation_have_been_initialized_ &&
|
| + all_tiles_required_for_activation_have_memory_;
|
| }
|
|
|
| protected:
|
| @@ -91,57 +90,61 @@
|
| virtual void DidFinishedRunningTasks() OVERRIDE;
|
| virtual void DidFinishedRunningTasksRequiredForActivation() OVERRIDE;
|
|
|
| + typedef std::vector<Tile*> TileVector;
|
| + typedef std::vector<scoped_refptr<Tile> > TileRefVector;
|
| + typedef std::set<Tile*> TileSet;
|
| +
|
| // Virtual for test
|
| - virtual void ScheduleTasks();
|
| + virtual void ScheduleTasks(
|
| + const TileVector& tiles_that_need_to_be_rasterized);
|
|
|
| - const std::vector<Tile*>& tiles_that_need_to_be_rasterized() const {
|
| - return tiles_that_need_to_be_rasterized_;
|
| - }
|
| + void ReassignGpuMemoryToOOMTilesRequiredForActivation(
|
| + const TileRefVector& sorted_tiles,
|
| + TileVector* tiles_that_need_to_be_rasterized,
|
| + TileSet* oom_tiles_required_for_activation);
|
| + void AssignGpuMemoryToTiles(
|
| + const TileRefVector& sorted_tiles,
|
| + TileVector* tiles_that_need_to_be_rasterized,
|
| + TileSet* oom_tiles_required_for_activation);
|
| + void AssignBinsToTiles(TileRefVector* tiles);
|
| + void SortTiles(TileRefVector* tiles);
|
| + void GetSortedTiles(TileRefVector* tiles);
|
|
|
| - void ReassignGpuMemoryToOOMTilesRequiredForActivation();
|
| -
|
| private:
|
| void OnImageDecodeTaskCompleted(
|
| int layer_id,
|
| skia::LazyPixelRef* pixel_ref,
|
| bool was_canceled);
|
| void OnRasterTaskCompleted(
|
| - scoped_refptr<Tile> tile,
|
| + Tile::Id tile,
|
| scoped_ptr<ResourcePool::Resource> resource,
|
| RasterMode raster_mode,
|
| const PicturePileImpl::Analysis& analysis,
|
| bool was_canceled);
|
|
|
| - void AssignBinsToTiles();
|
| - void SortTiles();
|
| RasterMode DetermineRasterMode(const Tile* tile) const;
|
| void CleanUpUnusedImageDecodeTasks();
|
| - void AssignGpuMemoryToTiles();
|
| void FreeResourceForTile(Tile* tile, RasterMode mode);
|
| void FreeResourcesForTile(Tile* tile);
|
| void FreeUnusedResourcesForTile(Tile* tile);
|
| RasterWorkerPool::Task CreateImageDecodeTask(
|
| Tile* tile, skia::LazyPixelRef* pixel_ref);
|
| RasterWorkerPool::RasterTask CreateRasterTask(Tile* tile);
|
| - void DidFinishTileInitialization(Tile* tile);
|
| - void DidTileTreeBinChange(Tile* tile,
|
| - ManagedTileBin new_tree_bin,
|
| - WhichTree tree);
|
| scoped_ptr<base::Value> GetMemoryRequirementsAsValue() const;
|
| - void AddRequiredTileForActivation(Tile* tile);
|
|
|
| TileManagerClient* client_;
|
| scoped_ptr<ResourcePool> resource_pool_;
|
| scoped_ptr<RasterWorkerPool> raster_worker_pool_;
|
| GlobalStateThatImpactsTilePriority global_state_;
|
|
|
| - typedef std::vector<Tile*> TileVector;
|
| - TileVector tiles_;
|
| - TileVector tiles_that_need_to_be_rasterized_;
|
| - typedef std::set<Tile*> TileSet;
|
| - TileSet tiles_that_need_to_be_initialized_for_activation_;
|
| - TileSet oom_tiles_that_need_to_be_initialized_for_activation_;
|
| + typedef base::hash_map<Tile::Id, Tile*> TileMap;
|
| + TileMap tiles_;
|
|
|
| + TileRefVector sorted_tiles_;
|
| +
|
| + bool all_tiles_required_for_activation_have_been_initialized_;
|
| + bool all_tiles_required_for_activation_have_memory_;
|
| +
|
| bool ever_exceeded_memory_budget_;
|
| MemoryHistory::Entry memory_stats_from_last_assign_;
|
|
|
|
|