From 44e52e57d30615ee56e3e8cb9943787be336c241 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Thu, 27 Jun 2013 11:27:19 -0700 Subject: [PATCH] Fixed bug updating the clip rect for the software renderer --- src/render/software/SDL_render_sw.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/render/software/SDL_render_sw.c b/src/render/software/SDL_render_sw.c index b7f2b1798..f1feee307 100644 --- a/src/render/software/SDL_render_sw.c +++ b/src/render/software/SDL_render_sw.c @@ -118,6 +118,7 @@ SW_ActivateRenderer(SDL_Renderer * renderer) renderer->viewport.h = surface->h; SW_UpdateViewport(renderer); + SW_UpdateClipRect(renderer); } } return data->surface; @@ -346,13 +347,16 @@ SW_UpdateViewport(SDL_Renderer * renderer) static int SW_UpdateClipRect(SDL_Renderer * renderer) { + SW_RenderData *data = (SW_RenderData *) renderer->driverdata; + SDL_Surface *surface = data->surface; const SDL_Rect *rect = &renderer->clip_rect; - SDL_Surface* framebuffer = (SDL_Surface *) renderer->driverdata; - if (!SDL_RectEmpty(rect)) { - SDL_SetClipRect(framebuffer, rect); - } else { - SDL_SetClipRect(framebuffer, NULL); + if (surface) { + if (!SDL_RectEmpty(rect)) { + SDL_SetClipRect(surface, rect); + } else { + SDL_SetClipRect(surface, NULL); + } } return 0; }