--- ../Mesa-6.4.2/src/mesa/main/buffers.h 2005-05-04 22:11:39.000000000 +0200 +++ src/mesa/main/buffers.h 2006-03-15 16:54:22.000000000 +0100 @@ -74,5 +74,8 @@ extern void _mesa_init_multisample(GLcontext *ctx); +extern void _mesa_set_scissor( GLcontext *ctx, + GLint x, GLint y, GLsizei width, GLsizei height ); + #endif --- ../Mesa-6.4.2/src/mesa/main/buffers.c 2005-07-01 03:08:29.000000000 +0200 +++ src/mesa/main/buffers.c 2006-03-15 16:55:05.000000000 +0100 @@ -653,20 +653,9 @@ * change flushes the vertices and notifies the driver via * the dd_function_table::Scissor callback. */ -void GLAPIENTRY -_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ) +void _mesa_set_scissor( GLcontext *ctx, + GLint x, GLint y, GLsizei width, GLsizei height ) { - GET_CURRENT_CONTEXT(ctx); - ASSERT_OUTSIDE_BEGIN_END(ctx); - - if (width < 0 || height < 0) { - _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" ); - return; - } - - if (MESA_VERBOSE & VERBOSE_API) - _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height); - if (x == ctx->Scissor.X && y == ctx->Scissor.Y && width == ctx->Scissor.Width && @@ -684,6 +673,24 @@ } +void GLAPIENTRY +_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height ) +{ + GET_CURRENT_CONTEXT(ctx); + ASSERT_OUTSIDE_BEGIN_END(ctx); + + if (width < 0 || height < 0) { + _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" ); + return; + } + + if (MESA_VERBOSE & VERBOSE_API) + _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height); + + _mesa_set_scissor(ctx, x, y, width, height); +} + + /**********************************************************************/ /** \name Initialization */ --- ../Mesa-6.4.2/src/mesa/main/context.c 2006-01-16 17:26:16.000000000 +0100 +++ src/mesa/main/context.c 2006-03-15 16:55:47.000000000 +0100 @@ -1588,8 +1588,9 @@ if (newCtx->FirstTimeCurrent) { /* set initial viewport and scissor size now */ _mesa_set_viewport(newCtx, 0, 0, drawBuffer->Width, drawBuffer->Height); - newCtx->Scissor.Width = drawBuffer->Width; - newCtx->Scissor.Height = drawBuffer->Height; + _mesa_set_scissor(newCtx, 0, 0, + drawBuffer->Width, + drawBuffer->Height ); } }