diff options
author | chai <chaifix@163.com> | 2018-10-19 08:36:44 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-10-19 08:36:44 +0800 |
commit | 7d5f055547e70fa93ee9ac944e62f8d657b9dc55 (patch) | |
tree | 081782a1541854db4b8eb69c4b43081f52711286 /src/libjin/Graphics/Window.cpp | |
parent | 02dd1f38008594048f0e28bad01e7c6d18844198 (diff) |
*修改文件名
Diffstat (limited to 'src/libjin/Graphics/Window.cpp')
-rw-r--r-- | src/libjin/Graphics/Window.cpp | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/src/libjin/Graphics/Window.cpp b/src/libjin/Graphics/Window.cpp deleted file mode 100644 index 1fd1f90..0000000 --- a/src/libjin/Graphics/Window.cpp +++ /dev/null @@ -1,109 +0,0 @@ -#include "../configuration.h" -#if LIBJIN_MODULES_RENDER - -#include <iostream> -#include "window.h" -#include "OpenGL.h" -#include "canvas.h" -#include "./Shader/Shader.h" -#include "../utils/utils.h" -#include "../audio/sdl/SDLAudio.h" -#include "../utils/log.h" - -namespace jin -{ - namespace graphics - { - - bool Window::initSystem(const SettingBase* s) - { - #if LIBJIN_DEBUG - Loghelper::log(Loglevel::LV_INFO, "Init window system"); - #endif - - if (SDL_Init(SDL_INIT_VIDEO) < 0) - return false; - - const Setting* setting = (Setting*)s; - size.w = setting->width; - size.h = setting->height; - fps = setting->fps; - bool vsync = setting->vsync; - const char* title = setting->title; - - if (wnd) - { - SDL_DestroyWindow(wnd); - 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); - - int wx = SDL_WINDOWPOS_UNDEFINED, - wy = SDL_WINDOWPOS_UNDEFINED; - - int flag = SDL_WINDOW_SHOWN | SDL_WINDOW_OPENGL; - if (setting->fullscreen) flag |= SDL_WINDOW_FULLSCREEN; - if (setting->resizable) flag |= SDL_WINDOW_RESIZABLE; - - wnd = SDL_CreateWindow(title, wx, wy, size.w, size.h, flag); - if (wnd == NULL) - return false; - ctx = SDL_GL_CreateContext(wnd); - if (ctx == NULL) - return false; - SDL_GL_SetSwapInterval(vsync ? 1 : 0); - SDL_GL_MakeCurrent(wnd, ctx); - /* default configuration */ - gl.setClearColor(0, 0, 0, 0xff); - gl.pushColor(0xff, 0xff, 0xff, 0xff); - gl.enable(GL_BLEND); - gl.enable(GL_TEXTURE_2D); - gl.setBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - /* avoid white screen blink on windows */ - swapBuffers(); - /* bind to default canvas */ - Canvas::unbind(); - Shader::unuse(); - return true; - } - - void Window::quitSystem() - { - /* disable opengl */ - gl.disable(GL_BLEND); - gl.disable(GL_TEXTURE_2D); - /* close window */ - SDL_DestroyWindow(wnd); - SDL_Quit(); - } - - void Window::swapBuffers() - { - if (wnd) - SDL_GL_SwapWindow(wnd); - } - - void Window::setTitle(const char* title) - { - SDL_SetWindowTitle(wnd, title); - }; - - } // namespace graphics -} // namespace jin - -#endif // LIBJIN_MODULES_RENDER
\ No newline at end of file |