From 662f966cd943615d44ebff7c2a8522e6004a1fce Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 13 Oct 2016 08:46:34 -0700 Subject: [PATCH] Fixed bug 3355 - false "Invalid renderer" after creating an "opengles2" renderer. Call SDL_GL_GetDrawableSize() directly because we may be in the initialization path and SDL_GetRendererOutputSize() will fail because the renderer magic isn't set up yet. --- src/render/opengl/SDL_render_gl.c | 5 ++--- src/render/opengles/SDL_render_gles.c | 4 ++-- src/render/opengles2/SDL_render_gles2.c | 4 ++-- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/render/opengl/SDL_render_gl.c b/src/render/opengl/SDL_render_gl.c index 85319eaf058e4..410de464bc9f5 100644 --- a/src/render/opengl/SDL_render_gl.c +++ b/src/render/opengl/SDL_render_gl.c @@ -592,7 +592,6 @@ static int GL_GetOutputSize(SDL_Renderer * renderer, int *w, int *h) { SDL_GL_GetDrawableSize(renderer->window, w, h); - return 0; } @@ -1020,7 +1019,7 @@ GL_UpdateViewport(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer, &w, &h); data->glViewport(renderer->viewport.x, (h - renderer->viewport.y - renderer->viewport.h), renderer->viewport.w, renderer->viewport.h); } @@ -1058,7 +1057,7 @@ GL_UpdateClipRect(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer, &w, &h); data->glScissor(renderer->viewport.x + rect->x, h - renderer->viewport.y - rect->y - rect->h, rect->w, rect->h); } } else { diff --git a/src/render/opengles/SDL_render_gles.c b/src/render/opengles/SDL_render_gles.c index f0856d716c912..5f96b227f7d02 100644 --- a/src/render/opengles/SDL_render_gles.c +++ b/src/render/opengles/SDL_render_gles.c @@ -672,7 +672,7 @@ GLES_UpdateViewport(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer, &w, &h); data->glViewport(renderer->viewport.x, (h - renderer->viewport.y - renderer->viewport.h), renderer->viewport.w, renderer->viewport.h); } @@ -715,7 +715,7 @@ GLES_UpdateClipRect(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer, &w, &h); data->glScissor(renderer->viewport.x + rect->x, h - renderer->viewport.y - rect->y - rect->h, rect->w, rect->h); } } else { diff --git a/src/render/opengles2/SDL_render_gles2.c b/src/render/opengles2/SDL_render_gles2.c index c419c0f07c334..c846a7b395f98 100644 --- a/src/render/opengles2/SDL_render_gles2.c +++ b/src/render/opengles2/SDL_render_gles2.c @@ -388,7 +388,7 @@ GLES2_UpdateViewport(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer->window, &w, &h); data->glViewport(renderer->viewport.x, (h - renderer->viewport.y - renderer->viewport.h), renderer->viewport.w, renderer->viewport.h); } @@ -417,7 +417,7 @@ GLES2_UpdateClipRect(SDL_Renderer * renderer) } else { int w, h; - SDL_GetRendererOutputSize(renderer, &w, &h); + SDL_GL_GetDrawableSize(renderer->window, &w, &h); data->glScissor(renderer->viewport.x + rect->x, h - renderer->viewport.y - rect->y - rect->h, rect->w, rect->h); } } else {