| Index: cc/resources/picture_layer_tiling.h
|
| diff --git a/cc/resources/picture_layer_tiling.h b/cc/resources/picture_layer_tiling.h
|
| index 7d7626e74706f2f06e8395fd381e9d896aa45943..f5da1cf66a5a27d607b65ed3a03f542b5b7d3934 100644
|
| --- a/cc/resources/picture_layer_tiling.h
|
| +++ b/cc/resources/picture_layer_tiling.h
|
| @@ -15,6 +15,7 @@
|
| #include "cc/base/region.h"
|
| #include "cc/base/tiling_data.h"
|
| #include "cc/resources/tile.h"
|
| +#include "cc/resources/tile_bundle.h"
|
| #include "cc/resources/tile_priority.h"
|
| #include "ui/gfx/rect.h"
|
|
|
| @@ -29,12 +30,19 @@ class CC_EXPORT PictureLayerTilingClient {
|
| virtual scoped_refptr<Tile> CreateTile(
|
| PictureLayerTiling* tiling,
|
| gfx::Rect content_rect) = 0;
|
| + virtual scoped_refptr<TileBundle> CreateTileBundle(int width,
|
| + int height,
|
| + int offset_x,
|
| + int offset_y) = 0;
|
| virtual void UpdatePile(Tile* tile) = 0;
|
| virtual gfx::Size CalculateTileSize(
|
| gfx::Size content_bounds) const = 0;
|
| virtual const Region* GetInvalidation() = 0;
|
| virtual const PictureLayerTiling* GetTwinTiling(
|
| const PictureLayerTiling* tiling) = 0;
|
| + virtual bool IsActive() const = 0;
|
| + virtual bool IsPending() const = 0;
|
| + virtual bool IsRecycled() const = 0;
|
|
|
| protected:
|
| virtual ~PictureLayerTilingClient() {}
|
| @@ -72,9 +80,11 @@ class CC_EXPORT PictureLayerTiling {
|
|
|
| std::vector<Tile*> AllTilesForTesting() const {
|
| std::vector<Tile*> all_tiles;
|
| - for (TileMap::const_iterator it = tiles_.begin();
|
| - it != tiles_.end(); ++it)
|
| - all_tiles.push_back(it->second.get());
|
| + for (TileBundleMap::const_iterator it = tile_bundles_.begin();
|
| + it != tile_bundles_.end(); ++it) {
|
| + for (TileBundle::Iterator tile_it(it->second.get()); tile_it; ++tile_it)
|
| + all_tiles.push_back(*tile_it);
|
| + }
|
| return all_tiles;
|
| }
|
|
|
| @@ -104,6 +114,9 @@ class CC_EXPORT PictureLayerTiling {
|
| Tile* operator->() const { return current_tile_; }
|
| Tile* operator*() const { return current_tile_; }
|
|
|
| + TilePriority priority();
|
| + void SetPriorityForTesting(const TilePriority& priority);
|
| +
|
| CoverageIterator& operator++();
|
| operator bool() const { return tile_j_ <= bottom_; }
|
|
|
| @@ -184,15 +197,22 @@ class CC_EXPORT PictureLayerTiling {
|
| }
|
|
|
| protected:
|
| - typedef std::pair<int, int> TileMapKey;
|
| - typedef base::hash_map<TileMapKey, scoped_refptr<Tile> > TileMap;
|
| + friend class TileBundle;
|
| +
|
| + typedef std::pair<int, int> TileBundleMapKey;
|
| + typedef base::hash_map<TileBundleMapKey, scoped_refptr<TileBundle> >
|
| + TileBundleMap;
|
|
|
| PictureLayerTiling(float contents_scale,
|
| gfx::Size layer_bounds,
|
| PictureLayerTilingClient* client);
|
| void SetLiveTilesRect(gfx::Rect live_tiles_rect);
|
| void CreateTile(int i, int j, const PictureLayerTiling* twin_tiling);
|
| + bool RemoveTile(int i, int j);
|
| Tile* TileAt(int, int) const;
|
| + TileBundle* TileBundleContainingTileAt(int, int) const;
|
| + TileBundle* CreateBundleForTileAt(int, int);
|
| + TileBundle* TileBundleAt(int, int) const;
|
|
|
| // Given properties.
|
| float contents_scale_;
|
| @@ -202,7 +222,9 @@ class CC_EXPORT PictureLayerTiling {
|
|
|
| // Internal data.
|
| TilingData tiling_data_;
|
| - TileMap tiles_; // It is not legal to have a NULL tile in the tiles_ map.
|
| + TilingData bundle_tiling_data_;
|
| + TileBundleMap tile_bundles_; // It is not legal to have a NULL tile in the
|
| + // tiles_ map.
|
| gfx::Rect live_tiles_rect_;
|
|
|
| // State saved for computing velocities based upon finite differences.
|
|
|