| Index: cc/resources/tile_priority.h
|
| diff --git a/cc/resources/tile_priority.h b/cc/resources/tile_priority.h
|
| index 0052e40ddce8e86129a55432cde7a33c1068f0e4..421bfc9a5d714b9da3defde021fb25c1a336afc0 100644
|
| --- a/cc/resources/tile_priority.h
|
| +++ b/cc/resources/tile_priority.h
|
| @@ -41,19 +41,21 @@ scoped_ptr<base::Value> TileResolutionAsValue(
|
| TileResolution resolution);
|
|
|
| struct CC_EXPORT TilePriority {
|
| + enum PriorityBin { NOW, SOON, EVENTUALLY };
|
| +
|
| TilePriority()
|
| : resolution(NON_IDEAL_RESOLUTION),
|
| required_for_activation(false),
|
| - time_to_visible_in_seconds(std::numeric_limits<float>::infinity()),
|
| - distance_to_visible_in_pixels(std::numeric_limits<float>::infinity()) {}
|
| + priority_bin(EVENTUALLY),
|
| + distance_to_visible(std::numeric_limits<float>::infinity()) {}
|
|
|
| TilePriority(TileResolution resolution,
|
| - float time_to_visible_in_seconds,
|
| - float distance_to_visible_in_pixels)
|
| + PriorityBin bin,
|
| + float distance_to_visible)
|
| : resolution(resolution),
|
| required_for_activation(false),
|
| - time_to_visible_in_seconds(time_to_visible_in_seconds),
|
| - distance_to_visible_in_pixels(distance_to_visible_in_pixels) {}
|
| + priority_bin(bin),
|
| + distance_to_visible(distance_to_visible) {}
|
|
|
| TilePriority(const TilePriority& active, const TilePriority& pending) {
|
| if (active.resolution == HIGH_RESOLUTION ||
|
| @@ -68,29 +70,26 @@ struct CC_EXPORT TilePriority {
|
| required_for_activation =
|
| active.required_for_activation || pending.required_for_activation;
|
|
|
| - time_to_visible_in_seconds =
|
| - std::min(active.time_to_visible_in_seconds,
|
| - pending.time_to_visible_in_seconds);
|
| - distance_to_visible_in_pixels =
|
| - std::min(active.distance_to_visible_in_pixels,
|
| - pending.distance_to_visible_in_pixels);
|
| + if (active.priority_bin < pending.priority_bin) {
|
| + priority_bin = active.priority_bin;
|
| + distance_to_visible = active.distance_to_visible;
|
| + } else if (active.priority_bin > pending.priority_bin) {
|
| + priority_bin = pending.priority_bin;
|
| + distance_to_visible = pending.distance_to_visible;
|
| + } else {
|
| + priority_bin = active.priority_bin;
|
| + distance_to_visible =
|
| + std::min(active.distance_to_visible, pending.distance_to_visible);
|
| + }
|
| }
|
|
|
| scoped_ptr<base::Value> AsValue() const;
|
|
|
| - // Calculate the time for the |current_bounds| to intersect with the
|
| - // |target_bounds| given its previous location and time delta.
|
| - // This function should work for both scaling and scrolling case.
|
| - static float TimeForBoundsToIntersect(const gfx::RectF& previous_bounds,
|
| - const gfx::RectF& current_bounds,
|
| - float time_delta,
|
| - const gfx::RectF& target_bounds);
|
| -
|
| bool operator ==(const TilePriority& other) const {
|
| return resolution == other.resolution &&
|
| - time_to_visible_in_seconds == other.time_to_visible_in_seconds &&
|
| - distance_to_visible_in_pixels == other.distance_to_visible_in_pixels &&
|
| - required_for_activation == other.required_for_activation;
|
| + priority_bin == other.priority_bin &&
|
| + distance_to_visible == other.distance_to_visible &&
|
| + required_for_activation == other.required_for_activation;
|
| }
|
|
|
| bool operator !=(const TilePriority& other) const {
|
| @@ -99,10 +98,12 @@ struct CC_EXPORT TilePriority {
|
|
|
| TileResolution resolution;
|
| bool required_for_activation;
|
| - float time_to_visible_in_seconds;
|
| - float distance_to_visible_in_pixels;
|
| + PriorityBin priority_bin;
|
| + float distance_to_visible;
|
| };
|
|
|
| +scoped_ptr<base::Value> TilePriorityBinAsValue(TilePriority::PriorityBin bin);
|
| +
|
| enum TileMemoryLimitPolicy {
|
| // Nothing.
|
| ALLOW_NOTHING = 0,
|
|
|