BRE12
NormalCommandListRecorder.h
1 #pragma once
2 
3 #include <GeometryPass/GeometryPassCommandListRecorder.h>
4 
5 namespace BRE {
6 class MaterialProperties;
7 
8 // CommandListRecorders that does texture mapping + normal mapping
10 public:
11  NormalCommandListRecorder() = default;
12  ~NormalCommandListRecorder() = default;
14  const NormalCommandListRecorder& operator=(const NormalCommandListRecorder&) = 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,
27  const std::vector<ID3D12Resource*>& normalTextures) noexcept;
28 
29  // Preconditions:
30  // - Init() must be called first
31  void RecordAndPushCommandLists(const FrameCBuffer& frameCBuffer) noexcept final override;
32 
33  bool IsDataValid() const noexcept final override;
34 
35 private:
36  // Preconditions:
37  // - All containers must not be empty
38  void InitConstantBuffers(const std::vector<MaterialProperties>& materialProperties,
39  const std::vector<ID3D12Resource*>& diffuseTextures,
40  const std::vector<ID3D12Resource*>& normalTextures) noexcept;
41 
42  D3D12_GPU_DESCRIPTOR_HANDLE mBaseColorBufferGpuDescriptorsBegin;
43  D3D12_GPU_DESCRIPTOR_HANDLE mNormalBufferGpuDescriptorsBegin;
44 };
45 }
46 
Definition: Camera.cpp:8
Definition: NormalCommandListRecorder.h:9
Definition: GeometryPassCommandListRecorder.h:20
Definition: CBuffers.h:23