DX12BLASModel.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #pragma once
  2. #include "Array.h"
  3. #include "DX12BLAS.h"
  4. #include "DX12Buffer.h"
  5. #include "Vec2.h"
  6. #include "Vec3.h"
  7. namespace Framework
  8. {
  9. class Model3DData;
  10. class DX12DirectCommandQueue;
  11. struct DX2VertexData
  12. {
  13. Vec2<float> texcoord;
  14. Vec3<float> normal;
  15. };
  16. class DX12BLASModel : public ReferenceCounter
  17. {
  18. private:
  19. Model3DData* zModelData;
  20. ID3D12Device5* zDevice;
  21. RCArray<DX12Buffer>* vertexBuffers;
  22. RCArray<DX12Buffer>* vertexDataBuffers;
  23. RCArray<DX12Buffer>* indexBuffers;
  24. RCArray<DX12Buffer>* polygonSizeBuffers;
  25. DX12DirectCommandQueue* zDirectQueue;
  26. RCArray<DX12BLAS>* blasList;
  27. Array<int> boneIds;
  28. public:
  29. DLLEXPORT DX12BLASModel(Model3DData* zModelData,
  30. ID3D12Device5* zDevice,
  31. DX12DirectCommandQueue* zDirectQueue);
  32. DLLEXPORT ~DX12BLASModel();
  33. DLLEXPORT void calculateBuffers();
  34. DLLEXPORT int getBufferCount() const;
  35. DLLEXPORT const RCArray<DX12BLAS>* zBLAS() const;
  36. DLLEXPORT const Array<int>* zBoneIds() const;
  37. };
  38. } // namespace Framework