DX12BLAS.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #pragma once
  2. #include "ReferenceCounter.h"
  3. struct ID3D12Device5;
  4. struct D3D12_RAYTRACING_GEOMETRY_DESC;
  5. namespace Framework
  6. {
  7. class DX12Buffer;
  8. class DX12DirectCommandQueue;
  9. class DX12BLAS : public ReferenceCounter
  10. {
  11. private:
  12. DX12Buffer* scratchBuffer;
  13. DX12Buffer* resultBuffer;
  14. DX12Buffer* vertexDataBuffer;
  15. DX12Buffer* indexBuffer;
  16. DX12Buffer* polygonSizeBuffer;
  17. ID3D12Device5* zDevice;
  18. DX12DirectCommandQueue* zDirectQueue;
  19. D3D12_RAYTRACING_GEOMETRY_DESC* geometryDesc;
  20. public:
  21. DLLEXPORT DX12BLAS(
  22. ID3D12Device5* zDevice, DX12DirectCommandQueue* zDirectQueue);
  23. DLLEXPORT ~DX12BLAS();
  24. DLLEXPORT void build(DX12Buffer* zVertexBuffer,
  25. DX12Buffer* vertexDataBuffer,
  26. DX12Buffer* indexBuffer,
  27. DX12Buffer* polygonSizeBuffer);
  28. DLLEXPORT DX12Buffer* zScratchBuffer() const;
  29. DLLEXPORT DX12Buffer* zResultBuffer() const;
  30. DLLEXPORT DX12Buffer* zVertexDataBuffer() const;
  31. DLLEXPORT DX12Buffer* zIndexBuffer() const;
  32. DLLEXPORT DX12Buffer* zPolygonSizeBuffer() const;
  33. };
  34. } // namespace Framework