diff options
Diffstat (limited to 'src/libjin/render')
-rw-r--r-- | src/libjin/render/window.cpp | 28 | ||||
-rw-r--r-- | src/libjin/render/window.h | 23 |
2 files changed, 10 insertions, 41 deletions
diff --git a/src/libjin/render/window.cpp b/src/libjin/render/window.cpp index 1e58dd8..fe81f58 100644 --- a/src/libjin/render/window.cpp +++ b/src/libjin/render/window.cpp @@ -1,3 +1,5 @@ +#include <iostream> + #include "window.h" #include "3rdparty/GLee/GLee.h" #include "canvas.h" @@ -8,29 +10,10 @@ namespace jin namespace render { - shared Window* Window::g_wnd = NULL; - - Window::Window(): wnd(0), ctx(0) - { - } - - Window::~Window() - { - } - - bool Window::init(const SettingBase* setting) - { - static bool result = _init(setting); - return result; - } - - void Window::quit() + onlyonce bool Window::initSystem(const SettingBase* s) { - CallOnce(_quit()); - } + std::cout << "Init window system" << std::endl; - onlyonce bool Window::_init(const SettingBase* s) - { if (SDL_Init(SDL_INIT_VIDEO) < 0) return false; @@ -84,10 +67,9 @@ namespace render return true; } - onlyonce void Window::_quit() + onlyonce void Window::quitSystem() { SDL_DestroyWindow(wnd); - delete g_wnd; } SDL_Window* Window::getWnd() diff --git a/src/libjin/render/window.h b/src/libjin/render/window.h index 54fff47..0c2c79d 100644 --- a/src/libjin/render/window.h +++ b/src/libjin/render/window.h @@ -9,7 +9,7 @@ namespace jin namespace render { - class Window : public Subsystem + class Window : public Subsystem<Window> { public: @@ -25,11 +25,6 @@ namespace render SDL_GLContext getCtx(); - static inline Window* get() - { - return (g_wnd ? g_wnd : (g_wnd = new Window())); - } - inline int getW() { return width; @@ -42,24 +37,16 @@ namespace render inline void swapBuffers(); - bool init(const SettingBase* setting) override; - void quit() override; + private: - private: + SDL_Window* wnd; - Window(); - ~Window(); - - static Window* g_wnd; - - SDL_Window* wnd; - SDL_GLContext ctx; int width, height; - onlyonce bool _init(const SettingBase* setting) override; - onlyonce void _quit() override; + onlyonce bool initSystem(const SettingBase* setting) override; + onlyonce void quitSystem() override; }; typedef Window::Setting WindowSetting; |