From bd2c472cb355f96ad5a30a52964ed7606ead6ddb Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Fri, 26 Jun 2015 02:15:05 -0700 Subject: [PATCH] SDL: Clean up GL context --- CHANGES | 1 + src/platform/sdl/gl-sdl.c | 5 ++++- src/platform/sdl/main.c | 1 - src/platform/sdl/main.h | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 717b6616d..69a9c09a1 100644 --- a/CHANGES +++ b/CHANGES @@ -84,6 +84,7 @@ Misc: - GBA: More accurate cycle estimation for ROM prefetch and flash save chips - ARM7: Reduce the size of the Thumb instruction table - GBA: Don't include GBACLIDebugger struct unless needed + - SDL: Clean up GL context 0.2.1: (2015-05-13) Bugfixes: diff --git a/src/platform/sdl/gl-sdl.c b/src/platform/sdl/gl-sdl.c index 6b9c7f4c5..429d67a65 100644 --- a/src/platform/sdl/gl-sdl.c +++ b/src/platform/sdl/gl-sdl.c @@ -51,7 +51,7 @@ bool GBASDLGLInit(struct SDLSoftwareRenderer* renderer) { #if SDL_VERSION_ATLEAST(2, 0, 0) renderer->window = SDL_CreateWindow(projectName, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, renderer->viewportWidth, renderer->viewportHeight, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | (SDL_WINDOW_FULLSCREEN_DESKTOP * renderer->player.fullscreen)); - SDL_GL_CreateContext(renderer->window); + renderer->glCtx = SDL_GL_CreateContext(renderer->window); SDL_GL_SetSwapInterval(1); SDL_GetWindowSize(renderer->window, &renderer->viewportWidth, &renderer->viewportHeight); renderer->player.window = renderer->window; @@ -109,4 +109,7 @@ void GBASDLGLDeinit(struct SDLSoftwareRenderer* renderer) { renderer->gl.d.deinit(&renderer->gl.d); } free(renderer->d.outputBuffer); +#if SDL_VERSION_ATLEAST(2, 0, 0) + SDL_GL_DeleteContext(renderer->glCtx); +#endif } diff --git a/src/platform/sdl/main.c b/src/platform/sdl/main.c index 5124d6754..0b3143eeb 100644 --- a/src/platform/sdl/main.c +++ b/src/platform/sdl/main.c @@ -176,5 +176,4 @@ static void GBASDLDeinit(struct SDLSoftwareRenderer* renderer) { renderer->deinit(renderer); SDL_Quit(); - } diff --git a/src/platform/sdl/main.h b/src/platform/sdl/main.h index 55082078d..4a428c190 100644 --- a/src/platform/sdl/main.h +++ b/src/platform/sdl/main.h @@ -45,6 +45,7 @@ struct SDLSoftwareRenderer { SDL_Window* window; SDL_Texture* sdlTex; SDL_Renderer* sdlRenderer; + SDL_GLContext* glCtx; #endif int viewportWidth;