summaryrefslogtreecommitdiffstats
path: root/chromium/cc/resources/managed_tile_state.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/cc/resources/managed_tile_state.h')
-rw-r--r--chromium/cc/resources/managed_tile_state.h147
1 files changed, 66 insertions, 81 deletions
diff --git a/chromium/cc/resources/managed_tile_state.h b/chromium/cc/resources/managed_tile_state.h
index dc6f6d62cb6..7224dd64b41 100644
--- a/chromium/cc/resources/managed_tile_state.h
+++ b/chromium/cc/resources/managed_tile_state.h
@@ -7,10 +7,12 @@
#include "base/memory/scoped_ptr.h"
#include "cc/resources/platform_color.h"
-#include "cc/resources/raster_worker_pool.h"
+#include "cc/resources/raster_mode.h"
+#include "cc/resources/rasterizer.h"
#include "cc/resources/resource_pool.h"
#include "cc/resources/resource_provider.h"
#include "cc/resources/scoped_resource.h"
+#include "cc/resources/tile_priority.h"
namespace cc {
@@ -30,90 +32,73 @@ enum ManagedTileBin {
// NOTE: Be sure to update ManagedTileBinAsValue and kBinPolicyMap when adding
// or reordering fields.
};
-scoped_ptr<base::Value> ManagedTileBinAsValue(
- ManagedTileBin bin);
+scoped_ptr<base::Value> ManagedTileBinAsValue(ManagedTileBin bin);
// This is state that is specific to a tile that is
// managed by the TileManager.
class CC_EXPORT ManagedTileState {
public:
class CC_EXPORT TileVersion {
- public:
- enum Mode {
- RESOURCE_MODE,
- SOLID_COLOR_MODE,
- PICTURE_PILE_MODE
- };
-
- TileVersion();
- ~TileVersion();
-
- Mode mode() const {
- return mode_;
- }
-
- bool IsReadyToDraw() const;
-
- ResourceProvider::ResourceId get_resource_id() const {
- DCHECK(mode_ == RESOURCE_MODE);
- DCHECK(resource_);
-
- return resource_->id();
- }
-
- SkColor get_solid_color() const {
- DCHECK(mode_ == SOLID_COLOR_MODE);
-
- return solid_color_;
- }
-
- bool contents_swizzled() const {
- DCHECK(resource_);
- return !PlatformColor::SameComponentOrder(resource_->format());
- }
-
- bool requires_resource() const {
- return mode_ == RESOURCE_MODE ||
- mode_ == PICTURE_PILE_MODE;
- }
-
- size_t GPUMemoryUsageInBytes() const;
-
- void SetSolidColorForTesting(SkColor color) {
- set_solid_color(color);
- }
- void SetHasTextForTesting(bool has_text) {
- has_text_ = has_text;
- }
-
- private:
- friend class TileManager;
- friend class PrioritizedTileSet;
- friend class Tile;
- friend class ManagedTileState;
-
- void set_use_resource() {
- mode_ = RESOURCE_MODE;
- }
-
- void set_solid_color(const SkColor& color) {
- mode_ = SOLID_COLOR_MODE;
- solid_color_ = color;
- }
-
- void set_has_text(bool has_text) {
- has_text_ = has_text;
- }
-
- void set_rasterize_on_demand() {
- mode_ = PICTURE_PILE_MODE;
- }
-
- Mode mode_;
- SkColor solid_color_;
- bool has_text_;
- scoped_ptr<ScopedResource> resource_;
- RasterWorkerPool::RasterTask raster_task_;
+ public:
+ enum Mode { RESOURCE_MODE, SOLID_COLOR_MODE, PICTURE_PILE_MODE };
+
+ TileVersion();
+ ~TileVersion();
+
+ Mode mode() const { return mode_; }
+
+ bool IsReadyToDraw() const;
+
+ ResourceProvider::ResourceId get_resource_id() const {
+ DCHECK(mode_ == RESOURCE_MODE);
+ DCHECK(resource_);
+
+ return resource_->id();
+ }
+
+ SkColor get_solid_color() const {
+ DCHECK(mode_ == SOLID_COLOR_MODE);
+
+ return solid_color_;
+ }
+
+ bool contents_swizzled() const {
+ DCHECK(resource_);
+ return !PlatformColor::SameComponentOrder(resource_->format());
+ }
+
+ bool requires_resource() const {
+ return mode_ == RESOURCE_MODE || mode_ == PICTURE_PILE_MODE;
+ }
+
+ inline bool has_resource() const { return !!resource_; }
+
+ size_t GPUMemoryUsageInBytes() const;
+
+ void SetSolidColorForTesting(SkColor color) { set_solid_color(color); }
+ void SetResourceForTesting(scoped_ptr<ScopedResource> resource) {
+ resource_ = resource.Pass();
+ }
+
+ private:
+ friend class TileManager;
+ friend class PrioritizedTileSet;
+ friend class Tile;
+ friend class ManagedTileState;
+
+ void set_use_resource() { mode_ = RESOURCE_MODE; }
+
+ void set_solid_color(const SkColor& color) {
+ mode_ = SOLID_COLOR_MODE;
+ solid_color_ = color;
+ }
+
+ void set_rasterize_on_demand() { mode_ = PICTURE_PILE_MODE; }
+
+ Mode mode_;
+ SkColor solid_color_;
+ scoped_ptr<ScopedResource> resource_;
+ scoped_refptr<RasterTask> raster_task_;
};
ManagedTileState();
@@ -129,8 +114,8 @@ class CC_EXPORT ManagedTileState {
TileResolution resolution;
bool required_for_activation;
- float time_to_needed_in_seconds;
- float distance_to_visible_in_pixels;
+ TilePriority::PriorityBin priority_bin;
+ float distance_to_visible;
bool visible_and_ready_to_draw;
// Priority for this state from the last time we assigned memory.