X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fpolyfill.c;h=1393cd200fc0b1b1906f51236cf229adb966d344;hb=0065a39b46f7f9ae394e75a6c3d661e48e995045;hp=0d1351e1d26919b94b4f21e2749418f2aa4aa790;hpb=07ce18b114e1e01b2a85a04079128f3eb754de1d;p=dosdemo diff --git a/src/polyfill.c b/src/polyfill.c index 0d1351e..1393cd2 100644 --- a/src/polyfill.c +++ b/src/polyfill.c @@ -2,7 +2,7 @@ #include #include #include -#if defined(__WATCOMC__) || defined(_MSC_VER) +#if defined(__WATCOMC__) || defined(_MSC_VER) || defined(__DJGPP__) #include #else #include @@ -60,6 +60,21 @@ void polyfill_wire(struct pvertex *verts, int nverts) #define NEXTIDX(x) (((x) - 1 + nverts) % nverts) #define PREVIDX(x) (((x) + 1) % nverts) +/* XXX + * When HIGH_QUALITY is defined, the rasterizer calculates slopes for attribute + * interpolation on each scanline separately; otherwise the slope for each + * attribute would be calculated once for the whole polygon, which is faster, + * but produces some slight quantization artifacts, due to the limited precision + * of fixed-point calculations. + */ +#define HIGH_QUALITY + +/* extra bits of precision to use when interpolating colors. + * try tweaking this if you notice strange quantization artifacts. + */ +#define COLOR_SHIFT 12 + + #define POLYFILL polyfill_flat #define SCANEDGE scanedge_flat #undef GOURAUD