mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2024-12-20 15:40:26 +00:00
fixed SDL2 (with GLEW) on Windows
This commit is contained in:
parent
3fa23afdce
commit
91b6628922
@ -172,6 +172,8 @@ EX SDL_Renderer *s_renderer, *s_software_renderer;
|
||||
#endif
|
||||
EX SDL_Texture *s_texture;
|
||||
EX SDL_Window *s_window;
|
||||
EX SDL_GLContext s_context;
|
||||
EX bool s_have_context;
|
||||
#endif
|
||||
|
||||
EX color_t qpixel_pixel_outside;
|
||||
@ -1148,6 +1150,9 @@ EX void close_renderer() {
|
||||
EX void close_window() {
|
||||
#if CAP_SDL2
|
||||
close_renderer();
|
||||
if(s_have_context) {
|
||||
SDL_GL_DeleteContext(s_context), s_have_context = false;
|
||||
}
|
||||
if(s_window) SDL_DestroyWindow(s_window), s_window = nullptr;
|
||||
#endif
|
||||
}
|
||||
@ -1277,8 +1282,13 @@ EX void setvideomode() {
|
||||
|
||||
auto create_win = [&] {
|
||||
#if CAP_SDL2
|
||||
if(s_window && current_window_flags != (flags | sizeflag))
|
||||
if(s_window && current_window_flags != (flags | sizeflag)) {
|
||||
if(s_have_context) {
|
||||
SDL_GL_DeleteContext(s_context), s_have_context = false;
|
||||
glhr::glew = false;
|
||||
}
|
||||
SDL_DestroyWindow(s_window), s_window = nullptr;
|
||||
}
|
||||
if(s_window)
|
||||
SDL_SetWindowSize(s_window, vid.xres, vid.yres);
|
||||
else
|
||||
@ -1315,6 +1325,7 @@ EX void setvideomode() {
|
||||
}
|
||||
|
||||
#if CAP_SDL2
|
||||
if(s_renderer) SDL_DestroyRenderer(s_renderer), s_renderer = nullptr;
|
||||
s_renderer = SDL_CreateRenderer(s_window, -1, vid.current_vsync ? SDL_RENDERER_PRESENTVSYNC : 0);
|
||||
SDL_GetRendererOutputSize(s_renderer, &vid.xres, &vid.yres);
|
||||
|
||||
@ -1341,6 +1352,12 @@ EX void setvideomode() {
|
||||
glDisable(GL_MULTISAMPLE_ARB);
|
||||
}
|
||||
|
||||
#if CAP_SDL2
|
||||
if(s_have_context) SDL_GL_DeleteContext(s_context), s_have_context = false;
|
||||
if(!s_have_context) s_context = SDL_GL_CreateContext(s_window);
|
||||
s_have_context = true; glhr::glew = false;
|
||||
#endif
|
||||
|
||||
glViewport(0, 0, vid.xres, vid.yres);
|
||||
glhr::init();
|
||||
resetGL();
|
||||
|
3
glhr.cpp
3
glhr.cpp
@ -153,7 +153,7 @@ struct glmatrix {
|
||||
|
||||
#endif
|
||||
|
||||
bool glew = false;
|
||||
EX bool glew = false;
|
||||
|
||||
bool current_depthtest, current_depthwrite;
|
||||
ld fogbase;
|
||||
@ -697,6 +697,7 @@ void init() {
|
||||
#if CAP_GLEW
|
||||
if(!glew) {
|
||||
glew = true;
|
||||
glewExperimental = GL_TRUE;
|
||||
printf("Initializing GLEW\n");
|
||||
GLenum err = glewInit();
|
||||
if (GLEW_OK != err) {
|
||||
|
Loading…
Reference in New Issue
Block a user