Night Byte
Engine.hpp
1 #pragma once
2 
3 
4 
5 #include <SDL_render.h>
6 #include <mutex>
7 #include <memory>
8 
9 
10 class TextureManager;
11 
13 
14 class Engine {
15 private:
16  static Engine *instance_;
17  static std::mutex mutex_;
18 
19  std::unique_ptr<EngineRenderingAdapter> _renderingAdapter;
20 
21 protected:
22  Engine() = default;
23 
24 public:
25  ~Engine() = default;
26  Engine(Engine &other) = delete;
27 
28  void operator=(const Engine &) = delete;
29 
30  static Engine *getInstance();
31 
32 public:
33  void initWindow(int SCREEN_WIDTH, int SCREEN_HEIGHT);
34 
35  void closeWindow();
36 
37  [[nodiscard]] EngineRenderingAdapter &getRenderingAdapter();
38 
39  static void renderImGui(bool &cheatMode);
40  static void clearImGui();
41  static bool ShowCheckBox(const std::string& label, bool *value);
42  static bool InputFloat(const std::string &label, float *value);
43  static bool InputInt(const std::string &label, int *value);
44  static bool InputText(const std::string &label, char *value, int bufferSize);
45  static bool Button(const std::string &label);
46 };
Engine
Definition: Engine.hpp:14
xml_schema::string
::xsd::cxx::tree::string< char, simple_type > string
C++ type corresponding to the string XML Schema built-in type.
Definition: common.hxx:255
Engine::initWindow
void initWindow(int SCREEN_WIDTH, int SCREEN_HEIGHT)
Definition: Engine.cpp:37
TextureManager
Definition: TextureManager.hpp:9
Engine::closeWindow
void closeWindow()
Definition: Engine.cpp:131
EngineRenderingAdapter
Definition: EngineRenderingAdapter.hpp:8