CustomDX12API.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  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* sbtChunkLightBufferOffset;
  12. int* sbtSimpleBlocksTextureIdBufferOffset;
  13. int* sbtSimpleBlocksIndexBufferOffset;
  14. int* sbtSimpleBlocksVertexDataBufferOffset;
  15. int* sbtSimpleBlocksIndexOffsetBufferOffset;
  16. Framework::DX12ShaderHitGroup* chunkHitGroup;
  17. Framework::DX12ShaderHitGroup* simpleBlocksHitGroup;
  18. public:
  19. CustomDX12API();
  20. ~CustomDX12API();
  21. void initializePipeline() override;
  22. void initializeGlobalDescriptorHeap() override;
  23. void fillShaderBindingTable(
  24. Framework::DX12ShaderBindingTable* zShaderBindingTable,
  25. Framework::Model3D* zModel,
  26. int objectIndex,
  27. const Framework::DX12BLAS* zBLAS,
  28. int& lastHitGroupIndex) override;
  29. void renderWorld(Framework::World3D* zWorld,
  30. Framework::DX12TLAS* zTLAS,
  31. Framework::DX12ShaderBindingTable* zSBT,
  32. int& objectIndex) override;
  33. };