| @@ -1026,6 +1026,10 @@ static void fxDDUpdateDDPointers(GLcontext *ctx, GLuint new_state) | |||
| #endif | |||
| } | |||
| static void fxDDRenderPrimitive( GLcontext *ctx, GLenum mode ) | |||
| { | |||
| (void) ctx; (void) mode; | |||
| } | |||
| void fxSetupDDPointers(GLcontext *ctx) | |||
| @@ -1061,6 +1065,7 @@ void fxSetupDDPointers(GLcontext *ctx) | |||
| ctx->Driver.RenderStart=fxSetupFXUnits; | |||
| ctx->Driver.RenderFinish=_swrast_flush; | |||
| ctx->Driver.ResetLineStipple=_swrast_ResetLineStipple; | |||
| ctx->Driver.RenderPrimitive=fxDDRenderPrimitive; | |||
| ctx->Driver.TexImage2D = fxDDTexImage2D; | |||
| ctx->Driver.TexSubImage2D = fxDDTexSubImage2D; | |||
| @@ -457,19 +457,6 @@ fx_null_tri( GLcontext *ctx, | |||
| #define POINT_FALLBACK (DD_POINT_SMOOTH ) | |||
| #define LINE_FALLBACK (DD_LINE_STIPPLE) | |||
| #define TRI_FALLBACK (DD_TRI_SMOOTH | DD_TRI_STIPPLE ) | |||
| #define ANY_FALLBACK (POINT_FALLBACK | LINE_FALLBACK | TRI_FALLBACK) | |||
| #define ANY_RENDER_FLAGS (DD_FLATSHADE | \ | |||
| DD_TRI_LIGHT_TWOSIDE | \ | |||
| DD_TRI_OFFSET | \ | |||
| DD_TRI_UNFILLED) | |||
| /**********************************************************************/ | |||
| /* Render whole begin/end objects */ | |||
| @@ -518,6 +505,24 @@ fx_null_tri( GLcontext *ctx, | |||
| #include "tnl/t_vb_rendertmp.h" | |||
| /**********************************************************************/ | |||
| /* Choose render functions */ | |||
| /**********************************************************************/ | |||
| #define POINT_FALLBACK (DD_POINT_SMOOTH ) | |||
| #define LINE_FALLBACK (DD_LINE_STIPPLE) | |||
| #define TRI_FALLBACK (DD_TRI_SMOOTH | DD_TRI_STIPPLE ) | |||
| #define ANY_FALLBACK (POINT_FALLBACK | LINE_FALLBACK | TRI_FALLBACK) | |||
| #define ANY_RENDER_FLAGS (DD_FLATSHADE | \ | |||
| DD_TRI_LIGHT_TWOSIDE | \ | |||
| DD_TRI_OFFSET | \ | |||
| DD_TRI_UNFILLED) | |||
| /* Setup the Point, Line, Triangle and Quad functions based on the | |||
| @@ -288,12 +288,13 @@ void fxDDSetupInit( void ) | |||
| void fx_validate_BuildProjVerts(GLcontext *ctx, GLuint start, GLuint count, | |||
| GLuint newinputs ) | |||
| { | |||
| GLuint setupindex = SETUP_XYZW; | |||
| fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx; | |||
| if (!fxMesa->is_in_hardware) | |||
| ctx->Driver.BuildProjectedVertices = _swsetup_BuildProjectedVertices; | |||
| ctx->Driver.BuildProjectedVertices = _swsetup_BuildProjectedVertices; | |||
| else { | |||
| GLuint setupindex = SETUP_XYZW; | |||
| fxMesa->tmu_source[0] = 0; | |||
| fxMesa->tmu_source[1] = 1; | |||
| fxMesa->tex_dest[0] = SETUP_TMU0; | |||
| @@ -357,20 +358,13 @@ void fx_BuildProjVerts( GLcontext *ctx, GLuint start, GLuint count, | |||
| ind &= fxMesa->setupindex; | |||
| } | |||
| if (0) { | |||
| _tnl_print_vert_flags("newinputs", newinputs); | |||
| fxPrintSetupFlags("setup function", ind); | |||
| } | |||
| if (ind) { | |||
| if (fxMesa->new_state) | |||
| fxSetupFXUnits( ctx ); | |||
| if (VB->importable_data) | |||
| fxSetupFXUnits( ctx ); /* why? */ | |||
| if (VB->importable_data & newinputs) | |||
| VB->import_data( ctx, VB->importable_data & newinputs, | |||
| (VB->ClipOrMask | |||
| ? VEC_NOT_WRITEABLE|VEC_BAD_STRIDE | |||
| : VEC_BAD_STRIDE)); | |||
| VEC_BAD_STRIDE ); | |||
| setupfuncs[ind]( ctx, start, count ); | |||
| } | |||