diff -r 6fe1936ac50b src/render/opengl/SDL_render_gl.c --- a/src/render/opengl/SDL_render_gl.c Thu Jun 05 11:55:37 2014 -0300 +++ b/src/render/opengl/SDL_render_gl.c Sun Apr 26 17:03:27 2015 +0200 @@ -1046,7 +1046,11 @@ if (renderer->clipping_enabled) { const SDL_Rect *rect = &renderer->clip_rect; data->glEnable(GL_SCISSOR_TEST); - data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + if (renderer->target) { + data->glScissor(rect->x, rect->y, rect->w, rect->h); + } else { + data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + } } else { data->glDisable(GL_SCISSOR_TEST); } diff -r 6fe1936ac50b src/render/opengles/SDL_render_gles.c --- a/src/render/opengles/SDL_render_gles.c Thu Jun 05 11:55:37 2014 -0300 +++ b/src/render/opengles/SDL_render_gles.c Sun Apr 26 17:03:27 2015 +0200 @@ -709,7 +709,11 @@ if (renderer->clipping_enabled) { const SDL_Rect *rect = &renderer->clip_rect; data->glEnable(GL_SCISSOR_TEST); - data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + if (renderer->target) { + data->glScissor(rect->x, rect->y, rect->w, rect->h); + } else { + data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + } } else { data->glDisable(GL_SCISSOR_TEST); } diff -r 6fe1936ac50b src/render/opengles2/SDL_render_gles2.c --- a/src/render/opengles2/SDL_render_gles2.c Thu Jun 05 11:55:37 2014 -0300 +++ b/src/render/opengles2/SDL_render_gles2.c Sun Apr 26 17:03:27 2015 +0200 @@ -408,7 +408,11 @@ if (renderer->clipping_enabled) { const SDL_Rect *rect = &renderer->clip_rect; data->glEnable(GL_SCISSOR_TEST); - data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + if (renderer->target) { + data->glScissor(rect->x, rect->y, rect->w, rect->h); + } else { + data->glScissor(rect->x, renderer->viewport.h - rect->y - rect->h, rect->w, rect->h); + } } else { data->glDisable(GL_SCISSOR_TEST); }