#pragma once #include "Array.h" #include "DX12Buffer.h" namespace Framework { class DX12DirectCommandQueue; class DX12TLAS : public ReferenceCounter { private: DX12Buffer* scratchBuffer; DX12Buffer* resultBuffer; DX12Buffer* descriptorBuffer; DX12Buffer* previousResultBuffer; ID3D12Device5* zDevice; DX12DirectCommandQueue* zDirectQueue; Array overflowInstanceDescs; ArrayIterator overflowInstanceIterator; __int64 currentInstanceIndex; D3D12_RAYTRACING_INSTANCE_DESC* mappedDescriptorBuffer; public: DLLEXPORT DX12TLAS( ID3D12Device5* zDevice, DX12DirectCommandQueue* zDirectQueue); DLLEXPORT virtual ~DX12TLAS(); DLLEXPORT void startUpdate(); DLLEXPORT D3D12_RAYTRACING_INSTANCE_DESC* nextInstanceDesc(); DLLEXPORT void endUpdate(); DLLEXPORT DX12Buffer* zResultBuffer() const; }; } // namespace Framework