From 51ba9cb2a6b0b9395a2912eadeb954c95e4c1d3c Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 20 May 2018 23:37:11 +0800 Subject: =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=9B=AE=E5=BD=95=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/libjin/render/window.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'src/libjin/render/window.cpp') diff --git a/src/libjin/render/window.cpp b/src/libjin/render/window.cpp index 1f55be8..1e58dd8 100644 --- a/src/libjin/render/window.cpp +++ b/src/libjin/render/window.cpp @@ -8,8 +8,8 @@ namespace jin namespace render { - shared Window* Window::g_wnd = 0; - + shared Window* Window::g_wnd = NULL; + Window::Window(): wnd(0), ctx(0) { } @@ -18,12 +18,23 @@ namespace render { } + bool Window::init(const SettingBase* setting) + { + static bool result = _init(setting); + return result; + } + + void Window::quit() + { + CallOnce(_quit()); + } + onlyonce bool Window::_init(const SettingBase* s) { if (SDL_Init(SDL_INIT_VIDEO) < 0) return false; - WindowSetting* setting = (WindowSetting*)s; + const WindowSetting* setting = (WindowSetting*)s; width = setting->width; height = setting->height; @@ -73,6 +84,12 @@ namespace render return true; } + onlyonce void Window::_quit() + { + SDL_DestroyWindow(wnd); + delete g_wnd; + } + SDL_Window* Window::getWnd() { return wnd; -- cgit v1.1-26-g67d0