1 // Copyright 2013 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 CC_OUTPUT_MANAGED_MEMORY_POLICY_H_
6 #define CC_OUTPUT_MANAGED_MEMORY_POLICY_H_
8 #include "base/basictypes.h"
9 #include "cc/base/cc_export.h"
10 #include "cc/resources/tile_priority.h"
11 #include "gpu/command_buffer/common/gpu_memory_allocation.h"
15 struct CC_EXPORT ManagedMemoryPolicy
{
16 static const size_t kDefaultNumResourcesLimit
;
18 explicit ManagedMemoryPolicy(size_t bytes_limit_when_visible
);
19 explicit ManagedMemoryPolicy(
20 const gpu::MemoryAllocation
& allocation
);
22 size_t bytes_limit_when_visible
,
23 gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible
,
24 size_t num_resources_limit
);
25 bool operator==(const ManagedMemoryPolicy
&) const;
26 bool operator!=(const ManagedMemoryPolicy
&) const;
28 size_t bytes_limit_when_visible
;
29 gpu::MemoryAllocation::PriorityCutoff priority_cutoff_when_visible
;
30 size_t num_resources_limit
;
32 static int PriorityCutoffToValue(
33 gpu::MemoryAllocation::PriorityCutoff priority_cutoff
);
34 static TileMemoryLimitPolicy
PriorityCutoffToTileMemoryLimitPolicy(
35 gpu::MemoryAllocation::PriorityCutoff priority_cutoff
);
40 #endif // CC_OUTPUT_MANAGED_MEMORY_POLICY_H_