renderManager.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef RENDERMANAGER_H
  2. #define RENDERMANAGER_H
  3. #include "displayManager.h"
  4. #include "sceneManager.h"
  5. #include "softwareRenderer.h"
  6. #include "model.h"
  7. #include <queue>
  8. //High level render operations that shouldn't be done by the
  9. //basic graphics lib.
  10. class RenderManager{
  11. public:
  12. //Dummy constructors / Destructors
  13. RenderManager();
  14. ~RenderManager();
  15. //Gets scene and display info. Will be used to build render Queue
  16. bool startUp(DisplayManager &displayManager,SceneManager &sceneManager );
  17. void shutDown();
  18. //Performs all high level prep operations that the graphics library
  19. //Needs to do before drawin each model in the scene.
  20. void render();
  21. private:
  22. void buildRenderQueue();
  23. bool initSoftwareRenderer();
  24. //This is a pointer to a pointer to allow for scene switching
  25. SceneManager * sceneLocator;
  26. DisplayManager * screen;
  27. SoftwareRenderer renderInstance;
  28. std::queue<Model*> *renderObjectQueue;
  29. };
  30. #endif