diff options
| author | Keith Whitwell <keith@tungstengraphics.com> | 2005-12-30 13:02:27 +0000 | 
|---|---|---|
| committer | Keith Whitwell <keith@tungstengraphics.com> | 2005-12-30 13:02:27 +0000 | 
| commit | 1d43e729ec94217f3b742be481c753a8eaa65ea3 (patch) | |
| tree | bdebab4b9cac88ad3fa25ea72520f6ad1c4b6581 | |
| parent | 8c137e2f94a5710e59676598fb2c3f00565834e1 (diff) | |
properly notify driver on scissor change in MakeCurrent
| -rw-r--r-- | src/mesa/main/buffers.c | 33 | ||||
| -rw-r--r-- | src/mesa/main/buffers.h | 3 | ||||
| -rw-r--r-- | src/mesa/main/context.c | 6 | 
3 files changed, 27 insertions, 15 deletions
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index bfec9b547d..89e92036c8 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -669,20 +669,9 @@ _mesa_SampleCoverageARB(GLclampf value, GLboolean invert)   * 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 && @@ -700,6 +689,24 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height )  } +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 */ diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h index b10d680d8e..547fb28886 100644 --- a/src/mesa/main/buffers.h +++ b/src/mesa/main/buffers.h @@ -74,5 +74,8 @@ _mesa_init_scissor(GLcontext *ctx);  extern void   _mesa_init_multisample(GLcontext *ctx); +extern void _mesa_set_scissor( GLcontext *ctx,  +			       GLint x, GLint y, GLsizei width, GLsizei height ); +  #endif diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index a50632615d..4101c9f1ed 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1611,8 +1611,10 @@ _mesa_make_current( GLcontext *newCtx, GLframebuffer *drawBuffer,              /* 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 );           }        }  | 
