BRE12
SceneLoader.h
1 #pragma once
2 
3 #include <memory>
4 
5 #include <GeometryPass\GeometryPassCommandListRecorder.h>
6 #include <SceneLoader\DrawableObjectLoader.h>
7 #include <SceneLoader\EnvironmentLoader.h>
8 #include <SceneLoader\MaterialPropertiesLoader.h>
9 #include <SceneLoader\MaterialTechniqueLoader.h>
10 #include <SceneLoader\ModelLoader.h>
11 #include <SceneLoader\TextureLoader.h>
12 
13 struct ID3D12CommandAllocator;
14 struct ID3D12GraphicsCommandList;
15 
16 namespace BRE {
17 class Scene;
18 
19 class SceneLoader {
20 public:
21  SceneLoader();
22  SceneLoader(const SceneLoader&) = delete;
23  const SceneLoader& operator=(const SceneLoader&) = delete;
24  SceneLoader(SceneLoader&&) = delete;
25  SceneLoader& operator=(SceneLoader&&) = delete;
26 
27  Scene* LoadScene(const char* sceneFilePath) noexcept;
28 
29 private:
30  void GenerateGeometryPassRecorders(Scene& scene) noexcept;
31  void GenerateGeometryPassRecordersForColorMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
32  void GenerateGeometryPassRecordersForColorNormalMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
33  void GenerateGeometryPassRecordersForColorHeightMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
34  void GenerateGeometryPassRecordersForTextureMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
35  void GenerateGeometryPassRecordersForNormalMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
36  void GenerateGeometryPassRecordersForHeightMapping(GeometryPassCommandListRecorders& commandListRecorders) noexcept;
37 
38  ID3D12CommandAllocator* mCommandAllocator{ nullptr };
39  ID3D12GraphicsCommandList* mCommandList{ nullptr };
40  ModelLoader mModelLoader;
41  TextureLoader mTextureLoader;
42  MaterialPropertiesLoader mMaterialPropertiesLoader;
43  MaterialTechniqueLoader mMaterialTechniqueLoader;
44  DrawableObjectLoader mDrawableObjectLoader;
45  EnvironmentLoader mEnvironmentLoader;
46 };
47 }
48 
Definition: Camera.cpp:8
Definition: MaterialTechniqueLoader.h:15
Definition: EnvironmentLoader.h:14
Definition: TextureLoader.h:15
Definition: SceneLoader.h:19
Definition: DrawableObjectLoader.h:19
Definition: ModelLoader.h:16
Definition: MaterialPropertiesLoader.h:13
Definition: Scene.h:9