X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2F3dgfx%2Fpolyfill.h;h=fed8eda4e8bee012efc15dcb49e71543d6887db7;hp=19092f0ca65f8f451ccb0f28e294562b954e0f4a;hb=659ca11730af4e7e5b1b350efa4198a9c42de287;hpb=2e6bc96b25ae3ad5be7f04934be01f63dfd23ce2 diff --git a/src/3dgfx/polyfill.h b/src/3dgfx/polyfill.h index 19092f0..fed8eda 100644 --- a/src/3dgfx/polyfill.h +++ b/src/3dgfx/polyfill.h @@ -8,6 +8,7 @@ #define POLYFILL_TEX_BIT 0x04 #define POLYFILL_ALPHA_BIT 0x08 #define POLYFILL_ADD_BIT 0x10 +#define POLYFILL_ZBUF_BIT 0x20 enum { POLYFILL_WIRE = 0, @@ -32,7 +33,32 @@ enum { POLYFILL_ADD_TEX_WIRE = 20, POLYFILL_ADD_TEX_FLAT, - POLYFILL_ADD_TEX_GOURAUD + POLYFILL_ADD_TEX_GOURAUD, + + + POLYFILL_WIRE_ZBUF = 32, + POLYFILL_FLAT_ZBUF, + POLYFILL_GOURAUD_ZBUF, + + POLYFILL_TEX_WIRE_ZBUF = 36, + POLYFILL_TEX_FLAT_ZBUF, + POLYFILL_TEX_GOURAUD_ZBUF, + + POLYFILL_ALPHA_WIRE_ZBUF = 40, + POLYFILL_ALPHA_FLAT_ZBUF, + POLYFILL_ALPHA_GOURAUD_ZBUF, + + POLYFILL_ALPHA_TEX_WIRE_ZBUF = 44, + POLYFILL_ALPHA_TEX_FLAT_ZBUF, + POLYFILL_ALPHA_TEX_GOURAUD_ZBUF, + + POLYFILL_ADD_WIRE_ZBUF = 48, + POLYFILL_ADD_FLAT_ZBUF, + POLYFILL_ADD_GOURAUD_ZBUF, + + POLYFILL_ADD_TEX_WIRE_ZBUF = 52, + POLYFILL_ADD_TEX_FLAT_ZBUF, + POLYFILL_ADD_TEX_GOURAUD_ZBUF }; /* projected vertices for the rasterizer */ @@ -40,6 +66,7 @@ struct pvertex { int32_t x, y; /* 24.8 fixed point */ int32_t u, v; /* 16.16 fixed point */ int32_t r, g, b, a; /* int 0-255 */ + uint16_t z; /* 0-65535 */ }; struct pimage { @@ -52,6 +79,7 @@ struct pimage { extern struct pimage pfill_fb; extern struct pimage pfill_tex; +extern uint16_t *pfill_zbuf; void polyfill_fbheight(int height); @@ -75,5 +103,17 @@ void polyfill_add_gouraud(struct pvertex *verts, int nverts); void polyfill_add_tex_wire(struct pvertex *verts, int nverts); void polyfill_add_tex_flat(struct pvertex *verts, int nverts); void polyfill_add_tex_gouraud(struct pvertex *verts, int nverts); +void polyfill_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_gouraud_zbuf(struct pvertex *verts, int nverts); +void polyfill_tex_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_tex_gouraud_zbuf(struct pvertex *verts, int nverts); +void polyfill_alpha_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_alpha_gouraud_zbuf(struct pvertex *verts, int nverts); +void polyfill_alpha_tex_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_alpha_tex_gouraud_zbuf(struct pvertex *verts, int nverts); +void polyfill_add_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_add_gouraud_zbuf(struct pvertex *verts, int nverts); +void polyfill_add_tex_flat_zbuf(struct pvertex *verts, int nverts); +void polyfill_add_tex_gouraud_zbuf(struct pvertex *verts, int nverts); #endif /* POLYFILL_H_ */