summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-10-29 17:36:39 -0600
committerBrian <[email protected]>2007-10-30 11:32:53 -0600
commitba0fcc47d61be6caa2f4a5f4eb0c36eba9e2cb59 (patch)
tree90ea47035e35907cd32c638c30555d4acbd1d87f
parentb19a93393043371776af6d50662a3eb0a9a965ce (diff)
Set _NEW_BUFFERS in glRead/DrawBuffer().
Previously, we set _NEW_PIXEL and _NEW_COLOR in these functions, respectively. That correponds to the GL attribute groups, but doesn't make much sense otherwise. This could improve validation efficiency in a few places too. It looks like all the drivers are already checking for _NEW_BUFFERS in the right places (since that's the bit for FBO state) so we can trim out _NEW_PIXEL and _NEW_COLOR at any time.
-rw-r--r--src/mesa/drivers/x11/xm_dd.c2
-rw-r--r--src/mesa/main/buffers.c4
-rw-r--r--src/mesa/main/state.c2
-rw-r--r--src/mesa/state_tracker/st_atom_framebuffer.c6
4 files changed, 5 insertions, 9 deletions
diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c
index 3ee44bfbaf6..8ae243ae662 100644
--- a/src/mesa/drivers/x11/xm_dd.c
+++ b/src/mesa/drivers/x11/xm_dd.c
@@ -841,7 +841,7 @@ xmesa_update_state( GLcontext *ctx, GLbitfield new_state )
* GL_DITHER, GL_READ/DRAW_BUFFER, buffer binding state, etc. effect
* renderbuffer span/clear funcs.
*/
- if (new_state & (_NEW_COLOR | _NEW_PIXEL | _NEW_BUFFERS)) {
+ if (new_state & (_NEW_COLOR | _NEW_BUFFERS)) {
XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);
struct xmesa_renderbuffer *front_xrb, *back_xrb;
diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c
index 7a918c53a7e..3cbd671baba 100644
--- a/src/mesa/main/buffers.c
+++ b/src/mesa/main/buffers.c
@@ -527,7 +527,7 @@ _mesa_drawbuffers(GLcontext *ctx, GLuint n, const GLenum *buffers,
set_color_output(ctx, output, GL_NONE, 0x0);
}
- ctx->NewState |= _NEW_COLOR;
+ ctx->NewState |= _NEW_BUFFERS;
}
@@ -588,7 +588,7 @@ _mesa_ReadBuffer(GLenum buffer)
if (!_mesa_readbuffer_update_fields(ctx, buffer))
return;
- ctx->NewState |= _NEW_PIXEL;
+ ctx->NewState |= _NEW_BUFFERS;
/*
* Call device driver function.
diff --git a/src/mesa/main/state.c b/src/mesa/main/state.c
index 41c657e9fd6..0e4cf047c86 100644
--- a/src/mesa/main/state.c
+++ b/src/mesa/main/state.c
@@ -1170,7 +1170,7 @@ _mesa_update_state_locked( GLcontext *ctx )
if (new_state & (_NEW_PROGRAM|_NEW_TEXTURE|_NEW_TEXTURE_MATRIX))
_mesa_update_texture( ctx, new_state );
- if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL))
+ if (new_state & _NEW_BUFFERS)
_mesa_update_framebuffer(ctx);
if (new_state & (_NEW_SCISSOR | _NEW_BUFFERS | _NEW_VIEWPORT))
diff --git a/src/mesa/state_tracker/st_atom_framebuffer.c b/src/mesa/state_tracker/st_atom_framebuffer.c
index e776c9112d1..aec51f5eedd 100644
--- a/src/mesa/state_tracker/st_atom_framebuffer.c
+++ b/src/mesa/state_tracker/st_atom_framebuffer.c
@@ -85,14 +85,10 @@ update_framebuffer_state( struct st_context *st )
}
-/**
- * Note that glDrawBuffer() sets _NEW_COLOR, not _NEW_BUFFER.
- */
-
const struct st_tracked_state st_update_framebuffer = {
.name = "st_update_framebuffer",
.dirty = {
- .mesa = (_NEW_BUFFERS | _NEW_COLOR),
+ .mesa = _NEW_BUFFERS,
.st = 0,
},
.update = update_framebuffer_state