From b1b8c20318aa16a55eab173c63da9974094cd27e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Fri, 5 Dec 2008 06:22:19 +0000 Subject: [PATCH] The matrices have already been set, so you don't have to re-set them. You always need to reset the viewport when activating the renderer in case the context had been set to a different window previously. --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403293 --- src/video/SDL_renderer_gl.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/src/video/SDL_renderer_gl.c b/src/video/SDL_renderer_gl.c index 0f5aa3377..afd20a34f 100644 --- a/src/video/SDL_renderer_gl.c +++ b/src/video/SDL_renderer_gl.c @@ -121,7 +121,6 @@ SDL_RenderDriver GL_RenderDriver = { typedef struct { SDL_GLContext context; - SDL_bool updateSize; SDL_bool GL_ARB_texture_rectangle_supported; SDL_bool GL_EXT_paletted_texture_supported; int blendMode; @@ -358,7 +357,10 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags) } else { data->glEnable(GL_TEXTURE_2D); } - data->updateSize = SDL_TRUE; + data->glMatrixMode(GL_PROJECTION); + data->glLoadIdentity(); + data->glMatrixMode(GL_MODELVIEW); + data->glLoadIdentity(); return renderer; } @@ -372,16 +374,9 @@ GL_ActivateRenderer(SDL_Renderer * renderer) if (SDL_GL_MakeCurrent(window->id, data->context) < 0) { return -1; } - if (data->updateSize) { - data->glMatrixMode(GL_PROJECTION); - data->glLoadIdentity(); - data->glMatrixMode(GL_MODELVIEW); - data->glLoadIdentity(); - data->glViewport(0, 0, window->w, window->h); - data->glOrtho(0.0, (GLdouble) window->w, (GLdouble) window->h, 0.0, - 0.0, 1.0); - data->updateSize = SDL_FALSE; - } + data->glViewport(0, 0, window->w, window->h); + data->glOrtho(0.0, (GLdouble) window->w, (GLdouble) window->h, 0.0, 0.0, + 1.0); return 0; } @@ -389,9 +384,11 @@ static int GL_DisplayModeChanged(SDL_Renderer * renderer) { GL_RenderData *data = (GL_RenderData *) renderer->driverdata; + SDL_Window *window = SDL_GetWindowFromID(renderer->window); - data->updateSize = SDL_TRUE; - return 0; + data->glViewport(0, 0, window->w, window->h); + data->glOrtho(0.0, (GLdouble) window->w, (GLdouble) window->h, 0.0, 0.0, + 1.0); } static __inline__ int