1.8 KiB
1.8 KiB
Juliet\src\Graphics\D3D12\D3D12DescriptorHeap
Source Files
- Header:
Juliet\src\Graphics\D3D12\D3D12DescriptorHeap.h - Source:
Juliet\src\Graphics\D3D12\D3D12DescriptorHeap.cpp
AI Description
This C++ component manages DirectX 12 descriptor heaps for efficient GPU resource binding. It provides structures and functions to create pools of reusable descriptor stacks, handle allocation from free lists or creation via the driver, and release resources back to memory while tracking usage indices. The design includes internal arena management and type-specific initialization flags like shader visibility to optimize performance in gaming contexts within a larger framework architecture.
Symbols
Namespace Juliet::D3D12::Internal
Classes, Structs & Unions
struct D3D12DescriptorHeapstruct D3D12Descriptorstruct D3D12DescriptorHeapPool
Functions & Methods
extern void CreateDescriptorHeapPool(NonNullPtr<D3D12Driver> driver, D3D12DescriptorHeapPool& heapPool, D3D12_DESCRIPTOR_HEAP_TYPE type, uint32 count)extern void DestroyDescriptorHeapPool(D3D12DescriptorHeapPool& pool)extern D3D12DescriptorHeap* CreateDescriptorHeap(NonNullPtr<D3D12Driver> driver, NonNullPtr<Arena> arena, D3D12_DESCRIPTOR_HEAP_TYPE type, uint32 count, bool isStaging)extern void DestroyDescriptorHeap(NonNullPtr<D3D12DescriptorHeap> heap)extern D3D12DescriptorHeap* AcquireSamplerHeapFromPool(NonNullPtr<D3D12Driver> d3d12Driver)extern void ReturnSamplerHeapToPool(NonNullPtr<D3D12Driver> d3d12Driver, NonNullPtr<D3D12DescriptorHeap> heap)extern bool AssignDescriptor(D3D12DescriptorHeap* heap, D3D12Descriptor& outDescriptor)extern void ReleaseDescriptor(const D3D12Descriptor& descriptor)