Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(762)

Unified Diff: cc/tile_priority.h

Issue 11364194: Introduce Tile Versions (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/tile_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/tile_priority.h
diff --git a/cc/tile_priority.h b/cc/tile_priority.h
index 357fb9ed111709979c3821ca8e953065b9710acd..41c30acc9c59a2d1844dd57665e58fd229477e39 100644
--- a/cc/tile_priority.h
+++ b/cc/tile_priority.h
@@ -7,21 +7,23 @@
#include "base/memory/ref_counted.h"
#include "cc/picture_pile.h"
-#include "cc/tile_priority.h"
#include "ui/gfx/rect.h"
#include "ui/gfx/size.h"
namespace cc {
struct TilePriority {
+ // Set to true for tiles that should be favored during, for example,
+ // scrolls.
+ bool on_primary_tree;
+
// A given layer may have multiple tilings, of differing quality.
// would_be_drawn is set for the tiles that are visible that would be
// drawn if they were chosen.
bool would_be_drawn;
- // Set to true for tiles that should be favored during, for example,
- // scrolls.
- bool on_primary_tree;
+ // We expect it to be useful soon.
+ bool nice_to_have;
// Used to prefer tiles near to the viewport.
float distance_to_viewport;
@@ -29,10 +31,46 @@ struct TilePriority {
// TODO(enne): some metric that penalizes blurriness.
};
+enum TileMemoryLimitPolicy {
+ // Nothing.
+ ALLOW_NOTHING,
+
+ // Use as little as possible.
+ ALLOW_ONLY_REQUIRED, // On primary tree, would be drawn.
+
+ // Use as little as possible.
+ ALLOW_NICE_TO_HAVE, // On either tree, nice to have
+
+ // Use as much memory, up to memory size.
+ ALLOW_ANYTHING,
+};
+
+class GlobalStateThatImpactsTilePriority {
+public:
+ GlobalStateThatImpactsTilePriority()
+ : memory_limit_policy(ALLOW_NOTHING)
+ , memory_limit_in_bytes(0)
+ , smoothness_takes_priority(false)
+ , pending_tree_frame_number(-1)
+ , active_tree_frame_number(-1) {
+ }
+
+ TileMemoryLimitPolicy memory_limit_policy;
+
+ size_t memory_limit_in_bytes;
+
+ // Set when scrolling.
+ bool smoothness_takes_priority;
+
+ // Use -1 if no tree.
+ int pending_tree_frame_number;
+ int active_tree_frame_number;
+};
+
class TilePriorityComparator {
public:
- TilePriorityComparator(bool currently_scrolling)
- : currently_scrolling_(currently_scrolling) {}
+ TilePriorityComparator(GlobalStateThatImpactsTilePriority& global_state)
+ : global_state_(global_state) {}
int compare(const TilePriority& a, const TilePriority& b) {
// TODO(nduca,enne): Implement a comparator using the attributes here.
@@ -40,7 +78,7 @@ class TilePriorityComparator {
}
private:
- bool currently_scrolling_;
+ GlobalStateThatImpactsTilePriority global_state_;
};
} // namespace cc
« no previous file with comments | « cc/tile_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698