69 HdStPooledRenderBufferUniquePtr Allocate(
90 struct _PooledRenderBufferDesc
93 bool multiSampled : 1;
96 bool operator==(
const _PooledRenderBufferDesc &other)
const
98 return fmt == other.fmt &&
100 multiSampled == other.multiSampled &&
101 depth == other.depth;
105 size_t operator()(_PooledRenderBufferDesc
const& desc)
const
107 return (((desc.multiSampled << 0) | (desc.depth << 2)
109 ^ (desc.dims[0] & 0xFFFF))
110 | ((size_t)(desc.dims[1] & 0xFFFF) << 32);
115 using _HdStRenderBufferVec =
116 std::vector<std::shared_ptr<HdStRenderBuffer>>;
118 class _AllocationTracker
122 void Free(uint16_t index);
125 std::deque<uint16_t> freeList;
128 struct _HdStRenderBufferPoolEntry
130 std::map<const SdfPath, _AllocationTracker> allocs;
131 _HdStRenderBufferVec buffers;
134 std::unordered_map<_PooledRenderBufferDesc,
135 _HdStRenderBufferPoolEntry,
136 _PooledRenderBufferDesc::HashFunctor> _pooledRenderBuffers;