Index: cc/tile_priority.h |
diff --git a/cc/tile_priority.h b/cc/tile_priority.h |
deleted file mode 100644 |
index ea23df4e95b92c5faec9e2e261ed8cce8f9e80aa..0000000000000000000000000000000000000000 |
--- a/cc/tile_priority.h |
+++ /dev/null |
@@ -1,180 +0,0 @@ |
-// Copyright 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CC_TILE_PRIORITY_H_ |
-#define CC_TILE_PRIORITY_H_ |
- |
-#include <limits> |
- |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "cc/picture_pile.h" |
-#include "ui/gfx/quad_f.h" |
-#include "ui/gfx/rect.h" |
-#include "ui/gfx/size.h" |
- |
-namespace base { |
-class Value; |
-} |
- |
-namespace cc { |
- |
-enum WhichTree { |
- // Note: these must be 0 and 1 because we index with them in various places, |
- // e.g. in Tile::priority_. |
- ACTIVE_TREE = 0, |
- PENDING_TREE = 1, |
- NUM_TREES = 2 |
- // Be sure to update WhichTreeAsValue when adding new fields. |
-}; |
-scoped_ptr<base::Value> WhichTreeAsValue( |
- WhichTree tree); |
- |
-enum TileResolution { |
- LOW_RESOLUTION = 0 , |
- HIGH_RESOLUTION = 1, |
- NON_IDEAL_RESOLUTION = 2, |
-}; |
-scoped_ptr<base::Value> TileResolutionAsValue( |
- TileResolution resolution); |
- |
-struct CC_EXPORT TilePriority { |
- TilePriority() |
- : is_live(false), |
- resolution(NON_IDEAL_RESOLUTION), |
- time_to_visible_in_seconds(std::numeric_limits<float>::infinity()), |
- distance_to_visible_in_pixels(std::numeric_limits<float>::infinity()) {} |
- |
- TilePriority( |
- TileResolution resolution, |
- float time_to_visible_in_seconds, |
- float distance_to_visible_in_pixels) |
- : is_live(true), |
- resolution(resolution), |
- time_to_visible_in_seconds(time_to_visible_in_seconds), |
- distance_to_visible_in_pixels(distance_to_visible_in_pixels) {} |
- |
- TilePriority(const TilePriority& active, const TilePriority& pending) { |
- if (!pending.is_live) { |
- if (!active.is_live) { |
- is_live = false; |
- return; |
- } |
- is_live = true; |
- resolution = active.resolution; |
- time_to_visible_in_seconds = active.time_to_visible_in_seconds; |
- distance_to_visible_in_pixels = active.distance_to_visible_in_pixels; |
- return; |
- } else if (!active.is_live) { |
- is_live = true; |
- resolution = pending.resolution; |
- time_to_visible_in_seconds = pending.time_to_visible_in_seconds; |
- distance_to_visible_in_pixels = pending.distance_to_visible_in_pixels; |
- return; |
- } |
- |
- is_live = true; |
- if (active.resolution == HIGH_RESOLUTION || |
- pending.resolution == HIGH_RESOLUTION) |
- resolution = HIGH_RESOLUTION; |
- else if (active.resolution == LOW_RESOLUTION || |
- pending.resolution == LOW_RESOLUTION) |
- resolution = LOW_RESOLUTION; |
- else |
- resolution = NON_IDEAL_RESOLUTION; |
- |
- 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); |
- } |
- void set_current_screen_quad(const gfx::QuadF& q) { current_screen_quad = q; } |
- |
- scoped_ptr<base::Value> AsValue() const; |
- |
- static const float kMaxDistanceInContentSpace; |
- static const int64 kNumTilesToCoverWithInflatedViewportRectForPrioritization; |
- |
- static inline float manhattanDistance(const gfx::RectF& a, const gfx::RectF& b) { |
- // Compute the union explicitly. |
- gfx::RectF c = gfx::RectF( |
- std::min(a.x(), b.x()), |
- std::min(a.y(), b.y()), |
- std::max(a.right(), b.right()) - std::min(a.x(), b.x()), |
- std::max(a.bottom(), b.bottom()) - std::min(a.y(), b.y())); |
- |
- // Rects touching the edge of the screen should not be considered visible. |
- // So we add 1 pixel here to avoid that situation. |
- float x = std::max(0.0f, c.width() - a.width() - b.width() + 1.0f); |
- float y = std::max(0.0f, c.height() - a.height() - b.height() + 1.0f); |
- return (x + y); |
- } |
- |
- // 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); |
- |
- // If a tile is not live, then all other fields are invalid. |
- bool is_live; |
- TileResolution resolution; |
- float time_to_visible_in_seconds; |
- float distance_to_visible_in_pixels; |
- |
-private: |
- gfx::QuadF current_screen_quad; |
-}; |
- |
-enum TileMemoryLimitPolicy { |
- // Nothing. |
- ALLOW_NOTHING, |
- |
- // You might be made visible, but you're not being interacted with. |
- ALLOW_ABSOLUTE_MINIMUM, // Tall. |
- |
- // You're being interacted with, but we're low on memory. |
- ALLOW_PREPAINT_ONLY, // Grande. |
- |
- // You're the only thing in town. Go crazy. |
- ALLOW_ANYTHING, // Venti. |
- |
- // Be sure to update TreePriorityAsValue when adding new fields. |
-}; |
-scoped_ptr<base::Value> TileMemoryLimitPolicyAsValue( |
- TileMemoryLimitPolicy policy); |
- |
-enum TreePriority { |
- SAME_PRIORITY_FOR_BOTH_TREES, |
- SMOOTHNESS_TAKES_PRIORITY, |
- NEW_CONTENT_TAKES_PRIORITY |
- |
- // Be sure to update TreePriorityAsValue when adding new fields. |
-}; |
-scoped_ptr<base::Value> TreePriorityAsValue(TreePriority prio); |
- |
-class GlobalStateThatImpactsTilePriority { |
- public: |
- GlobalStateThatImpactsTilePriority() |
- : memory_limit_policy(ALLOW_NOTHING) |
- , memory_limit_in_bytes(0) |
- , tree_priority(SAME_PRIORITY_FOR_BOTH_TREES) { |
- } |
- |
- TileMemoryLimitPolicy memory_limit_policy; |
- |
- size_t memory_limit_in_bytes; |
- |
- TreePriority tree_priority; |
- |
- scoped_ptr<base::Value> AsValue() const; |
-}; |
- |
-} // namespace cc |
- |
-#endif // CC_TILE_PRIORITY_H_ |