summaryrefslogtreecommitdiff
path: root/xc/lib/GL/mesa/src/drv/common/depthtmp.h
diff options
context:
space:
mode:
Diffstat (limited to 'xc/lib/GL/mesa/src/drv/common/depthtmp.h')
-rw-r--r--xc/lib/GL/mesa/src/drv/common/depthtmp.h115
1 files changed, 75 insertions, 40 deletions
diff --git a/xc/lib/GL/mesa/src/drv/common/depthtmp.h b/xc/lib/GL/mesa/src/drv/common/depthtmp.h
index 3aa307904..0c10eae19 100644
--- a/xc/lib/GL/mesa/src/drv/common/depthtmp.h
+++ b/xc/lib/GL/mesa/src/drv/common/depthtmp.h
@@ -1,12 +1,20 @@
+/* $XFree86: xc/lib/GL/mesa/src/drv/common/depthtmp.h,v 1.4 2000/12/04 22:43:20 dawes Exp $ */
+
#ifndef DBG
#define DBG 0
#endif
+#ifndef HAVE_HW_DEPTH_SPANS
+#define HAVE_HW_DEPTH_SPANS 0
+#endif
+#ifndef HAVE_HW_DEPTH_PIXELS
+#define HAVE_HW_DEPTH_PIXELS 0
+#endif
static void TAG(WriteDepthSpan)( GLcontext *ctx,
GLuint n, GLint x, GLint y,
- const GLdepth *depth,
+ const GLdepth *depth,
const GLubyte mask[] )
{
HW_LOCK()
@@ -15,39 +23,45 @@ static void TAG(WriteDepthSpan)( GLcontext *ctx,
GLint n1;
LOCAL_DEPTH_VARS;
- y = Y_FLIP(y);
+ y = Y_FLIP( y );
- HW_CLIPLOOP()
+#if HAVE_HW_DEPTH_SPANS
+ (void) x1; (void) n1;
+
+ if ( DBG ) fprintf( stderr, "WriteDepthSpan 0..%d (x1 %d)\n",
+ (int)n, (int)x );
+
+ WRITE_DEPTH_SPAN();
+#else
+ HW_CLIPLOOP()
{
GLint i = 0;
- CLIPSPAN(x,y,n,x1,n1,i);
+ CLIPSPAN( x, y, n, x1, n1, i );
- if (DBG) fprintf(stderr, "WriteDepthSpan %d..%d (x1 %d)\n",
- (int)i, (int)n1, (int)x1);
+ if ( DBG ) fprintf( stderr, "WriteDepthSpan %d..%d (x1 %d)\n",
+ (int)i, (int)n1, (int)x1 );
- if (mask)
- {
- for (;i<n1;i++,x1++)
- if (mask[i])
- WRITE_DEPTH( x1, y, depth[i] );
- }
- else
- {
- for (;i<n1;i++,x1++)
+ if ( mask ) {
+ for ( ; i < n1 ; i++, x1++ ) {
+ if ( mask[i] ) WRITE_DEPTH( x1, y, depth[i] );
+ }
+ } else {
+ for ( ; i < n1 ; i++, x1++ ) {
WRITE_DEPTH( x1, y, depth[i] );
+ }
}
}
HW_ENDCLIPLOOP();
+#endif
}
HW_UNLOCK();
}
-
static void TAG(WriteDepthPixels)( GLcontext *ctx,
- GLuint n,
- const GLint x[],
+ GLuint n,
+ const GLint x[],
const GLint y[],
- const GLdepth depth[],
+ const GLdepth depth[],
const GLubyte mask[] )
{
HW_LOCK()
@@ -55,55 +69,64 @@ static void TAG(WriteDepthPixels)( GLcontext *ctx,
GLint i;
LOCAL_DEPTH_VARS;
- if (DBG) fprintf(stderr, "WriteDepthPixels\n");
+ if ( DBG ) fprintf( stderr, "WriteDepthPixels\n" );
+
+#if HAVE_HW_DEPTH_PIXELS
+ (void) i;
+ WRITE_DEPTH_PIXELS();
+#else
HW_CLIPLOOP()
{
- for (i=0;i<n;i++)
- {
- if (mask[i]) {
- const int fy = Y_FLIP(y[i]);
- if (CLIPPIXEL(x[i],fy))
+ for ( i = 0 ; i < n ; i++ ) {
+ if ( mask[i] ) {
+ const int fy = Y_FLIP( y[i] );
+ if ( CLIPPIXEL( x[i], fy ) )
WRITE_DEPTH( x[i], fy, depth[i] );
}
}
}
HW_ENDCLIPLOOP();
+#endif
}
HW_UNLOCK();
}
-
-
/* Read depth spans and pixels
*/
static void TAG(ReadDepthSpan)( GLcontext *ctx,
GLuint n, GLint x, GLint y,
- GLdepth depth[])
+ GLdepth depth[] )
{
HW_LOCK()
{
- GLint x1,n1;
+ GLint x1, n1;
LOCAL_DEPTH_VARS;
- y = Y_FLIP(y);
+ y = Y_FLIP( y );
- if (DBG) fprintf(stderr, "ReadDepthSpan\n");
+ if ( DBG ) fprintf( stderr, "ReadDepthSpan\n" );
- HW_CLIPLOOP()
+#if HAVE_HW_DEPTH_SPANS
+ (void) x1; (void) n1;
+
+ READ_DEPTH_SPAN();
+#else
+ HW_CLIPLOOP()
{
GLint i = 0;
- CLIPSPAN(x,y,n,x1,n1,i);
- for (;i<n1;i++)
+ CLIPSPAN( x, y, n, x1, n1, i );
+ for ( ; i < n1 ; i++ )
READ_DEPTH( depth[i], (x1+i), y );
}
HW_ENDCLIPLOOP();
+#endif
}
HW_UNLOCK();
}
-static void TAG(ReadDepthPixels)( GLcontext *ctx, GLuint n,
+static void TAG(ReadDepthPixels)( GLcontext *ctx, GLuint n,
const GLint x[], const GLint y[],
GLdepth depth[] )
{
@@ -112,22 +135,34 @@ static void TAG(ReadDepthPixels)( GLcontext *ctx, GLuint n,
GLint i;
LOCAL_DEPTH_VARS;
- if (DBG) fprintf(stderr, "ReadDepthPixels\n");
-
+ if ( DBG ) fprintf( stderr, "ReadDepthPixels\n" );
+
+#if HAVE_HW_DEPTH_PIXELS
+ (void) i;
+
+ READ_DEPTH_PIXELS();
+#else
HW_CLIPLOOP()
{
- for (i=0;i<n;i++) {
+ for ( i = 0 ; i < n ;i++ ) {
int fy = Y_FLIP( y[i] );
- if (CLIPPIXEL( x[i], fy ))
+ if ( CLIPPIXEL( x[i], fy ) )
READ_DEPTH( depth[i], x[i], fy );
}
}
HW_ENDCLIPLOOP();
+#endif
}
HW_UNLOCK();
}
-
+#if HAVE_HW_DEPTH_SPANS
+#undef WRITE_DEPTH_SPAN
+#undef WRITE_DEPTH_PIXELS
+#undef READ_DEPTH_SPAN
+#undef READ_DEPTH_PIXELS
+#else
#undef WRITE_DEPTH
#undef READ_DEPTH
+#endif
#undef TAG