diff --git a/glide3x/cvg/glide3/src/distate.c b/glide3x/cvg/glide3/src/distate.c index c37cf6c..284deab 100644 --- a/glide3x/cvg/glide3/src/distate.c +++ b/glide3x/cvg/glide3/src/distate.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ + ** Revision 1.1.1.1.8.3 2004/03/08 07:42:21 dborca + ** Voodoo Rush fixes + ** ** Revision 1.1.1.1.8.2 2003/11/03 13:34:29 dborca ** Voodoo2 happiness (DJGPP & Linux) ** @@ -529,12 +532,9 @@ GR_DIENTRY(grStipplePattern, void , (GrStipplePattern_t stipple)) GR_BEGIN_NOFIFOCHECK("grStipplePattern\n", 85); - /* [dBorca] TODO - * INVALIDATE(stipple); STOREARG(grStipplePattern, stipple); - */ #undef FN_NAME } /* grStipplePattern */ @@ -555,12 +555,9 @@ GR_DIENTRY(grStippleMode, void , (GrStippleMode_t mode) ) GR_BEGIN_NOFIFOCHECK("grStippleMode\n", 85); - /* [dBorca] TODO - * INVALIDATE(fbzMode); STOREARG(grStippleMode, mode); - */ #undef FN_NAME } /* grStippleMode */ @@ -888,6 +885,7 @@ _grValidateState() _grDepthBufferFunction(LOADARG(grDepthBufferFunction, fnc)); _grDepthBufferMode(LOADARG(grDepthBufferMode, mode)); _grDitherMode(LOADARG(grDitherMode, mode)); + _grStippleMode(LOADARG(grStippleMode, mode)); _grRenderBuffer(LOADARG(grRenderBuffer, buffer)); _grColorMask(LOADARG(grColorMask, rgb), LOADARG(grColorMask, alpha)); _grSstOrigin(LOADARG(grSstOrigin, origin)); @@ -896,6 +894,15 @@ _grValidateState() reg_cnt++; } + if (NOTVALID(stipple)) { + gc->state.fbi_config.stipple = LOADARG(grStipplePattern, stipple); + REG_GROUP_BEGIN(BROADCAST_ID, stipple, 1, 0x01); + { + REG_GROUP_SET(hw, stipple, gc->state.fbi_config.stipple); + } + REG_GROUP_END(); + } + if (NOTVALID(chromaKey)) { _grChromakeyValue(LOADARG(grChromakeyValue, color)); mask |= 0x1000; diff --git a/glide3x/cvg/glide3/src/fxgasm.c b/glide3x/cvg/glide3/src/fxgasm.c index 223d2b2..e10ea82 100644 --- a/glide3x/cvg/glide3/src/fxgasm.c +++ b/glide3x/cvg/glide3/src/fxgasm.c @@ -71,7 +71,7 @@ main (int argc, char **argv) if (argc > 1) { if (strcmp("-inline", argv[1]) == 0) { - SstRegs dummyRegs; + SstRegs dummyRegs = { 0x00UL }; printf("#ifndef __FX_INLINE_H__\n"); printf("#define __FX_INLINE_H__\n"); diff --git a/glide3x/cvg/glide3/src/fxglide.h b/glide3x/cvg/glide3/src/fxglide.h index 68b4e27..0c374df 100644 --- a/glide3x/cvg/glide3/src/fxglide.h +++ b/glide3x/cvg/glide3/src/fxglide.h @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1.8.14 2006/01/16 21:22:41 jwrdegoede +** Fix gcc 4.1 new type-punned ptr breaks antialias. warnings +** ** Revision 1.1.1.1.8.13 2005/08/13 21:06:56 jwrdegoede ** Last needed 64 bit fixes for h5/h3, complete 64 bit support for cvg ** @@ -684,6 +687,7 @@ typedef struct { #define lfbModeBIT FXBIT(8) #define c0c1BIT FXBIT(9) #define chromaRangeBIT FXBIT(10) +#define stippleBIT FXBIT(11) /* ** lazy evaluate vertexlayout. ** it is not part of the registers so we add the bit in MSB @@ -943,6 +947,12 @@ typedef struct struct { GrDitherMode_t mode; } grDitherModeArgs; + struct { + GrStippleMode_t mode; + } grStippleModeArgs; + struct { + GrStipplePattern_t stipple; + } grStipplePatternArgs; struct { GrBuffer_t buffer; } grRenderBufferArgs; @@ -1598,6 +1608,8 @@ _grColorCombine( /* ** Glide 3 extension APIs */ +void FX_CALL +grStipplePattern(GrStipplePattern_t stipple); void FX_CALL grChromaRangeMode(GrChromaRangeMode_t mode); @@ -1651,6 +1663,9 @@ _grDepthBufferMode( GrDepthBufferMode_t mode ); void _grDitherMode( GrDitherMode_t mode ); +void +_grStippleMode( GrStippleMode_t mode ); + void _grRenderBuffer( GrBuffer_t buffer ); diff --git a/glide3x/cvg/glide3/src/gglide.c b/glide3x/cvg/glide3/src/gglide.c index 9da5c08..0ff84d2 100644 --- a/glide3x/cvg/glide3/src/gglide.c +++ b/glide3x/cvg/glide3/src/gglide.c @@ -19,6 +19,9 @@ ** ** $Header$ ** $Log$ +** Revision 1.1.1.1.8.6 2007/05/19 10:58:19 koolsmoky +** force 4x4 dither with alpha dither subtraction +** ** Revision 1.1.1.1.8.5 2005/06/09 18:32:08 jwrdegoede ** Fixed all warnings with gcc4 -Wall -W -Wno-unused-parameter, except for a couple I believe to be a gcc bug. This has been reported to gcc. ** @@ -1737,6 +1740,44 @@ GR_ENTRY(grDisableAllEffects, void, (void)) grFogMode(GR_FOG_DISABLE); } /* grDisableAllEffects */ +/*--------------------------------------------------------------------------- +** grStippleMode +*/ + +GR_STATE_ENTRY(grStippleMode, void, (GrStippleMode_t mode)) +{ +#define FN_NAME "_grStippleMode" + FxU32 fbzMode; + GR_BEGIN_NOFIFOCHECK("_grStippleMode", 85); + GDBG_INFO_MORE(gc->myLevel, "(%d)\n", mode); + + fbzMode = gc->state.fbi_config.fbzMode; + + fbzMode &= ~(SST_ENSTIPPLE | SST_ENSTIPPLEPATTERN); + + switch (mode) { + case GR_STIPPLE_DISABLE: + break; + + case GR_STIPPLE_PATTERN: + fbzMode |= (SST_ENSTIPPLE | SST_ENSTIPPLEPATTERN); + break; + + case GR_STIPPLE_ROTATE: + fbzMode |= SST_ENSTIPPLE; + break; + } + + gc->state.fbi_config.fbzMode = fbzMode; + +#if !GLIDE3 + GR_SET_EXPECTED_SIZE(sizeof(FxU32), 1); + GR_SET(BROADCAST_ID, hw, fbzMode, fbzMode); + GR_CHECK_SIZE(); +#endif /* !GLIDE3 */ +#undef FN_NAME +} /* grStippleMode */ + /*--------------------------------------------------------------------------- ** grDitherMode */