From 0e26580c903a9b8b5952feeaac2e579a309ebf31 Mon Sep 17 00:00:00 2001 From: Daniel Borca Date: Mon, 9 May 2005 22:14:58 +0000 Subject: accomodate new frambuffer changes --- src/mesa/drivers/glide/fxdd.c | 40 +++++++++++++++++++-------------------- src/mesa/drivers/glide/fxddspan.c | 20 ++++++++++++-------- 2 files changed, 32 insertions(+), 28 deletions(-) (limited to 'src/mesa/drivers/glide') diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index 50022ee548..d76a0ed6c6 100644 --- a/src/mesa/drivers/glide/fxdd.c +++ b/src/mesa/drivers/glide/fxdd.c @@ -159,9 +159,9 @@ static void fxDDClear( GLcontext *ctx, GLint x, GLint y, GLint width, GLint height ) { fxMesaContext fxMesa = FX_CONTEXT(ctx); - GLbitfield softwareMask = mask & (DD_ACCUM_BIT); + GLbitfield softwareMask = mask & (BUFFER_BIT_ACCUM); const GLuint stencil_size = fxMesa->haveHwStencil ? ctx->Visual.stencilBits : 0; - const FxU32 clearD = (FxU32) (ctx->DepthMaxF * ctx->Depth.Clear); + const FxU32 clearD = (FxU32) (ctx->DrawBuffer->_DepthMaxF * ctx->Depth.Clear); const FxU8 clearS = (FxU8) (ctx->Stencil.Clear & 0xff); if ( TDFX_DEBUG & MESA_VERBOSE ) { @@ -170,7 +170,7 @@ static void fxDDClear( GLcontext *ctx, } /* we can't clear accum buffers nor stereo */ - mask &= ~(DD_ACCUM_BIT | DD_FRONT_RIGHT_BIT | DD_BACK_RIGHT_BIT); + mask &= ~(BUFFER_BIT_ACCUM | BUFFER_BIT_FRONT_RIGHT | BUFFER_BIT_BACK_RIGHT); /* Need this check to respond to certain HW updates */ if (fxMesa->new_state & (FX_NEW_SCISSOR | FX_NEW_COLOR_MASK)) { @@ -186,8 +186,8 @@ static void fxDDClear( GLcontext *ctx, /* can only do color masking if running in 24/32bpp on Napalm */ if (ctx->Color.ColorMask[RCOMP] != ctx->Color.ColorMask[GCOMP] || ctx->Color.ColorMask[GCOMP] != ctx->Color.ColorMask[BCOMP]) { - softwareMask |= (mask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT)); - mask &= ~(DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT); + softwareMask |= (mask & (BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT)); + mask &= ~(BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT); } } @@ -198,7 +198,7 @@ static void fxDDClear( GLcontext *ctx, * in the OGL state. */ BEGIN_BOARD_LOCK(); - if (mask & DD_STENCIL_BIT) { + if (mask & BUFFER_BIT_STENCIL) { fxMesa->Glide.grStencilMaskExt(fxMesa->unitsState.stencilWriteMask); /* set stencil ref value = desired clear value */ fxMesa->Glide.grStencilFuncExt(GR_CMP_ALWAYS, clearS, 0xff); @@ -210,9 +210,9 @@ static void fxDDClear( GLcontext *ctx, grDisable(GR_STENCIL_MODE_EXT); } END_BOARD_LOCK(); - } else if (mask & DD_STENCIL_BIT) { - softwareMask |= (mask & (DD_STENCIL_BIT)); - mask &= ~(DD_STENCIL_BIT); + } else if (mask & BUFFER_BIT_STENCIL) { + softwareMask |= (mask & (BUFFER_BIT_STENCIL)); + mask &= ~(BUFFER_BIT_STENCIL); } /* @@ -225,8 +225,8 @@ static void fxDDClear( GLcontext *ctx, * This could probably be done fancier but doing each possible case * explicitly is less error prone. */ - switch (mask & ~DD_STENCIL_BIT) { - case DD_BACK_LEFT_BIT | DD_DEPTH_BIT: + switch (mask & ~BUFFER_BIT_STENCIL) { + case BUFFER_BIT_BACK_LEFT | BUFFER_BIT_DEPTH: /* back buffer & depth */ grDepthMask(FXTRUE); grRenderBuffer(GR_BUFFER_BACKBUFFER); @@ -240,7 +240,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_FRONT_LEFT_BIT | DD_DEPTH_BIT: + case BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_DEPTH: /* XXX it appears that the depth buffer isn't cleared when * glRenderBuffer(GR_BUFFER_FRONTBUFFER) is set. * This is a work-around/ @@ -270,7 +270,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_BACK_LEFT_BIT: + case BUFFER_BIT_BACK_LEFT: /* back buffer only */ grDepthMask(FXFALSE); grRenderBuffer(GR_BUFFER_BACKBUFFER); @@ -283,7 +283,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_FRONT_LEFT_BIT: + case BUFFER_BIT_FRONT_LEFT: /* front buffer only */ grDepthMask(FXFALSE); grRenderBuffer(GR_BUFFER_FRONTBUFFER); @@ -296,7 +296,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT: + case BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT: /* front and back */ grDepthMask(FXFALSE); grRenderBuffer(GR_BUFFER_BACKBUFFER); @@ -318,7 +318,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT | DD_DEPTH_BIT: + case BUFFER_BIT_FRONT_LEFT | BUFFER_BIT_BACK_LEFT | BUFFER_BIT_DEPTH: /* clear back and depth */ grDepthMask(FXTRUE); grRenderBuffer(GR_BUFFER_BACKBUFFER); @@ -342,7 +342,7 @@ static void fxDDClear( GLcontext *ctx, fxMesa->clearA, clearD); break; - case DD_DEPTH_BIT: + case BUFFER_BIT_DEPTH: /* just the depth buffer */ grDepthMask(FXTRUE); fxDisableColor(fxMesa); @@ -359,7 +359,7 @@ static void fxDDClear( GLcontext *ctx, break; default: /* clear no color buffers or depth buffer but might clear stencil */ - if ((stencil_size > 0) && (mask & DD_STENCIL_BIT)) { + if ((stencil_size > 0) && (mask & BUFFER_BIT_STENCIL)) { /* XXX need this RenderBuffer call to work around Glide bug */ grDepthMask(FXFALSE); grRenderBuffer(GR_BUFFER_BACKBUFFER); @@ -1950,8 +1950,8 @@ fx_check_IsInHardware(GLcontext * ctx) return FX_FALLBACK_STENCIL; } - if (ctx->Color._DrawDestMask[0] != DD_FRONT_LEFT_BIT && - ctx->Color._DrawDestMask[0] != DD_BACK_LEFT_BIT) { + if (ctx->DrawBuffer->_ColorDrawBufferMask[0] != BUFFER_BIT_FRONT_LEFT && + ctx->DrawBuffer->_ColorDrawBufferMask[0] != BUFFER_BIT_BACK_LEFT) { return FX_FALLBACK_DRAW_BUFFER; } diff --git a/src/mesa/drivers/glide/fxddspan.c b/src/mesa/drivers/glide/fxddspan.c index ff522522d1..79abbefc21 100644 --- a/src/mesa/drivers/glide/fxddspan.c +++ b/src/mesa/drivers/glide/fxddspan.c @@ -331,6 +331,7 @@ * since OpenGL says obscured pixels have undefined values. */ static void fxReadRGBASpan_ARGB1555 (const GLcontext * ctx, + struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4]) @@ -378,6 +379,7 @@ static void fxReadRGBASpan_ARGB1555 (const GLcontext * ctx, * since OpenGL says obscured pixels have undefined values. */ static void fxReadRGBASpan_RGB565 (const GLcontext * ctx, + struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4]) @@ -425,6 +427,7 @@ static void fxReadRGBASpan_RGB565 (const GLcontext * ctx, * since OpenGL says obscured pixels have undefined values. */ static void fxReadRGBASpan_ARGB8888 (const GLcontext * ctx, + struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLubyte rgba[][4]) @@ -445,7 +448,7 @@ static void fxReadRGBASpan_ARGB8888 (const GLcontext * ctx, /************************************************************************/ static void -fxReadDepthSpan_Z16(GLcontext * ctx, +fxReadDepthSpan_Z16(GLcontext * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLdepth depth[]) { fxMesaContext fxMesa = FX_CONTEXT(ctx); @@ -465,7 +468,7 @@ fxReadDepthSpan_Z16(GLcontext * ctx, static void -fxReadDepthSpan_Z24(GLcontext * ctx, +fxReadDepthSpan_Z24(GLcontext * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLdepth depth[]) { fxMesaContext fxMesa = FX_CONTEXT(ctx); @@ -488,7 +491,8 @@ fxReadDepthSpan_Z24(GLcontext * ctx, /************************************************************************/ static void -fxWriteStencilSpan (GLcontext *ctx, GLuint n, GLint x, GLint y, +fxWriteStencilSpan (GLcontext *ctx, struct gl_renderbuffer *rb, + GLuint n, GLint x, GLint y, const GLstencil stencil[], const GLubyte mask[]) { /* @@ -497,7 +501,7 @@ fxWriteStencilSpan (GLcontext *ctx, GLuint n, GLint x, GLint y, } static void -fxReadStencilSpan(GLcontext * ctx, +fxReadStencilSpan(GLcontext * ctx, struct gl_renderbuffer *rb, GLuint n, GLint x, GLint y, GLstencil stencil[]) { fxMesaContext fxMesa = FX_CONTEXT(ctx); @@ -516,7 +520,7 @@ fxReadStencilSpan(GLcontext * ctx, } static void -fxWriteStencilPixels (GLcontext *ctx, GLuint n, +fxWriteStencilPixels (GLcontext *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], const GLstencil stencil[], const GLubyte mask[]) @@ -527,7 +531,7 @@ fxWriteStencilPixels (GLcontext *ctx, GLuint n, } static void -fxReadStencilPixels (GLcontext *ctx, GLuint n, +fxReadStencilPixels (GLcontext *ctx, struct gl_renderbuffer *rb, GLuint n, const GLint x[], const GLint y[], GLstencil stencil[]) { @@ -553,11 +557,11 @@ fxDDSetBuffer(GLcontext * ctx, GLframebuffer * buffer, GLuint bufferBit) fprintf(stderr, "fxDDSetBuffer(%x)\n", (int)bufferBit); } - if (bufferBit == DD_FRONT_LEFT_BIT) { + if (bufferBit == BUFFER_BIT_FRONT_LEFT) { fxMesa->currentFB = GR_BUFFER_FRONTBUFFER; grRenderBuffer(fxMesa->currentFB); } - else if (bufferBit == DD_BACK_LEFT_BIT) { + else if (bufferBit == BUFFER_BIT_BACK_LEFT) { fxMesa->currentFB = GR_BUFFER_BACKBUFFER; grRenderBuffer(fxMesa->currentFB); } -- cgit v1.2.3