CustomDX12API.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. #pragma once
  2. #include <DX12GraphicsApi.h>
  3. #include <DX12Shader.h>
  4. #include <World3D.h>
  5. class CustomDX12API : public Framework::DirectX12
  6. {
  7. private:
  8. int* sbtChunkTextureIdBufferOffset;
  9. int* sbtChunkIndexBufferOffset;
  10. int* sbtChunkDataBufferOffset;
  11. int* sbtSimpleBlocksTextureIdBufferOffset;
  12. int* sbtSimpleBlocksIndexBufferOffset;
  13. int* sbtSimpleBlocksVertexDataBufferOffset;
  14. int* sbtSimpleBlocksIndexOffsetBufferOffset;
  15. Framework::DX12ShaderHitGroup* chunkHitGroup;
  16. Framework::DX12ShaderHitGroup* simpleBlocksHitGroup;
  17. public:
  18. CustomDX12API();
  19. ~CustomDX12API();
  20. void initializePipeline() override;
  21. void initializeGlobalDescriptorHeap() override;
  22. void fillShaderBindingTable(
  23. Framework::DX12ShaderBindingTable* zShaderBindingTable,
  24. Framework::Model3D* zModel,
  25. int objectIndex,
  26. const Framework::DX12BLAS* zBLAS,
  27. int& lastHitGroupIndex) override;
  28. void renderWorld(Framework::World3D* zWorld,
  29. Framework::DX12TLAS* zTLAS,
  30. Framework::DX12ShaderBindingTable* zSBT,
  31. int& objectIndex) override;
  32. };