From d43a5943d8952367d9292653800b47a85f905343 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Tue, 16 Jan 2001 05:29:42 +0000 Subject: Fix several conformance problems. Hack solution to line stipple problem. --- src/mesa/drivers/glide/fxdd.c | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'src/mesa/drivers/glide/fxdd.c') diff --git a/src/mesa/drivers/glide/fxdd.c b/src/mesa/drivers/glide/fxdd.c index 08285f67e8..fe918a7eac 100644 --- a/src/mesa/drivers/glide/fxdd.c +++ b/src/mesa/drivers/glide/fxdd.c @@ -1028,10 +1028,40 @@ static void fxDDUpdateDDPointers(GLcontext *ctx, GLuint new_state) static void fxDDRenderPrimitive( GLcontext *ctx, GLenum mode ) { - (void) ctx; (void) mode; + fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; + + if (!fxMesa->is_in_hardware) { + _swsetup_RenderPrimitive( ctx, mode ); + } + else { + fxMesa->render_prim = mode; + } +} + + +static void fxDDRenderStart( GLcontext *ctx ) +{ + fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; + + if (!fxMesa->is_in_hardware) { + _swsetup_RenderStart( ctx ); + } + else if (fxMesa->new_state) { + fxSetupFXUnits( ctx ); + } +} + +static void fxDDRenderFinish( GLcontext *ctx ) +{ + fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx; + + if (!fxMesa->is_in_hardware) { + _swsetup_RenderFinish( ctx ); + } } + void fxSetupDDPointers(GLcontext *ctx) { if (MESA_VERBOSE&VERBOSE_DRIVER) { @@ -1062,8 +1092,8 @@ void fxSetupDDPointers(GLcontext *ctx) ctx->Driver.Finish=fxDDFinish; ctx->Driver.Flush=NULL; - ctx->Driver.RenderStart=fxSetupFXUnits; - ctx->Driver.RenderFinish=_swrast_flush; + ctx->Driver.RenderStart=fxDDRenderStart; + ctx->Driver.RenderFinish=fxDDRenderFinish; ctx->Driver.ResetLineStipple=_swrast_ResetLineStipple; ctx->Driver.RenderPrimitive=fxDDRenderPrimitive; -- cgit v1.2.3