BRE12
SceneExecutor.h
1 #pragma once
2 
3 #include <memory>
4 #include <tbb/task_scheduler_init.h>
5 #include <windows.h>
6 
7 #include <Scene\Scene.h>
8 
9 #if defined(DEBUG) || defined(_DEBUG)
10 #define _CRTDBG_MAP_ALLOC
11 #include <cstdlib>
12 #include <crtdbg.h>
13 #endif
14 
15 namespace BRE {
16 class RenderManager;
17 
18 // To execute a scene.
20 public:
21  explicit SceneExecutor(HINSTANCE moduleInstanceHandle,
22  const char* sceneFilePath);
23  ~SceneExecutor();
24  SceneExecutor(const SceneExecutor&) = delete;
25  const SceneExecutor& operator=(const SceneExecutor&) = delete;
26  SceneExecutor(SceneExecutor&&) = delete;
27  SceneExecutor& operator=(SceneExecutor&&) = delete;
28 
29  void Execute() noexcept;
30 
31 private:
32  // Needed by Intel TBB
33  tbb::task_scheduler_init mTaskSchedulerInit;
34 
35  Scene* mScene;
36 
37  RenderManager* mRenderManager{ nullptr };
38 };
39 }
40 
Definition: Camera.cpp:8
Definition: SceneExecutor.h:19
Class delimiting the scope of task scheduler activity.
Definition: task_scheduler_init.h:53
Definition: RenderManager.h:26
Definition: Scene.h:9