// Copyright 2010 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_RESOURCES_PRIORITY_CALCULATOR_H_ #define CC_RESOURCES_PRIORITY_CALCULATOR_H_ #include "base/basictypes.h" #include "cc/base/cc_export.h" namespace gfx { class Rect; } namespace cc { class CC_EXPORT PriorityCalculator { public: PriorityCalculator() {} static int UIPriority(bool draws_to_root_surface); static int VisiblePriority(bool draws_to_root_surface); static int RenderSurfacePriority(); static int LingeringPriority(int previous_priority); static int PriorityFromDistance(gfx::Rect visible_rect, gfx::Rect texture_rect, bool draws_to_root_surface); static int SmallAnimatedLayerMinPriority(); static int HighestPriority(); static int LowestPriority(); static inline bool priority_is_lower(int a, int b) { return a > b; } static inline bool priority_is_higher(int a, int b) { return a < b; } static inline int max_priority(int a, int b) { return priority_is_higher(a, b) ? a : b; } static int AllowNothingCutoff(); static int AllowVisibleOnlyCutoff(); static int AllowVisibleAndNearbyCutoff(); static int AllowEverythingCutoff(); private: DISALLOW_COPY_AND_ASSIGN(PriorityCalculator); }; } // namespace cc #endif // CC_RESOURCES_PRIORITY_CALCULATOR_H_