CmApplication.h 1013 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. void DBG_renderSimpleFrame();
  21. UINT32 getAppWindowId();
  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* mRenderWindow;
  30. std::shared_ptr<Camera> mCamera;
  31. HighLevelGpuProgramPtr mFragProg;
  32. HighLevelGpuProgramPtr mVertProg;
  33. TextureRef mDbgTexture;
  34. MeshRef mDbgMesh;
  35. GameObjectPtr mCameraGO;
  36. ShaderPtr mTestShader;
  37. MaterialPtr mTestMaterial;
  38. };
  39. CM_EXPORT Application& gApplication();
  40. }