aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/graphics/window.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/graphics/window.cpp')
-rw-r--r--src/libjin/graphics/window.cpp200
1 files changed, 100 insertions, 100 deletions
diff --git a/src/libjin/graphics/window.cpp b/src/libjin/graphics/window.cpp
index 479961b..0f43a28 100644
--- a/src/libjin/graphics/window.cpp
+++ b/src/libjin/graphics/window.cpp
@@ -17,106 +17,106 @@ using namespace JinEngine::Graphics::Shaders;
namespace JinEngine
{
- namespace Graphics
- {
-
- bool Window::startSystem(const SettingBase* s)
- {
- jin_log_info("Initialize window system.");
-
- if (SDL_Init(SDL_INIT_VIDEO) < 0)
- return false;
-
- const Setting* setting = (Setting*)s;
- mSize.w() = setting->width;
- mSize.h() = setting->height;
- mFps = setting->fps;
- bool vsync = setting->vsync;
- const char* title = setting->title;
- const char* icon = setting->icon;
-
- if (mWnd)
- {
- SDL_DestroyWindow(mWnd);
- SDL_FlushEvent(SDL_WINDOWEVENT);
- }
-
- SDL_GLContext ctx = NULL;
-
- if (ctx)
- {
- SDL_GL_DeleteContext(ctx);
- }
-
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
- SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0);
-
- int wx = SDL_WINDOWPOS_UNDEFINED,
- wy = SDL_WINDOWPOS_UNDEFINED;
-
- int flag = SDL_WINDOW_HIDDEN | SDL_WINDOW_OPENGL;
- if (setting->fullscreen) flag |= SDL_WINDOW_FULLSCREEN;
- if (setting->resizable) flag |= SDL_WINDOW_RESIZABLE;
-
- mWnd = SDL_CreateWindow(title, wx, wy, mSize.w(), mSize.h(), flag);
- if (mWnd == NULL)
- return false;
-
- // Set window icon.
- //try
- //{
- // Bitmap* bitmap = new Bitmap(icon);
- // SDL_Surface *surface;
- // Color* pixels = const_cast<Color*>(bitmap->getPixels());
- // uint w = bitmap->getWidth(), h = bitmap->getHeight();
- // surface = SDL_CreateRGBSurfaceFrom(
- // pixels, w, h, 32, w * 4, Color::RMASK, Color::GMASK, Color::BMASK, Color::AMASK);
- // SDL_SetWindowIcon(mWnd, surface);
- // SDL_FreeSurface(surface);
- //} catch (...) {}
-
- ctx = SDL_GL_CreateContext(mWnd);
- if (ctx == NULL)
- return false;
-
- gl.loadGL();
-
- SDL_GL_SetSwapInterval(vsync ? 1 : 0);
- SDL_GL_MakeCurrent(mWnd, ctx);
-
- // Default configuration.
- gl.init();
-
- return true;
- }
-
- void Window::quitSystem()
- {
- jin_log_info("Quit window system.");
-
- SDL_DestroyWindow(mWnd);
- }
-
- void Window::present()
- {
- if (mWnd)
- SDL_GL_SwapWindow(mWnd);
- gl.resetStats();
- }
-
- void Window::setTitle(const char* title)
- {
- SDL_SetWindowTitle(mWnd, title);
- };
-
- } // namespace Graphics
+ namespace Graphics
+ {
+
+ bool Window::startSystem(const SettingBase* s)
+ {
+ jin_log_info("Initialize window system.");
+
+ if (SDL_Init(SDL_INIT_VIDEO) < 0)
+ return false;
+
+ const Setting* setting = (Setting*)s;
+ mSize.w() = setting->width;
+ mSize.h() = setting->height;
+ mFps = setting->fps;
+ bool vsync = setting->vsync;
+ const char* title = setting->title;
+ const char* icon = setting->icon;
+
+ if (mWnd)
+ {
+ SDL_DestroyWindow(mWnd);
+ SDL_FlushEvent(SDL_WINDOWEVENT);
+ }
+
+ SDL_GLContext ctx = NULL;
+
+ if (ctx)
+ {
+ SDL_GL_DeleteContext(ctx);
+ }
+
+ SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
+ SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1);
+ SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
+ SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
+ SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0);
+
+ int wx = SDL_WINDOWPOS_UNDEFINED,
+ wy = SDL_WINDOWPOS_UNDEFINED;
+
+ int flag = SDL_WINDOW_HIDDEN | SDL_WINDOW_OPENGL;
+ if (setting->fullscreen) flag |= SDL_WINDOW_FULLSCREEN;
+ if (setting->resizable) flag |= SDL_WINDOW_RESIZABLE;
+
+ mWnd = SDL_CreateWindow(title, wx, wy, mSize.w(), mSize.h(), flag);
+ if (mWnd == NULL)
+ return false;
+
+ // Set window icon.
+ //try
+ //{
+ // Bitmap* bitmap = new Bitmap(icon);
+ // SDL_Surface *surface;
+ // Color* pixels = const_cast<Color*>(bitmap->getPixels());
+ // uint w = bitmap->getWidth(), h = bitmap->getHeight();
+ // surface = SDL_CreateRGBSurfaceFrom(
+ // pixels, w, h, 32, w * 4, Color::RMASK, Color::GMASK, Color::BMASK, Color::AMASK);
+ // SDL_SetWindowIcon(mWnd, surface);
+ // SDL_FreeSurface(surface);
+ //} catch (...) {}
+
+ ctx = SDL_GL_CreateContext(mWnd);
+ if (ctx == NULL)
+ return false;
+
+ gl.loadGL();
+
+ SDL_GL_SetSwapInterval(vsync ? 1 : 0);
+ SDL_GL_MakeCurrent(mWnd, ctx);
+
+ // Default configuration.
+ gl.init();
+
+ return true;
+ }
+
+ void Window::quitSystem()
+ {
+ jin_log_info("Quit window system.");
+
+ SDL_DestroyWindow(mWnd);
+ }
+
+ void Window::present()
+ {
+ if (mWnd)
+ SDL_GL_SwapWindow(mWnd);
+ gl.resetStats();
+ }
+
+ void Window::setTitle(const char* title)
+ {
+ SDL_SetWindowTitle(mWnd, title);
+ };
+
+ } // namespace Graphics
} // namespace JinEngine
#endif // defined(jin_graphics) \ No newline at end of file