mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-11 23:10:28 +01:00
Don't pass x/y/width/height to ctx->Driver.Accum().
Compute the region after we've locked (and possibly updated the buffer's size). Same thing is needed for ctx->Driver.Clear().
This commit is contained in:
parent
4e4c0bbef7
commit
ccb64bbb2a
4 changed files with 14 additions and 15 deletions
|
|
@ -94,11 +94,7 @@ _mesa_Accum( GLenum op, GLfloat value )
|
|||
}
|
||||
|
||||
if (ctx->RenderMode == GL_RENDER) {
|
||||
GLint x = ctx->DrawBuffer->_Xmin;
|
||||
GLint y = ctx->DrawBuffer->_Ymin;
|
||||
GLint width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
|
||||
GLint height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
|
||||
ctx->Driver.Accum(ctx, op, value, x, y, width, height);
|
||||
ctx->Driver.Accum(ctx, op, value);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -118,10 +118,9 @@ struct dd_function_table {
|
|||
*/
|
||||
/*@{*/
|
||||
/**
|
||||
* Execute glAccum command within the given scissor region.
|
||||
* Execute glAccum command.
|
||||
*/
|
||||
void (*Accum)( GLcontext *ctx, GLenum op, GLfloat value,
|
||||
GLint xpos, GLint ypos, GLint width, GLint height );
|
||||
void (*Accum)( GLcontext *ctx, GLenum op, GLfloat value );
|
||||
/*@}*/
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -541,12 +541,10 @@ accum_return(GLcontext *ctx, GLfloat value,
|
|||
* Software fallback for glAccum.
|
||||
*/
|
||||
void
|
||||
_swrast_Accum( GLcontext *ctx, GLenum op, GLfloat value,
|
||||
GLint xpos, GLint ypos,
|
||||
GLint width, GLint height )
|
||||
|
||||
_swrast_Accum(GLcontext *ctx, GLenum op, GLfloat value)
|
||||
{
|
||||
SWcontext *swrast = SWRAST_CONTEXT(ctx);
|
||||
GLint xpos, ypos, width, height;
|
||||
|
||||
if (SWRAST_CONTEXT(ctx)->NewState)
|
||||
_swrast_validate_derived( ctx );
|
||||
|
|
@ -558,6 +556,14 @@ _swrast_Accum( GLcontext *ctx, GLenum op, GLfloat value,
|
|||
|
||||
RENDER_START(swrast, ctx);
|
||||
|
||||
/* Compute region after calling RENDER_START so that we know the
|
||||
* drawbuffer's size/bounds are up to date.
|
||||
*/
|
||||
xpos = ctx->DrawBuffer->_Xmin;
|
||||
ypos = ctx->DrawBuffer->_Ymin;
|
||||
width = ctx->DrawBuffer->_Xmax - ctx->DrawBuffer->_Xmin;
|
||||
height = ctx->DrawBuffer->_Ymax - ctx->DrawBuffer->_Ymin;
|
||||
|
||||
switch (op) {
|
||||
case GL_ADD:
|
||||
if (value != 0.0F) {
|
||||
|
|
|
|||
|
|
@ -134,9 +134,7 @@ _swrast_Clear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
|||
GLint x, GLint y, GLint width, GLint height );
|
||||
|
||||
extern void
|
||||
_swrast_Accum( GLcontext *ctx, GLenum op,
|
||||
GLfloat value, GLint xpos, GLint ypos,
|
||||
GLint width, GLint height );
|
||||
_swrast_Accum(GLcontext *ctx, GLenum op, GLfloat value);
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue