| 12345678910111213141516171819202122232425262728293031323334 |
- #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<D3D12_RAYTRACING_INSTANCE_DESC*> overflowInstanceDescs;
- ArrayIterator<D3D12_RAYTRACING_INSTANCE_DESC*> overflowInstanceIterator;
- __int64 currentInstanceIndex;
- __int64 lastInstanceCount;
- 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
|