engine.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #ifndef ENGINE_H
  2. #define ENGINE_H
  3. // ===============================
  4. // AUTHOR : Angel Ortiz (angelo12 AT vt DOT edu)
  5. // CREATE DATE : 2018-07-02
  6. // PURPOSE : Application class containing all high level logic and init / shutdown
  7. // routines for each major subsystem. The purpose of this program is to
  8. // to build a functioning graphics engine without using libraries
  9. // such as OpenGL or DirectX.
  10. // ===============================
  11. // SPECIAL NOTES: Built for educational purposes only.
  12. // ===============================
  13. //Headers
  14. #include "displayManager.h"
  15. #include "renderManager.h"
  16. #include "inputManager.h"
  17. #include "sceneManager.h"
  18. //Very basic graphics engine application.
  19. //In charge of initializing and closing down all manager-level classes in a safe way.
  20. class Engine
  21. {
  22. public:
  23. //Dummy constructors / Destructors
  24. Engine();
  25. ~Engine();
  26. //I use these methods instead of constructors and destructors
  27. //because I want to be able to control initialization order.
  28. //You'll see the same idea applied to all manager level classes.
  29. bool startUp();
  30. void shutDown();
  31. //Contains all high level logic and the main application loop
  32. void run();
  33. private:
  34. DisplayManager gDisplayManager;
  35. RenderManager gRenderManager;
  36. InputManager gInputManager;
  37. SceneManager gSceneManager;
  38. };
  39. #endif