#pragma once #include "ReferenceCounter.h" struct ID3D12Device5; struct D3D12_RAYTRACING_GEOMETRY_DESC; namespace Framework { class DX12Buffer; class DX12DirectCommandQueue; class DX12BLAS : public ReferenceCounter { private: DX12Buffer* scratchBuffer; DX12Buffer* resultBuffer; ID3D12Device5* zDevice; DX12DirectCommandQueue* zDirectQueue; D3D12_RAYTRACING_GEOMETRY_DESC* geometryDesc; public: DX12BLAS(ID3D12Device5* zDevice, DX12DirectCommandQueue* zDirectQueue); ~DX12BLAS(); void build(DX12Buffer* vertexBuffer, DX12Buffer* indexBuffer); DX12Buffer* zScratchBuffer() const; DX12Buffer* zResultBuffer() const; }; } // namespace Framework