aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/render/window.cpp
diff options
context:
space:
mode:
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;