DX12BLAS.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  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. DX12BLAS(ID3D12Device5* zDevice, DX12DirectCommandQueue* zDirectQueue);
  22. ~DX12BLAS();
  23. void build(DX12Buffer* zVertexBuffer,
  24. DX12Buffer* vertexDataBuffer,
  25. DX12Buffer* indexBuffer,
  26. DX12Buffer* polygonSizeBuffer);
  27. DX12Buffer* zScratchBuffer() const;
  28. DX12Buffer* zResultBuffer() const;
  29. DX12Buffer* zVertexDataBuffer() const;
  30. DX12Buffer* zIndexBuffer() const;
  31. DX12Buffer* zPolygonSizeBuffer() const;
  32. };
  33. } // namespace Framework