aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/render/window.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/render/window.h')
-rw-r--r--src/libjin/render/window.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/libjin/render/window.h b/src/libjin/render/window.h
new file mode 100644
index 0000000..f29c82d
--- /dev/null
+++ b/src/libjin/render/window.h
@@ -0,0 +1,53 @@
+#ifndef __JIN_RENDER_WINDOW
+#define __JIN_RENDER_WINDOW
+#include "SDL2/SDL.h"
+namespace jin
+{
+namespace render
+{
+ class Window
+ {
+ public:
+
+ void init(int w, int h, const char* t);
+
+ SDL_Window* getWnd();
+
+ SDL_GLContext getCtx();
+
+ static inline Window* get()
+ {
+ return (g_wnd ? g_wnd : (g_wnd = new Window()));
+ }
+
+ inline int Window::getW()
+ {
+ return w;
+ }
+
+ inline int Window::getH()
+ {
+ return h;
+ }
+
+ inline void Window::swapBuffers()
+ {
+ if (wnd)
+ SDL_GL_SwapWindow(wnd);
+ }
+ private:
+
+ Window();
+ ~Window();
+
+ static Window* g_wnd;
+
+ SDL_Window* wnd;
+
+ SDL_GLContext ctx;
+
+ int w, h;
+ };
+}
+}
+#endif \ No newline at end of file