UGDK  0.5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
manager.h
Go to the documentation of this file.
1 #ifndef UGDK_DESKTOP_3D_MANAGER_H_
2 #define UGDK_DESKTOP_3D_MANAGER_H_
3 
4 #include <ugdk/desktop/manager.h>
5 #include <ugdk/desktop.h>
6 
7 #include <string>
8 #include <vector>
9 #include <memory>
10 
11 namespace Ogre {
12 class Root;
13 class StaticPluginLoader;
14 class RenderWindow;
15 }
16 
17 namespace ugdk {
18 namespace desktop {
19 namespace mode3d {
20 
21 class Window;
22 
23 class Manager final : public desktop::Manager {
24 public:
25  Manager(const std::vector<std::string>& ogre_plugins, const std::string& renderer_name);
26  ~Manager();
27 
28  bool Initialize() override;
29  void Release() override;
30 
31  void PresentAll() override;
32 
33  void LoadPlugin(const std::string& plugin_name);
34 
35  Ogre::Root* root() { return root_; }
36  Ogre::RenderWindow& window();
37 
38 protected:
39  std::shared_ptr<desktop::Window> DoCreateWindow(const WindowSettings& settings) override;
40  std::shared_ptr<desktop::Window> DoCreateWindow(unsigned long hwnd) override;
41 
42 private:
43  Ogre::Root* root_;
44  Ogre::StaticPluginLoader* static_loader_;
45  std::shared_ptr<Window> window_;
46  std::vector<std::string> ogre_plugins_;
47  std::string renderer_name_;
48 };
49 
50 } // namespace mode3d
51 } // namespace desktop
52 } // namespace ugdk
53 #endif
Ogre::Root * root()
Definition: manager.h:35
Definition: manager.h:23
std::shared_ptr< desktop::Window > DoCreateWindow(const WindowSettings &settings) override
Definition: windowsettings.h:10
Manager()
Definition: manager.h:34
Definition: animation.h:11
Definition: manager.h:14
Ogre::RenderWindow & window()
void LoadPlugin(const std::string &plugin_name)
Definition: camera.h:8
Definition: window.h:19