| Index: cc/tile.h
|
| diff --git a/cc/tile.h b/cc/tile.h
|
| index fb57375af62d9ad1a286a5ad852ba96829f1e45b..0d82d7e41c533b130dae35131122e198a94e1a3e 100644
|
| --- a/cc/tile.h
|
| +++ b/cc/tile.h
|
| @@ -6,6 +6,8 @@
|
| #define CC_TILE_H_
|
|
|
| #include "base/memory/ref_counted.h"
|
| +#include "base/memory/scoped_ptr.h"
|
| +#include "base/memory/scoped_vector.h"
|
| #include "cc/picture_pile.h"
|
| #include "cc/resource_provider.h"
|
| #include "cc/tile_priority.h"
|
| @@ -14,6 +16,7 @@
|
|
|
| namespace cc {
|
|
|
| +class Tile;
|
| class TileManager;
|
|
|
| enum TileQuality {
|
| @@ -21,30 +24,74 @@ enum TileQuality {
|
| NORMAL_TILE_QUALITY
|
| };
|
|
|
| +class TileVersion {
|
| +public:
|
| + TileVersion(Tile* tile, int frame_number,
|
| + PicturePile* picture_pile)
|
| + : tile_(tile),
|
| + frame_number_(frame_number),
|
| + picture_pile_(picture_pile),
|
| + resource_id_(0) {}
|
| +
|
| + int frame_number() const { return frame_number_; }
|
| +
|
| + const PicturePile* picture_pile() const {
|
| + return picture_pile_;
|
| + }
|
| +
|
| + const TilePriority& priority() const {
|
| + return priority_;
|
| + }
|
| +
|
| + void ModifyPriority(const TilePriority& priority) {
|
| + priority_ = priority;
|
| + }
|
| +
|
| + ResourceProvider::ResourceId resource_id() const {
|
| + return resource_id_;
|
| + }
|
| +
|
| +private:
|
| + Tile* tile_;
|
| + int frame_number_;
|
| + PicturePile* picture_pile_;
|
| + TilePriority priority_;
|
| + ResourceProvider::ResourceId resource_id_;
|
| +};
|
| +
|
| class Tile : public base::RefCounted<Tile> {
|
| public:
|
| Tile(TileManager* tile_manager,
|
| gfx::Size tile_size,
|
| + GLenum format,
|
| gfx::Rect rect_inside_picture,
|
| TileQuality quality);
|
|
|
| - void SetPicturePile(int frame_number, scoped_ptr<PicturePile> picture_pile) {}
|
| - void SetPriority(int frame_number, TilePriority) {}
|
| + void SetPicturePile(int frame_number, PicturePile* picture_pile);
|
| + void ModifyPriority(int frame_number, const TilePriority& priority);
|
|
|
| - bool IsDrawable(int frame_number) { return false; }
|
| - ResourceProvider::ResourceId GetDrawableResourceId(int frame_number) { return 0; }
|
| + // Returns 0 if not drawable.
|
| + ResourceProvider::ResourceId GetDrawableResourceId(int frame_number);
|
| +
|
| + protected:
|
| + // Methods called by TileManager.
|
| + void DeleteVersionOnRequestOfTileManager(int frame_number);
|
|
|
| private:
|
| friend class base::RefCounted<Tile>;
|
| friend class TileManager;
|
|
|
| + TileVersion* GetVersion(int frame_number);
|
| ~Tile();
|
|
|
| TileManager* tile_manager_;
|
| gfx::Rect tile_size_;
|
| + GLenum format_;
|
| gfx::Rect rect_inside_picture_;
|
| TileQuality quality_;
|
| + ScopedVector<TileVersion> versions_;
|
| };
|
|
|
| +
|
| } // namespace cc
|
| #endif
|
|
|