From c018c14412be9d3d11e107b1b13c96afbd0e0cec Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Sun, 6 Aug 2006 04:57:28 +0000 Subject: [PATCH] Added window resize support for the software renderer --HG-- extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%402018 --- src/video/SDL_renderer_sw.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/video/SDL_renderer_sw.c b/src/video/SDL_renderer_sw.c index d3ee7fb86..7eecac91e 100644 --- a/src/video/SDL_renderer_sw.c +++ b/src/video/SDL_renderer_sw.c @@ -289,12 +289,30 @@ static int SW_DisplayModeChanged(SDL_Renderer * renderer) { SW_RenderData *data = (SW_RenderData *) renderer->driverdata; + SDL_Window *window = SDL_GetWindowFromID(renderer->window); + int i, n; if (data->renderer && data->renderer->DisplayModeChanged) { if (data->renderer->DisplayModeChanged(data->renderer) < 0) { return -1; } } + + /* Recreate the textures for the new window size */ + if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP2) { + n = 2; + } else if (renderer->info.flags & SDL_RENDERER_PRESENTFLIP3) { + n = 3; + } else { + n = 1; + } + for (i = 0; i < n; ++i) { + if (data->texture[i]) { + DestroyTexture(data->renderer, data->texture[i]); + } + data->texture[i] = + CreateTexture(data->renderer, data->format, window->w, window->h); + } return 0; }