Fixes OpenGL* Clip Rect functions (by Emmanuel Gil Peyrot)

This commit is contained in:
Gabriel Jacobo 2013-05-10 10:31:01 -03:00
parent 5d9de376d2
commit 7065c6467d
5 changed files with 21 additions and 7 deletions

View file

@ -278,13 +278,19 @@ GLES2_UpdateViewport(SDL_Renderer * renderer)
static int
GLES2_UpdateClipRect(SDL_Renderer * renderer)
{
GLES2_DriverContext *rdata = (GLES2_DriverContext *)renderer->driverdata;
const SDL_Rect *rect = &renderer->clip_rect;
if (SDL_CurrentContext != rdata->context) {
/* We'll update the clip rect after we rebind the context */
return 0;
}
if (!SDL_RectEmpty(rect)) {
glEnable(GL_SCISSOR_TEST);
glScissor(rect->x, rect->y, rect->x + rect->w, rect->y + rect->h);
rdata->glEnable(GL_SCISSOR_TEST);
rdata->glScissor(rect->x, rect->h - rect->y, rect->w, rect->h);
} else {
glDisable(GL_SCISSOR_TEST);
rdata->glDisable(GL_SCISSOR_TEST);
}
return 0;
}