blob: ab7e8567f161f2cf666a693d7f8c2335a2cad8c1 [file] [log] [blame]
// 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_PRIORITY_CALCULATOR_H_
#define CC_PRIORITY_CALCULATOR_H_
#include "cc/cc_export.h"
namespace gfx {
class Rect;
}
namespace cc {
class CC_EXPORT PriorityCalculator {
public:
static int uiPriority(bool drawsToRootSurface);
static int visiblePriority(bool drawsToRootSurface);
static int renderSurfacePriority();
static int lingeringPriority(int previousPriority);
static int priorityFromDistance(const gfx::Rect& visibleRect, const gfx::Rect& textureRect, bool drawsToRootSurface);
static int smallAnimatedLayerMinPriority();
static int highestPriority();
static int lowestPriority();
static inline bool priorityIsLower(int a, int b) { return a > b; }
static inline bool priorityIsHigher(int a, int b) { return a < b; }
static inline int maxPriority(int a, int b) { return priorityIsHigher(a, b) ? a : b; }
static int allowNothingCutoff();
static int allowVisibleOnlyCutoff();
static int allowVisibleAndNearbyCutoff();
static int allowEverythingCutoff();
};
}
#endif // CC_PRIORITY_CALCULATOR_H_