| // 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 <stddef.h> |
| |
| #include "cc/base/cc_export.h" |
| #include "cc/tiles/tile_priority.h" |
| #include "gpu/command_buffer/common/gpu_memory_allocation.h" |
| |
| namespace cc { |
| |
| namespace proto { |
| class ManagedMemoryPolicy; |
| } // namespace proto |
| |
| 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; |
| |
| void ToProtobuf(proto::ManagedMemoryPolicy* proto) const; |
| void FromProtobuf(const proto::ManagedMemoryPolicy& proto); |
| |
| size_t bytes_limit_when_visible; |
| gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible; |
| size_t num_resources_limit; |
| |
| static TileMemoryLimitPolicy PriorityCutoffToTileMemoryLimitPolicy( |
| gpu::MemoryAllocation::PriorityCutoff priority_cutoff); |
| }; |
| |
| } // namespace cc |
| |
| #endif // CC_OUTPUT_MANAGED_MEMORY_POLICY_H_ |