aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/render/window.cpp
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2018-05-20 23:37:11 +0800
committerchai <chaifix@163.com>2018-05-20 23:37:11 +0800
commit51ba9cb2a6b0b9395a2912eadeb954c95e4c1d3c (patch)
tree58ce7d8b50c0d9a451d26bf0b3230b1c2e2f2782 /src/libjin/render/window.cpp
parentadfda73e1810973a40b7bedd9a8edc3e7ab89e3c (diff)
修改目录结构
Diffstat (limited to 'src/libjin/render/window.cpp')
-rw-r--r--src/libjin/render/window.cpp23
1 files changed, 20 insertions, 3 deletions
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;