runtime selectable depth buffer depth
[mesa.git] / src / mesa / drivers / glide / fxglidew.h
index 49c28f222cecc036e26bda80ffe15e1286a9aa3c..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"),
@@ -77,6 +77,7 @@
  * Genral warper functions for Glide2/Glide3:
  */ 
 extern FxI32 FX_grGetInteger(FxU32 pname);
+extern FxI32 FX_grGetInteger_NoLock(FxU32 pname);
 
 /*
  * Glide2 emulation on Glide3:
@@ -223,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
@@ -473,7 +474,6 @@ typedef struct
 #else
        #define FX_setupGrVertexLayout()                do {} while (0)
 #endif
-
 /*
  * grSstControl stuff
  */
@@ -533,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();                \
@@ -759,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 {                         \
@@ -782,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 {                         \