runtime selectable depth buffer depth
[mesa.git] / src / mesa / drivers / glide / fxglidew.h
index a03ff477a9b552532d64df8c211dd6468ae3a95c..614949f71f79b363c56fda6ef0a04e83771b7f3a 100644 (file)
@@ -2,9 +2,9 @@
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.1
+ * Version:  3.3
  *
- * Copyright (C) 1999  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -76,8 +76,8 @@
 /*
  * Genral warper functions for Glide2/Glide3:
  */ 
-extern FxI32 grGetInteger(FxU32 pname);
 extern FxI32 FX_grGetInteger(FxU32 pname);
+extern FxI32 FX_grGetInteger_NoLock(FxU32 pname);
 
 /*
  * Glide2 emulation on Glide3:
@@ -224,23 +224,23 @@ typedef struct
 
 typedef struct
 {
-  float x, y;         /* X and Y in screen space */
-  float ooz;          /* 65535/Z (used for Z-buffering) */
-  float oow;          /* 1/W (used for W-buffering, texturing) */
-  float r, g, b, a;   /* R, G, B, A [0..255.0] */
-  float z;            /* Z is ignored */
+  float x, y, z;                /* X, Y, and Z of scrn space -- Z is ignored */
+  float r, g, b;                /* R, G, B, ([0..255.0]) */
+  float ooz;                    /* 65535/Z (used for Z-buffering) */
+  float a;                      /* Alpha [0..255.0] */
+  float oow;                    /* 1/W (used for W-buffering, texturing) */
   GrTmuVertex  tmuvtx[GLIDE_NUM_TMU];
 } GrVertex;
 
 #define GR_VERTEX_X_OFFSET              0
 #define GR_VERTEX_Y_OFFSET              1
-#define GR_VERTEX_OOZ_OFFSET            2
-#define GR_VERTEX_OOW_OFFSET            3
-#define GR_VERTEX_R_OFFSET              4
-#define GR_VERTEX_G_OFFSET              5
-#define GR_VERTEX_B_OFFSET              6
+#define GR_VERTEX_Z_OFFSET              2
+#define GR_VERTEX_R_OFFSET              3
+#define GR_VERTEX_G_OFFSET              4
+#define GR_VERTEX_B_OFFSET              5
+#define GR_VERTEX_OOZ_OFFSET            6
 #define GR_VERTEX_A_OFFSET              7
-#define GR_VERTEX_Z_OFFSET              8
+#define GR_VERTEX_OOW_OFFSET            8
 #define GR_VERTEX_SOW_TMU0_OFFSET       9
 #define GR_VERTEX_TOW_TMU0_OFFSET       10
 #define GR_VERTEX_OOW_TMU0_OFFSET       11
@@ -334,15 +334,7 @@ typedef struct
  */
 #define FX_grDrawTriangle(a,b,c)       \
   do {                                 \
-    /* int big=0; */                           \
     BEGIN_CLIP_LOOP();                 \
-    /* if (((GrVertex*)a)->x>2000 || ((GrVertex*)a)->x<-2000 || \
-        ((GrVertex*)a)->y>2000 || ((GrVertex*)a)->y<-2000 || \
-        ((GrVertex*)a)->z>65000 || ((GrVertex*)a)->z<-65000) { \
-         fprintf(stderr, "Extreme triangle (%f,%f,%f)\n", \
-         ((GrVertex*)a)->x, ((GrVertex*)a)->y, ((GrVertex*)a)->z); \
-        big=1; \
-       } else */ \
     grDrawTriangle(a,b,c);             \
     END_CLIP_LOOP();                   \
   } while (0)
@@ -485,16 +477,8 @@ typedef struct
 /*
  * grSstControl stuff
  */
-#if defined(FX_GLIDE3)
-       extern void FX_grSstControl(int par);
-#else
-       #define FX_grSstControl(p)      \
-       do {                            \
-         BEGIN_BOARD_LOCK();           \
-         grSstControl(p);              \
-         END_BOARD_LOCK();             \
-       } while (0)
-#endif
+extern FxBool FX_grSstControl(FxU32 code);
+
 /*
  * grGammaCorrectionValue
  */
@@ -549,6 +533,17 @@ extern FX_GrContext_t FX_grSstWinOpen( FxU32                hWnd,
     END_CLIP_LOOP();           \
   } while (0)
 
+#if defined(FX_GLIDE3)
+extern void FX_grDrawPolygonVertexList(int n, GrVertex *v);
+#else
+#define FX_grDrawPolygonVertexList(n, v)       \
+  do {                                         \
+    BEGIN_CLIP_LOOP();                         \
+    grDrawPolygonVertexList(n, v);             \
+    END_CLIP_LOOP();                           \
+  } while (0)
+#endif
+
 #define FX_grDitherMode(m)     \
   do {                         \
     BEGIN_BOARD_LOCK();                \
@@ -775,6 +770,7 @@ extern FxU32 FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo *info);
     grGlideGetState(s);                \
     END_BOARD_LOCK();          \
   } while (0)
+#define FX_grGlideGetState_NoLock(s) grGlideGetState(s);
 
 #define FX_grDRIBufferSwap(i)  \
   do {                         \
@@ -798,6 +794,7 @@ extern FxU32 FX_grTexTextureMemRequired(FxU32 evenOdd, GrTexInfo *info);
     grGlideSetState(s);                \
     END_BOARD_LOCK();          \
   } while (0)
+#define FX_grGlideSetState_NoLock(s) grGlideSetState(s);
 
 #define FX_grDepthBufferMode(m)        \
   do {                         \