#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; DX12Buffer* vertexDataBuffer; DX12Buffer* indexBuffer; DX12Buffer* polygonSizeBuffer; ID3D12Device5* zDevice; DX12DirectCommandQueue* zDirectQueue; D3D12_RAYTRACING_GEOMETRY_DESC* geometryDesc; public: DLLEXPORT DX12BLAS( ID3D12Device5* zDevice, DX12DirectCommandQueue* zDirectQueue); DLLEXPORT ~DX12BLAS(); DLLEXPORT void build(DX12Buffer* zVertexBuffer, DX12Buffer* vertexDataBuffer, DX12Buffer* indexBuffer, DX12Buffer* polygonSizeBuffer); DLLEXPORT DX12Buffer* zScratchBuffer() const; DLLEXPORT DX12Buffer* zResultBuffer() const; DLLEXPORT DX12Buffer* zVertexDataBuffer() const; DLLEXPORT DX12Buffer* zIndexBuffer() const; DLLEXPORT DX12Buffer* zPolygonSizeBuffer() const; }; } // namespace Framework