CmApplication.h 814 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #pragma once
  2. #include "CmPrerequisites.h"
  3. #include "CmHighLevelGpuProgram.h"
  4. namespace CamelotEngine
  5. {
  6. class RenderWindow;
  7. class Viewport;
  8. class Camera;
  9. class HighLevelGpuProgramManager;
  10. }
  11. namespace CamelotEngine
  12. {
  13. class CM_EXPORT Application
  14. {
  15. public:
  16. Application();
  17. void startUp(const String& renderSystemDll, const String& rendererDll);
  18. void runMainLoop();
  19. void shutDown();
  20. UINT32 getAppWindowId();
  21. RenderWindow* getPrimaryRenderWindow() const { return mPrimaryRenderWindow; }
  22. /**
  23. * @brief Loads a plugin.
  24. *
  25. * @param pluginName Name of the plugin to load, without extension.
  26. */
  27. void loadPlugin(const String& pluginName);
  28. private:
  29. RenderWindow* mPrimaryRenderWindow;
  30. };
  31. CM_EXPORT Application& gApplication();
  32. }