1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CCPriorityCalculator_h
6 #define CCPriorityCalculator_h
8 #include "GraphicsContext3D.h"
14 class CCPriorityCalculator
{
16 static int uiPriority(bool drawsToRootSurface
);
17 static int visiblePriority(bool drawsToRootSurface
);
18 static int renderSurfacePriority();
19 static int lingeringPriority(int previousPriority
);
20 int priorityFromDistance(const IntRect
& visibleRect
, const IntRect
& textureRect
, bool drawsToRootSurface
) const;
21 int priorityFromDistance(unsigned pixels
, bool drawsToRootSurface
) const;
22 int priorityFromVisibility(bool visible
, bool drawsToRootSurface
) const;
24 static inline int highestPriority() { return std::numeric_limits
<int>::min(); }
25 static inline int lowestPriority() { return std::numeric_limits
<int>::max(); }
26 static inline bool priorityIsLower(int a
, int b
) { return a
> b
; }
27 static inline bool priorityIsHigher(int a
, int b
) { return a
< b
; }
28 static inline bool maxPriority(int a
, int b
) { return priorityIsHigher(a
, b
) ? a
: b
; }