do fog interpolation if INTERP_FOG is defined, not when INTERP_Z is defined
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 8 Mar 2001 17:33:33 +0000 (17:33 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 8 Mar 2001 17:33:33 +0000 (17:33 +0000)
src/mesa/drivers/osmesa/osmesa.c
src/mesa/drivers/x11/xm_tri.c
src/mesa/swrast/s_lines.c
src/mesa/swrast/s_linetemp.h
src/mesa/swrast/s_triangle.c
src/mesa/swrast/s_tritemp.h

index 5b3b9427807003efae1e5d2ce6c42385508f8dc6..0473717a0dc135ad17e4d14e83a5591b09d6e9dc 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: osmesa.c,v 1.49 2001/03/08 15:23:46 brianp Exp $ */
+/* $Id: osmesa.c,v 1.50 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -1596,7 +1596,6 @@ static void smooth_rgba_z_triangle( GLcontext *ctx,
 {                                                              \
    GLint i, len = RIGHT-LEFT;                                  \
    GLchan *img = PIXELADDR4(LEFT, Y);                          \
-   (void) fffog;                                               \
    for (i = 0; i < len; i++, img += 4) {                       \
       GLdepth z = FixedToDepth(ffz);                           \
       if (z < zRow[i]) {                                       \
@@ -1638,7 +1637,6 @@ static void flat_rgba_z_triangle( GLcontext *ctx,
 {                                                      \
    GLint i, len = RIGHT-LEFT;                          \
    GLuint *img = (GLuint *) PIXELADDR4(LEFT, Y);       \
-   (void) fffog;                                       \
    for (i=0;i<len;i++) {                               \
       GLdepth z = FixedToDepth(ffz);                   \
       if (z < zRow[i]) {                               \
index 9f152265f753c60163e585e6d305b6d1be4e4734..a6a53461586eef71004545b8e253ac8d77a55476 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: xm_tri.c,v 1.18 2001/02/06 04:06:36 keithw Exp $ */
+/* $Id: xm_tri.c,v 1.19 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -70,7 +70,6 @@ static void smooth_TRUECOLOR_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer, Y);                 \
    GLint len = RIGHT-LEFT;                                             \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -106,7 +105,6 @@ static void smooth_8A8B8G8R_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -140,7 +138,6 @@ static void smooth_8R8G8B_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -174,7 +171,6 @@ static void smooth_8R8G8B24_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -208,7 +204,6 @@ static void smooth_TRUEDITHER_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -244,7 +239,6 @@ static void smooth_5R6G5B_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       DEPTH_TYPE z = FixedToDepth(ffz);                                        \
       if (z < zRow[i]) {                                               \
@@ -279,7 +273,6 @@ static void smooth_DITHER_5R6G5B_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
    GLint yy = FLIP(xmesa->xm_buffer, Y);                               \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -314,7 +307,6 @@ static void smooth_DITHER8_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
    XDITHER_SETUP(yy);                                                  \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -350,7 +342,6 @@ static void smooth_DITHER_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
    XDITHER_SETUP(yy);                                                  \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -386,7 +377,6 @@ static void smooth_LOOKUP8_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
    LOOKUP_SETUP;                                                       \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -421,7 +411,6 @@ static void smooth_HPCR_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -456,7 +445,6 @@ static void flat_TRUECOLOR_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -490,7 +478,6 @@ static void flat_8A8B8G8R_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, len = RIGHT-LEFT;                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                                               \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -524,7 +511,6 @@ static void flat_8R8G8B_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                   \
 {                                                      \
    GLint i, len = RIGHT-LEFT;                          \
-   (void) fffog;                                       \
    for (i=0;i<len;i++) {                               \
       GLdepth z = FixedToDepth(ffz);                   \
       if (z < zRow[i]) {                               \
@@ -556,7 +542,6 @@ static void flat_8R8G8B24_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                   \
 {                                                      \
    GLint i, len = RIGHT-LEFT;                          \
-   (void) fffog;                                       \
    for (i=0;i<len;i++) {                               \
       GLdepth z = FixedToDepth(ffz);                   \
       if (z < zRow[i]) {                               \
@@ -588,7 +573,6 @@ static void flat_TRUEDITHER_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -625,7 +609,6 @@ static void flat_5R6G5B_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                   \
 {                                                      \
    GLint i, len = RIGHT-LEFT;                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                               \
       DEPTH_TYPE z = FixedToDepth(ffz);                        \
       if (z < zRow[i]) {                               \
@@ -658,7 +641,6 @@ static void flat_DITHER_5R6G5B_z_triangle( GLcontext *ctx,
 {                                                              \
    GLint i, len = RIGHT-LEFT;                                  \
    GLint yy = FLIP(xmesa->xm_buffer, Y);                       \
-   (void) fffog;                                               \
    for (i=0;i<len;i++) {                                       \
       DEPTH_TYPE z = FixedToDepth(ffz);                                \
       if (z < zRow[i]) {                                       \
@@ -694,7 +676,6 @@ static void flat_DITHER8_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
    FLAT_DITHER_ROW_SETUP(FLIP(xmesa->xm_buffer, yy));                  \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -727,7 +708,6 @@ static void flat_DITHER_z_triangle( GLcontext *ctx,
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
    FLAT_DITHER_ROW_SETUP(yy);                                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -763,7 +743,6 @@ static void flat_HPCR_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                                   \
 {                                                                      \
    GLint i, xx = LEFT, yy = FLIP(xmesa->xm_buffer,Y), len = RIGHT-LEFT;        \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++,xx++) {                                          \
       GLdepth z = FixedToDepth(ffz);                                   \
       if (z < zRow[i]) {                                               \
@@ -800,7 +779,6 @@ static void flat_LOOKUP8_z_triangle( GLcontext *ctx,
 #define INNER_LOOP( LEFT, RIGHT, Y )                   \
 {                                                      \
    GLint i, len = RIGHT-LEFT;                          \
-   (void) fffog;                                                       \
    for (i=0;i<len;i++) {                               \
       GLdepth z = FixedToDepth(ffz);                   \
       if (z < zRow[i]) {                               \
index 114ddeb320be0a7abde2ccc6d165cf0329b36542..9e856d41534522990d5d6c8870a9fd642e7afba6 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_lines.c,v 1.12 2001/03/03 20:33:30 brianp Exp $ */
+/* $Id: s_lines.c,v 1.13 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -52,7 +52,6 @@
  */
 
 
-
 /* Flat, color index line */
 static void flat_ci_line( GLcontext *ctx,
                           const SWvertex *vert0,
@@ -82,6 +81,7 @@ static void flat_ci_z_line( GLcontext *ctx,
 
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define PLOT(X,Y)  PB_WRITE_PIXEL(PB, X, Y, Z, fog0);
 
 #include "s_linetemp.h"
@@ -121,6 +121,7 @@ static void flat_rgba_z_line( GLcontext *ctx,
 
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define PLOT(X,Y)   PB_WRITE_PIXEL(PB, X, Y, Z, fog0);
 
 #include "s_linetemp.h"
@@ -176,6 +177,7 @@ static void smooth_ci_z_line( GLcontext *ctx,
 
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_INDEX 1
 
 #define PLOT(X,Y)              \
@@ -245,6 +247,7 @@ static void smooth_rgba_z_line( GLcontext *ctx,
 
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 
@@ -294,6 +297,7 @@ static void general_smooth_ci_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_INDEX 1
 #define WIDE 1
 #define STIPPLE 1
@@ -313,6 +317,7 @@ static void general_smooth_ci_line( GLcontext *ctx,
          /* special case: unstippled and width=2 */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_INDEX 1
 #define XMAJOR_PLOT(X,Y)                               \
        pbx[count] = X;  pbx[count+1] = X;              \
@@ -336,6 +341,7 @@ static void general_smooth_ci_line( GLcontext *ctx,
          /* unstippled, any width */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_INDEX 1
 #define WIDE 1
 #define PLOT(X,Y)              \
@@ -373,6 +379,7 @@ static void general_flat_ci_line( GLcontext *ctx,
       /* stippled, any width */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define WIDE 1
 #define STIPPLE 1
 #define PLOT(X,Y)              \
@@ -390,6 +397,7 @@ static void general_flat_ci_line( GLcontext *ctx,
          /* special case: unstippled and width=2 */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define XMAJOR_PLOT(X,Y)                               \
        pbx[count] = X;  pbx[count+1] = X;              \
        pby[count] = Y;  pby[count+1] = Y+1;            \
@@ -410,6 +418,7 @@ static void general_flat_ci_line( GLcontext *ctx,
          /* unstippled, any width */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define WIDE 1
 #define PLOT(X,Y)              \
        pbx[count] = X;         \
@@ -446,6 +455,7 @@ static void general_smooth_rgba_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 #define WIDE 1
@@ -469,6 +479,7 @@ static void general_smooth_rgba_line( GLcontext *ctx,
          /* special case: unstippled and width=2 */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 #define XMAJOR_PLOT(X,Y)                               \
@@ -507,6 +518,7 @@ static void general_smooth_rgba_line( GLcontext *ctx,
          /* unstippled, any width */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 #define WIDE 1
@@ -542,6 +554,7 @@ static void general_flat_rgba_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define WIDE 1
 #define STIPPLE 1
 #define PLOT(X,Y)  PB_WRITE_PIXEL(PB, X, Y, Z, fog0);
@@ -553,6 +566,7 @@ static void general_flat_rgba_line( GLcontext *ctx,
          /* special case: unstippled and width=2 */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define XMAJOR_PLOT(X,Y) PB_WRITE_PIXEL(PB, X, Y, Z, fog0); \
                          PB_WRITE_PIXEL(PB, X, Y+1, Z, fog0);
 #define YMAJOR_PLOT(X,Y)  PB_WRITE_PIXEL(PB, X, Y, Z, fog0); \
@@ -563,6 +577,7 @@ static void general_flat_rgba_line( GLcontext *ctx,
          /* unstippled, any width */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define WIDE 1
 #define PLOT(X,Y) PB_WRITE_PIXEL(PB, X, Y, Z, fog0);
 #include "s_linetemp.h"
@@ -595,6 +610,7 @@ static void flat_textured_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_TEX 1
 #define WIDE 1
 #define STIPPLE 1
@@ -616,6 +632,7 @@ static void flat_textured_line( GLcontext *ctx,
       /* unstippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_TEX 1
 #define WIDE 1
 #define PLOT(X,Y)                      \
@@ -661,6 +678,7 @@ static void smooth_textured_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 #define INTERP_TEX 1
@@ -688,6 +706,7 @@ static void smooth_textured_line( GLcontext *ctx,
       /* unstippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
 #define INTERP_TEX 1
@@ -738,6 +757,7 @@ static void smooth_multitextured_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_SPEC 1
 #define INTERP_ALPHA 1
@@ -775,6 +795,7 @@ static void smooth_multitextured_line( GLcontext *ctx,
       /* unstippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_RGB 1
 #define INTERP_SPEC 1
 #define INTERP_ALPHA 1
@@ -839,6 +860,7 @@ static void flat_multitextured_line( GLcontext *ctx,
       /* stippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_ALPHA 1
 #define INTERP_MULTITEX 1
 #define WIDE 1
@@ -874,6 +896,7 @@ static void flat_multitextured_line( GLcontext *ctx,
       /* unstippled */
 #define INTERP_XY 1
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_ALPHA 1
 #define INTERP_MULTITEX 1
 #define WIDE 1
index e451f44855759470d6b825172e1b772cbd2a2dbb..dd7d33f8cdee18cc0017f728da0355f50f6d6d64 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_linetemp.h,v 1.5 2001/02/07 18:36:52 brianp Exp $ */
+/* $Id: s_linetemp.h,v 1.6 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -32,7 +32,8 @@
  *
  * The following macros may be defined to indicate what auxillary information
  * must be interplated along the line:
- *    INTERP_Z        - if defined, interpolate Z and FOG values
+ *    INTERP_Z        - if defined, interpolate Z values
+ *    INTERP_FOG      - if defined, interpolate FOG values
  *    INTERP_RGB      - if defined, interpolate RGB values
  *    INTERP_SPEC     - if defined, interpolate specular RGB values
  *    INTERP_ALPHA    - if defined, interpolate Alpha values
@@ -92,6 +93,8 @@
    GLint zPtrXstep, zPtrYstep;
    DEPTH_TYPE *zPtr;
 #  endif
+#endif
+#ifdef INTERP_FOG
    GLfixed fog0 = FloatToFixed(vert0->fog);
    GLfixed dfog = FloatToFixed(vert1->fog) - fog0;   
 #endif
       GLint errorDec = error-dx;
 #ifdef INTERP_Z
       dz = (z1-z0) / dx;
+#endif
+#ifdef INTERP_FOG
       dfog /= dx;
 #endif
 #ifdef INTERP_RGB
          zPtr = (DEPTH_TYPE *) ((GLubyte*) zPtr + zPtrXstep);
 #  endif
          z0 += dz;
+#endif
+#ifdef INTERP_FOG
         fog0 += dfog;
 #endif
 #ifdef INTERP_RGB
       GLint errorDec = error-dy;
 #ifdef INTERP_Z
       dz = (z1-z0) / dy;
+#endif
+#ifdef INTERP_FOG
       dfog /= dy;
 #endif
 #ifdef INTERP_RGB
          zPtr = (DEPTH_TYPE *) ((GLubyte*) zPtr + zPtrYstep);
 #  endif
          z0 += dz;
+#endif
+#ifdef INTERP_FOG
         fog0 += dfog;
 #endif
 #ifdef INTERP_RGB
 
 #undef INTERP_XY
 #undef INTERP_Z
+#undef INTERP_FOG
 #undef INTERP_RGB
 #undef INTERP_SPEC
 #undef INTERP_ALPHA
index 58609b0f40cbf7360479c06c31ff5e42c69068e5..fbacc7ddd4aff4c599ad857174b54f45972283d4 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_triangle.c,v 1.16 2001/03/08 15:23:46 brianp Exp $ */
+/* $Id: s_triangle.c,v 1.17 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -66,6 +66,7 @@ GLboolean _mesa_cull_triangle( GLcontext *ctx,
 }
 
 
+
 /*
  * Render a flat-shaded color index triangle.
  */
@@ -75,6 +76,7 @@ static void flat_ci_triangle( GLcontext *ctx,
                              const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 
 #define INNER_LOOP( LEFT, RIGHT, Y )                           \
        {                                                       \
@@ -108,6 +110,7 @@ static void smooth_ci_triangle( GLcontext *ctx,
                                const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define INTERP_INDEX 1
 
 #define INNER_LOOP( LEFT, RIGHT, Y )                           \
@@ -145,6 +148,7 @@ static void flat_rgba_triangle( GLcontext *ctx,
                                const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 
 #define INNER_LOOP( LEFT, RIGHT, Y )                           \
@@ -184,6 +188,7 @@ static void smooth_rgba_triangle( GLcontext *ctx,
 {
 
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -293,6 +298,7 @@ static void simple_z_textured_triangle( GLcontext *ctx,
                                        const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_INT_TEX 1
 #define S_SCALE twidth
@@ -360,6 +366,7 @@ static void affine_textured_triangle( GLcontext *ctx,
                                      const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -689,6 +696,7 @@ static void near_persp_textured_triangle(GLcontext *ctx,
 #define BIAS 4096.0F
 
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -1420,6 +1428,7 @@ static void lin_persp_textured_triangle( GLcontext *ctx,
                                         const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -1595,6 +1604,7 @@ static void general_textured_triangle( GLcontext *ctx,
                                       const SWvertex *v2 )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -1689,6 +1699,7 @@ static void general_textured_spec_triangle1( GLcontext *ctx,
                                              GLchan spec[MAX_WIDTH][4] )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_SPEC 1
@@ -1793,6 +1804,7 @@ static void lambda_textured_triangle1( GLcontext *ctx,
                                        GLfloat u[MAX_WIDTH] )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -1896,6 +1908,7 @@ static void lambda_textured_spec_triangle1( GLcontext *ctx,
                                             GLfloat u[MAX_WIDTH] )
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_SPEC 1
@@ -2012,6 +2025,7 @@ lambda_multitextured_triangle1( GLcontext *ctx,
                                GLfloat u[MAX_TEXTURE_UNITS][MAX_WIDTH])
 {
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define INTERP_ALPHA 1
@@ -2185,6 +2199,7 @@ static void occlusion_zless_triangle( GLcontext *ctx,
 
 #define DO_OCCLUSION_TEST
 #define INTERP_Z 1
+#define INTERP_FOG 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INNER_LOOP( LEFT, RIGHT, Y )           \
    {                                           \
index 254f0fd2d20702b0657ede4fe0ded98040e53aca..a854b995b899c81a1134de167a37a719c7efbd37 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: s_tritemp.h,v 1.12 2001/03/07 05:06:12 brianp Exp $ */
+/* $Id: s_tritemp.h,v 1.13 2001/03/08 17:33:33 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * The following macros may be defined to indicate what auxillary information
  * must be interplated across the triangle:
  *    INTERP_Z        - if defined, interpolate Z values
+ *    INTERP_FOG      - if defined, interpolate fog values
  *    INTERP_RGB      - if defined, interpolate RGB values
- *    INTERP_SPEC     - if defined, interpolate specular RGB values
  *    INTERP_ALPHA    - if defined, interpolate Alpha values
+ *    INTERP_SPEC     - if defined, interpolate specular RGB values
  *    INTERP_INDEX    - if defined, interpolate color index values
  *    INTERP_INT_TEX  - if defined, interpolate integer ST texcoords
  *                         (fast, simple 2-D texture mapping)
       GLint ltor;              /* true if scanning left-to-right */
 #ifdef INTERP_Z
       GLfloat dzdx, dzdy;      GLfixed fdzdx;
+#endif
+#ifdef INTERP_FOG
       GLfloat dfogdx, dfogdy;      GLfixed fdfogdx;
 #endif
 #ifdef INTERP_RGB
          else
             fdzdx = (GLint) dzdx;
       }
+#endif
+#ifdef INTERP_FOG
       {
          GLfloat eMaj_dfog, eBot_dfog;
          eMaj_dfog = (vMax->fog - vMin->fog) * 256;
          int dZRowOuter, dZRowInner;  /* offset in bytes */
 #  endif
          GLfixed fz, fdzOuter, fdzInner;
+#endif
+#ifdef INTERP_FOG
          GLfixed ffog, fdfogOuter, fdfogInner;
 #endif
 #ifdef INTERP_RGB
                   dZRowOuter = (ctx->DrawBuffer->Width + idxOuter) * sizeof(DEPTH_TYPE);
 #  endif
                }
-              {
-                 ffog = FloatToFixed(vLower->fog * 256 + dfogdx * adjx + dfogdy * adjy) + FIXED_HALF;
-                 fdfogOuter = SignedFloatToFixed(dfogdy + dxOuter * dfogdx);
-              }
+#endif
+#ifdef INTERP_FOG
+               ffog = FloatToFixed(vLower->fog * 256 + dfogdx * adjx
+                                   + dfogdy * adjy) + FIXED_HALF;
+               fdfogOuter = SignedFloatToFixed(dfogdy + dxOuter * dfogdx);
 #endif
 #ifdef INTERP_RGB
                fr = (GLfixed)(IntToFixed(vLower->color[0])
             dZRowInner = dZRowOuter + sizeof(DEPTH_TYPE);
 #  endif
             fdzInner = fdzOuter + fdzdx;
+#endif
+#ifdef INTERP_FOG
             fdfogInner = fdfogOuter + fdfogdx;
 #endif
 #ifdef INTERP_RGB
                GLint right = FixedToInt(fxRightEdge);
 #ifdef INTERP_Z
                GLfixed ffz = fz;
+#endif
+#ifdef INTERP_FOG
                GLfixed fffog = ffog;
 #endif
 #ifdef INTERP_RGB
                   zRow = (DEPTH_TYPE *) ((GLubyte*)zRow + dZRowOuter);
 #  endif
                   fz += fdzOuter;
+#endif
+#ifdef INTERP_FOG
                   ffog += fdfogOuter; 
 #endif
 #ifdef INTERP_RGB
                   zRow = (DEPTH_TYPE *) ((GLubyte*)zRow + dZRowInner);
 #  endif
                   fz += fdzInner;
+#endif
+#ifdef INTERP_FOG
                   ffog += fdfogInner;
 #endif
 #ifdef INTERP_RGB
 #undef PIXEL_ADDRESS
 
 #undef INTERP_Z
+#undef INTERP_FOG
 #undef INTERP_RGB
 #undef INTERP_SPEC
 #undef INTERP_ALPHA