invert Y for scissor

This commit is contained in:
Brian 2007-08-10 16:24:55 -06:00
parent fb4ff8a2a8
commit 717831ea71

View file

@ -44,6 +44,7 @@ update_scissor( struct st_context *st )
{
struct pipe_scissor_state scissor;
const struct gl_framebuffer *fb = st->ctx->DrawBuffer;
GLint miny, maxy;
scissor.minx = 0;
scissor.miny = 0;
@ -66,6 +67,13 @@ update_scissor( struct st_context *st )
scissor.minx = scissor.miny = scissor.maxx = scissor.maxy = 0;
}
/* Now invert Y. Pipe drivers use the convention Y=0=top for surfaces
*/
miny = fb->Height - scissor.maxy;
maxy = fb->Height - scissor.miny;
scissor.miny = miny;
scissor.maxy = maxy;
if (memcmp(&scissor, &st->state.scissor, sizeof(scissor)) != 0) {
/* state has changed */
st->state.scissor = scissor; /* struct copy */