Chromium Code Reviews| Index: cc/resources/tile.h |
| diff --git a/cc/resources/tile.h b/cc/resources/tile.h |
| index 2aa4c651480412fd7a58d2a6274d484c27110d87..44eb9f1da41f074a06824acd6cc3d5f4396aaddb 100644 |
| --- a/cc/resources/tile.h |
| +++ b/cc/resources/tile.h |
| @@ -10,6 +10,7 @@ |
| #include "base/memory/scoped_vector.h" |
| #include "cc/resources/managed_tile_state.h" |
| #include "cc/resources/picture_pile_impl.h" |
| +#include "cc/resources/tile_manager.h" |
| #include "cc/resources/tile_priority.h" |
| #include "cc/trees/layer_tree_host_impl.h" |
| #include "ui/gfx/rect.h" |
| @@ -18,7 +19,6 @@ |
| namespace cc { |
| class Tile; |
| -class TileManager; |
| class CC_EXPORT Tile : public base::RefCounted<Tile> { |
| public: |
| @@ -35,6 +35,10 @@ class CC_EXPORT Tile : public base::RefCounted<Tile> { |
| return picture_pile_.get(); |
| } |
| + const PicturePileImpl* picture_pile() const { |
| + return picture_pile_.get(); |
| + } |
| + |
| const TilePriority& priority(WhichTree tree) const { |
| return priority_[tree]; |
| } |
| @@ -59,10 +63,18 @@ class CC_EXPORT Tile : public base::RefCounted<Tile> { |
| scoped_ptr<base::Value> AsValue() const; |
| const ManagedTileState::TileVersion& tile_version() const { |
|
reveman
2013/06/05 18:01:32
tile_version() magically returning the tile versio
vmpstr
2013/06/06 01:54:20
Done.
|
| - return managed_state_.tile_version; |
| + for (int mode = NUM_RASTER_MODES - 1; mode >= 0; --mode) { |
| + if (managed_state_.tile_versions[mode].IsReadyToDraw()) |
| + return managed_state_.tile_versions[mode]; |
| + } |
| + return managed_state_.tile_versions[managed_state_.raster_mode]; |
| } |
| ManagedTileState::TileVersion& tile_version() { |
| - return managed_state_.tile_version; |
| + for (int mode = NUM_RASTER_MODES - 1; mode >= 0; --mode) { |
| + if (managed_state_.tile_versions[mode].IsReadyToDraw()) |
| + return managed_state_.tile_versions[mode]; |
| + } |
| + return managed_state_.tile_versions[managed_state_.raster_mode]; |
| } |
| gfx::Rect opaque_rect() const { return opaque_rect_; } |
| @@ -84,10 +96,17 @@ class CC_EXPORT Tile : public base::RefCounted<Tile> { |
| // For test only methods. |
| bool HasRasterTaskForTesting() const { |
| - return !managed_state().raster_task.is_null(); |
| + for (int mode = 0; mode < NUM_RASTER_MODES; ++mode) { |
| + if (!managed_state().tile_versions[mode].raster_task_.is_null()) |
| + return true; |
| + } |
| + return false; |
| } |
| void ResetRasterTaskForTesting() { |
| - managed_state().raster_task.Reset(); |
| + for (int mode = 0; mode < NUM_RASTER_MODES; ++mode) { |
| + if (!managed_state().tile_versions[mode].raster_task_.is_null()) |
|
reveman
2013/06/05 18:01:32
can you remove this and always call Reset instead?
vmpstr
2013/06/06 01:54:20
Done.
|
| + managed_state().tile_versions[mode].raster_task_.Reset(); |
| + } |
| } |
| private: |