BRE12
TextureCommandListRecorder.h
1 #pragma once
2 
3 #include <GeometryPass/GeometryPassCommandListRecorder.h>
4 
5 namespace BRE {
6 class MaterialProperties;
7 
8 // CommandListRecorders that does texture mapping
10 public:
11  TextureCommandListRecorder() = default;
12  ~TextureCommandListRecorder() = default;
14  const TextureCommandListRecorder& operator=(const TextureCommandListRecorder&) = delete;
17 
18  static void InitSharedPSOAndRootSignature(const DXGI_FORMAT* geometryBufferFormats,
19  const std::uint32_t geometryBufferCount) noexcept;
20 
21  // Preconditions:
22  // - All containers must not be empty
23  // - InitSharedPSOAndRootSignature() must be called first and once
24  void Init(const std::vector<GeometryData>& geometryDataVector,
25  const std::vector<MaterialProperties>& materialProperties,
26  const std::vector<ID3D12Resource*>& diffuseTextures) noexcept;
27 
28  // Preconditions:
29  // - Init() must be called first
30  void RecordAndPushCommandLists(const FrameCBuffer& frameCBuffer) noexcept final override;
31 
32  bool IsDataValid() const noexcept final override;
33 
34 private:
35  // Preconditions:
36  // - All containers must not be empty
37  void InitConstantBuffers(const std::vector<MaterialProperties>& materialProperties,
38  const std::vector<ID3D12Resource*>& diffuseTextures) noexcept;
39 
40  D3D12_GPU_DESCRIPTOR_HANDLE mBaseColorBufferGpuDescriptorsBegin;
41 };
42 }
43 
Definition: Camera.cpp:8
Definition: TextureCommandListRecorder.h:9
Definition: GeometryPassCommandListRecorder.h:20
Definition: CBuffers.h:23