// Copyright 2013 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_OUTPUT_MANAGED_MEMORY_POLICY_H_ #define CC_OUTPUT_MANAGED_MEMORY_POLICY_H_ #include "base/basictypes.h" #include "cc/base/cc_export.h" #include "cc/resources/tile_priority.h" #include "gpu/command_buffer/common/gpu_memory_allocation.h" namespace cc { struct CC_EXPORT ManagedMemoryPolicy { static const size_t kDefaultNumResourcesLimit; explicit ManagedMemoryPolicy(size_t bytes_limit_when_visible); explicit ManagedMemoryPolicy( const gpu::MemoryAllocation& allocation); ManagedMemoryPolicy( size_t bytes_limit_when_visible, gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible, size_t num_resources_limit); bool operator==(const ManagedMemoryPolicy&) const; bool operator!=(const ManagedMemoryPolicy&) const; size_t bytes_limit_when_visible; gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible; size_t num_resources_limit; static int PriorityCutoffToValue( gpu::MemoryAllocation::PriorityCutoff priority_cutoff); static TileMemoryLimitPolicy PriorityCutoffToTileMemoryLimitPolicy( gpu::MemoryAllocation::PriorityCutoff priority_cutoff); }; } // namespace cc #endif // CC_OUTPUT_MANAGED_MEMORY_POLICY_H_