Nameless Engine
Loading...
Searching...
No Matches
ne::DirectXDescriptorHeap::InternalData Struct Reference

#include <DirectXDescriptorHeap.h>

Public Attributes

ComPtr< ID3D12DescriptorHeap > pHeap
 
std::unordered_set< ContinuousDirectXDescriptorRange * > continuousDescriptorRanges
 
INT iHeapCapacity = 0
 
INT iHeapSize = 0
 
INT iNextFreeHeapIndex = 0
 
std::queue< INT > noLongerUsedSingleDescriptorIndices
 
std::unordered_set< DirectXDescriptor * > bindedSingleDescriptors
 

Detailed Description

Groups mutex guarded data.

Member Data Documentation

◆ bindedSingleDescriptors

std::unordered_set<DirectXDescriptor*> ne::DirectXDescriptorHeap::InternalData::bindedSingleDescriptors

Set of descriptors that use this heap (size of this set might not be equal to iHeapSize due to continuousDescriptorRanges, because this set stores single descriptors (that don't belong to a continuous range)).

Remarks
Storing a raw pointer here because it's only used to update view if the heap was recreated (no resource ownership). Once resource is destroyed the descriptor will also be destroyed and thus it will be removed from this set.

◆ continuousDescriptorRanges

std::unordered_set<ContinuousDirectXDescriptorRange*> ne::DirectXDescriptorHeap::InternalData::continuousDescriptorRanges

Descriptor ranges that were allocated in this heap.

Remarks
It's safe to store raw pointers here because ranges will notify the heap in their destructor.

◆ iHeapCapacity

INT ne::DirectXDescriptorHeap::InternalData::iHeapCapacity = 0

Current heap capacity.

◆ iHeapSize

INT ne::DirectXDescriptorHeap::InternalData::iHeapSize = 0

Current heap size (actually used size).

Remarks
Includes capacity of ranges from continuousDescriptorRanges.

◆ iNextFreeHeapIndex

INT ne::DirectXDescriptorHeap::InternalData::iNextFreeHeapIndex = 0

Index of the next free descriptor that can be used. Each created descriptor will fetch this value (to be used) and increment it.

Remarks
Once this value is equal to iHeapCapacity we will use noLongerUsedSingleDescriptorIndices to see if any old descriptors were released and no longer being used.

◆ noLongerUsedSingleDescriptorIndices

std::queue<INT> ne::DirectXDescriptorHeap::InternalData::noLongerUsedSingleDescriptorIndices

Indices of descriptors that were created but no longer being used.

Remarks
Does not include unused descriptor indices of ranges from continuousDescriptorRanges.

◆ pHeap

ComPtr<ID3D12DescriptorHeap> ne::DirectXDescriptorHeap::InternalData::pHeap

Descriptor heap.


The documentation for this struct was generated from the following file: