accomodate new frambuffer changes
authorDaniel Borca <dborca@users.sourceforge.net>
Mon, 9 May 2005 22:14:58 +0000 (22:14 +0000)
committerDaniel Borca <dborca@users.sourceforge.net>
Mon, 9 May 2005 22:14:58 +0000 (22:14 +0000)
src/mesa/drivers/glide/fxdd.c
src/mesa/drivers/glide/fxddspan.c

index 50022ee5485223d6d99246d1ae619ba4a89542ea..d76a0ed6c62593cf7aecc31802f3fcdd0b73c39b 100644 (file)
@@ -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;
    }
 
index ff522522d137c2f68c12b5e8b92d5451336b69c6..79abbefc21f7fc5a0b1bc932af60cf4855e93ec3 100644 (file)
  * 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);
    }