i965: Add support for non-color render target write data to new FS backend.
[mesa.git] / src / mesa / drivers / dri / mga / mgapixel.c
index 4333b8c372de4533a756d5dd99ef9f2632a8476d..9cbdbe02c942941f2c35a417ee398c354714096a 100644 (file)
@@ -34,7 +34,6 @@
  * \author Keith Whitwell <keith@tungstengraphics.com>
  * \author Gareth Hughes <gareth@valinux.com>
  */
-/* $XFree86: xc/lib/GL/mesa/src/drv/mga/mgapixel.c,v 1.9 2002/11/05 17:46:08 tsi Exp $ */
 
 #include "main/mtypes.h"
 #include "main/macros.h"
@@ -56,7 +55,6 @@
      (((unsigned long)p) - (unsigned long)mmesa->mgaScreen->buffers.map)
 
 
-#if defined(MESA_packed_depth_stencil)
 static GLboolean
 check_depth_stencil_24_8( const GLcontext *ctx, GLenum type,
                          const struct gl_pixelstore_attrib *packing,
@@ -65,7 +63,7 @@ check_depth_stencil_24_8( const GLcontext *ctx, GLenum type,
 {
    mgaContextPtr mmesa = MGA_CONTEXT(ctx);
 
-   return ( type == GL_UNSIGNED_INT_24_8_MESA &&
+   return ( type == GL_UNSIGNED_INT_24_8 &&
            ctx->Visual->DepthBits == 24 &&
            ctx->Visual->StencilBits == 8 &&
            mmesa->mgaScreen->cpp == 4 &&
@@ -79,7 +77,6 @@ check_depth_stencil_24_8( const GLcontext *ctx, GLenum type,
            pitch % 32 == 0 &&
            pitch < 4096 );
 }
-#endif
 
 
 static GLboolean
@@ -134,11 +131,11 @@ check_color_per_fragment_ops( const GLcontext *ctx )
                    ctx->Depth.Test ||
                    ctx->Fog.Enabled ||
                    ctx->Scissor.Enabled ||
-                   ctx->Stencil.Enabled ||
-                   !ctx->Color.ColorMask[0] ||
-                   !ctx->Color.ColorMask[1] ||
-                   !ctx->Color.ColorMask[2] ||
-                   !ctx->Color.ColorMask[3] ||
+                   ctx->Stencil._Enabled ||
+                   !ctx->Color.ColorMask[0][0] ||
+                   !ctx->Color.ColorMask[0][1] ||
+                   !ctx->Color.ColorMask[0][2] ||
+                   !ctx->Color.ColorMask[0][3] ||
                    ctx->Color.ColorLogicOpEnabled ||
                    ctx->Texture._EnabledUnits
            ) &&
@@ -151,10 +148,10 @@ static GLboolean
 check_depth_per_fragment_ops( const GLcontext *ctx )
 {
    return ( ctx->Current.RasterPosValid &&
-           ctx->Color.ColorMask[RCOMP] == 0 &&
-           ctx->Color.ColorMask[BCOMP] == 0 &&
-           ctx->Color.ColorMask[GCOMP] == 0 &&
-           ctx->Color.ColorMask[ACOMP] == 0 &&
+           ctx->Color.ColorMask[0][RCOMP] == 0 &&
+           ctx->Color.ColorMask[0][BCOMP] == 0 &&
+           ctx->Color.ColorMask[0][GCOMP] == 0 &&
+           ctx->Color.ColorMask[0][ACOMP] == 0 &&
            ctx->Pixel.ZoomX == 1.0F &&
            ( ctx->Pixel.ZoomY == 1.0F || ctx->Pixel.ZoomY == -1.0F ) );
 }
@@ -253,13 +250,11 @@ mgaTryReadPixels( GLcontext *ctx,
       return GL_FALSE;
 
    switch (format) {
-#if defined(MESA_packed_depth_stencil)
-   case GL_DEPTH_STENCIL_MESA:
+   case GL_DEPTH_STENCIL:
       ok = check_depth_stencil_24_8(ctx, type, pack, pixels, size, pitch);
       planemask = ~0;
       source = mmesa->mgaScreen->depthOffset;
       break;
-#endif
 
    case GL_DEPTH_COMPONENT:
       ok = check_depth(ctx, type, pack, pixels, size, pitch);
@@ -300,7 +295,7 @@ mgaTryReadPixels( GLcontext *ctx,
 
 #if 0
    {
-      __DRIdrawablePrivate *dPriv = mmesa->driDrawable;
+      __DRIdrawable *dPriv = mmesa->driDrawable;
       int nbox, retcode, i;
 
       UPDATE_LOCK( mmesa, DRM_LOCK_FLUSH | DRM_LOCK_QUIESCENT );
@@ -400,7 +395,7 @@ static void do_draw_pix( GLcontext *ctx,
 #if 0
    mgaContextPtr mmesa = MGA_CONTEXT(ctx);
    drmMGABlit blit;
-   __DRIdrawablePrivate *dPriv = mmesa->driDrawable;
+   __DRIdrawable *dPriv = mmesa->driDrawable;
    drm_clip_rect_t pbox = dPriv->pClipRects;
    int nbox = dPriv->numClipRects;
    int retcode, i;
@@ -495,8 +490,7 @@ mgaTryDrawPixels( GLcontext *ctx,
 
 
    switch (format) {
-#if defined(MESA_packed_depth_stencil)
-   case GL_DEPTH_STENCIL_MESA:
+   case GL_DEPTH_STENCIL:
       dest = mmesa->mgaScreen->depthOffset;
       planemask = ~0;
       if (!check_depth_stencil_24_8(ctx, type, unpack, pixels, size, pitch) ||
@@ -504,7 +498,6 @@ mgaTryDrawPixels( GLcontext *ctx,
          !check_stencil_per_fragment_ops(ctx))
         return GL_FALSE;
       break;
-#endif
 
    case GL_DEPTH_COMPONENT:
       dest = mmesa->mgaScreen->depthOffset;
@@ -526,10 +519,10 @@ mgaTryDrawPixels( GLcontext *ctx,
              mmesa->mgaScreen->backOffset);
 
       planemask = mgaPackColor(cpp,
-                              ctx->Color.ColorMask[RCOMP],
-                              ctx->Color.ColorMask[GCOMP],
-                              ctx->Color.ColorMask[BCOMP],
-                              ctx->Color.ColorMask[ACOMP]);
+                              ctx->Color.ColorMask[0][RCOMP],
+                              ctx->Color.ColorMask[0][GCOMP],
+                              ctx->Color.ColorMask[0][BCOMP],
+                              ctx->Color.ColorMask[0][ACOMP]);
 
       if (cpp == 2)
         planemask |= planemask << 16;
@@ -601,7 +594,7 @@ mgaTryDrawPixels( GLcontext *ctx,
            }
         }
 #else
-        MEMCPY( address, pixels, rows*bufferpitch );
+        memcpy( address, pixels, rows*bufferpitch );
 #endif
 
         do_draw_pix( ctx, x, y, width, rows,