]> Dogcows Code - chaz/rasterize/blobdiff - config.h
add texture mapping with perspective correction
[chaz/rasterize] / config.h
index 593043940e31b6d99d399aa27b27e54fc7510336..8cc0ffdfc82098f718ba38ccfbc73e0aeeef5212 100644 (file)
--- a/config.h
+++ b/config.h
 #define IF_BACKFACE_CULLING(X)
 #endif
 
+/*
+ * BLENDING
+ * If enabled, the blending function Crgb = (1 - Sa)Drgb + (Sa)Srgb is
+ * applied when calculating final colors on the raster.
+ */
+#if BLENDING
+#define IF_BLENDING(X) X
+#else
+#define IF_BLENDING(X)
+#endif
+
 /*
  * CLIPPING
  * If enabled, triangles will be not be drawn if they are entirely outside of
 #define IF_SMOOTH_COLOR(X)
 #endif
 
+/*
+ * TEXTURING
+ * If enabled, a texture will be used to color models that have texture
+ * coordinates.  The color from the texture will actually be multiplied
+ * (i.e. mixed) with the regular color associated with the geometry.  Also,
+ * Phong interpolation lighting (LIGHTING >= 3) is required to get actual
+ * texturing; otherwise, only the color at the origin point of the texture
+ * will be used.
+ */
+#if TEXTURING
+#define IF_TEXTURING(X) X
+#else
+#define IF_TEXTURING(X)
+#endif
+
+/*
+ * PERSPECTIVE_FIX
+ * If enabled, texturing will have correct perspective on triangles which
+ * show depth.  You typically always want this, so it's enabled by default.
+ * This option is useful only if TEXTURING is also enabled.
+ */
+#ifndef PERSPECTIVE_FIX
+#define PERSPECTIVE_FIX 1
+#endif
+#if PERSPECTIVE_FIX
+#define IF_PERSPECTIVE_FIX(X) X
+#else
+#define IF_PERSPECTIVE_FIX(X)
+#endif
+
 /*
  * VERBOSITY
  * If enabled, a description of what is happening will be printed to stdout.
This page took 0.016458 seconds and 4 git commands to generate.