From 4b32c644a7f73fc7b49747ef881fa986fe954272 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sat, 7 Jan 2012 02:32:08 -0500 Subject: [PATCH] Fixed bug 1256 - Invalid window warning in GL_CreateRenderer Martin Gerhardy 2011-07-27 02:26:06 PDT the window reference is lost in the GL_CreateRenderer function. The attached patch should fix this error. #0 SDLSystem_LogOutputFunction (userdata=0x63b010, category=1, priority=SDL_LOG_PRIORITY_ERROR, message=0x7fffffffcd00 "Invalid window") at src/system/sdl/SDLSystem.cpp:8 #1 0x00007ffff7b1ddb3 in SDL_LogMessageV (category=1, priority=SDL_LOG_PRIORITY_ERROR, fmt=, ap=) at src/SDL_log.c:275 #2 0x00007ffff7b1df7c in SDL_LogError (category=, fmt=) at src/SDL_log.c:212 #3 0x00007ffff7b1d582 in SDL_SetError (fmt=0x7ffff7baaff0 "") at src/SDL_error.c:111 #4 0x00007ffff7b96f9e in SDL_GL_MakeCurrent (window=0x0, ctx=0xa62ce0) at src/video/SDL_video.c:2484 #5 0x00007ffff7b4ba0c in GL_ActivateRenderer (renderer=0xa8f680) at src/render/opengl/SDL_render_gl.c:195 #6 0x00007ffff7b4c59a in GL_ResetState (window=0x918010, flags=) at src/render/opengl/SDL_render_gl.c:214 #7 GL_CreateRenderer (window=0x918010, flags=) at src/render/opengl/SDL_render_gl.c:343 #8 0x00007ffff7b48053 in SDL_CreateRenderer (window=0x918010, index=, flags=2) at src/render/SDL_render.c:166 --- src/render/opengl/SDL_render_gl.c | 1 + src/render/opengles/SDL_render_gles.c | 1 + src/render/opengles2/SDL_render_gles2.c | 1 + 3 files changed, 3 insertions(+) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index a331445b4..dbfdddf68 100755 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -274,6 +274,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->info = GL_RenderDriver.info; renderer->info.flags = SDL_RENDERER_ACCELERATED; renderer->driverdata = data; + renderer->window = window; data->context = SDL_GL_CreateContext(window); if (!data->context) { diff --git a/src/render/opengles/SDL_render_gles.c b/src/render/opengles/SDL_render_gles.c index eb5d33585..53125a00f 100755 --- a/src/render/opengles/SDL_render_gles.c +++ b/src/render/opengles/SDL_render_gles.c @@ -225,6 +225,7 @@ GLES_CreateRenderer(SDL_Window * window, Uint32 flags) renderer->info = GLES_RenderDriver.info; renderer->info.flags = SDL_RENDERER_ACCELERATED; renderer->driverdata = data; + renderer->window = window; SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 1); SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c index bec1c85d1..ccc88d824 100755 --- a/src/render/opengles2/SDL_render_gles2.c +++ b/src/render/opengles2/SDL_render_gles2.c @@ -1211,6 +1211,7 @@ GLES2_CreateRenderer(SDL_Window *window, Uint32 flags) renderer->info = GLES2_RenderDriver.info; renderer->info.flags = SDL_RENDERER_ACCELERATED; renderer->driverdata = rdata; + renderer->window = window; /* Create an OpenGL ES 2.0 context */ SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);