diff options
Diffstat (limited to 'src/mesa/drivers/glide/fxvb.c')
-rw-r--r-- | src/mesa/drivers/glide/fxvb.c | 188 |
1 files changed, 99 insertions, 89 deletions
diff --git a/src/mesa/drivers/glide/fxvb.c b/src/mesa/drivers/glide/fxvb.c index d95cfca5797..40acbb7e9e4 100644 --- a/src/mesa/drivers/glide/fxvb.c +++ b/src/mesa/drivers/glide/fxvb.c @@ -48,23 +48,24 @@ #include "tnl/t_pipeline.h" -void fxPrintSetupFlags( const char *msg, GLuint flags ) +void +fxPrintSetupFlags(const char *msg, GLuint flags) { fprintf(stderr, "%s: %d %s%s%s%s%s\n", - msg, - flags, - (flags & SETUP_XYZW) ? " xyzw," : "", - (flags & SETUP_SNAP) ? " snap," : "", - (flags & SETUP_RGBA) ? " rgba," : "", - (flags & SETUP_TMU0) ? " tmu0," : "", - (flags & SETUP_TMU1) ? " tmu1," : ""); + msg, + flags, + (flags & SETUP_XYZW) ? " xyzw," : "", + (flags & SETUP_SNAP) ? " snap," : "", + (flags & SETUP_RGBA) ? " rgba," : "", + (flags & SETUP_TMU0) ? " tmu0," : "", + (flags & SETUP_TMU1) ? " tmu1," : ""); } -static void project_texcoords( fxVertex *v, - struct vertex_buffer *VB, - GLuint tmu_nr, GLuint tc_nr, - GLuint start, GLuint count ) -{ +static void +project_texcoords(fxVertex * v, + struct vertex_buffer *VB, + GLuint tmu_nr, GLuint tc_nr, GLuint start, GLuint count) +{ GrTmuVertex *tmu = &(v->v.tmuvtx[tmu_nr]); GLvector4f *vec = VB->TexCoordPtr[tc_nr]; @@ -72,43 +73,42 @@ static void project_texcoords( fxVertex *v, GLuint stride = vec->stride; GLfloat *data = VEC_ELT(vec, GLfloat, start); - for (i = start ; i < count ; i++, STRIDE_F(data, stride), v++) { + for (i = start; i < count; i++, STRIDE_F(data, stride), v++) { tmu->oow = v->v.oow * data[3]; - tmu = (GrTmuVertex *)((char *)tmu + sizeof(fxVertex)); - } + tmu = (GrTmuVertex *) ((char *) tmu + sizeof(fxVertex)); + } } -static void copy_w( fxVertex *v, - struct vertex_buffer *VB, - GLuint tmu_nr, - GLuint start, GLuint count ) -{ +static void +copy_w(fxVertex * v, + struct vertex_buffer *VB, GLuint tmu_nr, GLuint start, GLuint count) +{ GrTmuVertex *tmu = &(v->v.tmuvtx[tmu_nr]); GLuint i; - for (i = start ; i < count ; i++, v++) { + for (i = start; i < count; i++, v++) { tmu->oow = v->v.oow; - tmu = (GrTmuVertex *)((char *)tmu + sizeof(fxVertex)); - } + tmu = (GrTmuVertex *) ((char *) tmu + sizeof(fxVertex)); + } } /* need to compute W values for fogging purposes */ -static void fx_fake_fog_w( GLcontext *ctx, - fxVertex *verts, - struct vertex_buffer *VB, - GLuint start, GLuint end ) +static void +fx_fake_fog_w(GLcontext * ctx, + fxVertex * verts, + struct vertex_buffer *VB, GLuint start, GLuint end) { const GLfloat m10 = ctx->ProjectionMatrix.m[10]; const GLfloat m14 = ctx->ProjectionMatrix.m[14]; - GLfloat (*clip)[4] = VB->ClipPtr->data; + GLfloat(*clip)[4] = VB->ClipPtr->data; GLubyte *clipmask = VB->ClipMask; GLuint i; - for ( i = start ; i < end ; i++) { + for (i = start; i < end; i++) { if (clipmask[i] == 0) { - verts[i].v.oow = - m10 / (clip[i][2] - m14); /* -1/zEye */ + verts[i].v.oow = -m10 / (clip[i][2] - m14); /* -1/zEye */ } } } @@ -238,59 +238,61 @@ static tfxSetupFunc setupfuncs[MAX_SETUP]; static void -fxsetup_invalid( GLcontext *ctx, GLuint start, GLuint end ) +fxsetup_invalid(GLcontext * ctx, GLuint start, GLuint end) { fprintf(stderr, "fxMesa: invalid setup function\n"); (void) (ctx && start && end); } -void fxDDSetupInit( void ) +void +fxDDSetupInit(void) { GLuint i; - for (i = 0 ; i < Elements(setupfuncs) ; i++) + for (i = 0; i < Elements(setupfuncs); i++) setupfuncs[i] = fxsetup_invalid; setupfuncs[SETUP_XYZW] = fxsetupXYZW; - setupfuncs[SETUP_XYZW|SETUP_RGBA] = fxsetupXYZWRGBA; - setupfuncs[SETUP_XYZW|SETUP_TMU0] = fxsetupXYZWT0; - setupfuncs[SETUP_XYZW|SETUP_TMU1] = fxsetupXYZWT1; - setupfuncs[SETUP_XYZW|SETUP_TMU0|SETUP_RGBA] = fxsetupXYZWRGBAT0; - setupfuncs[SETUP_XYZW|SETUP_TMU1|SETUP_RGBA] = fxsetupXYZWRGBAT1; - setupfuncs[SETUP_XYZW|SETUP_TMU1|SETUP_TMU0] = fxsetupXYZWT0T1; - setupfuncs[SETUP_XYZW|SETUP_TMU1|SETUP_TMU0|SETUP_RGBA] = + setupfuncs[SETUP_XYZW | SETUP_RGBA] = fxsetupXYZWRGBA; + setupfuncs[SETUP_XYZW | SETUP_TMU0] = fxsetupXYZWT0; + setupfuncs[SETUP_XYZW | SETUP_TMU1] = fxsetupXYZWT1; + setupfuncs[SETUP_XYZW | SETUP_TMU0 | SETUP_RGBA] = fxsetupXYZWRGBAT0; + setupfuncs[SETUP_XYZW | SETUP_TMU1 | SETUP_RGBA] = fxsetupXYZWRGBAT1; + setupfuncs[SETUP_XYZW | SETUP_TMU1 | SETUP_TMU0] = fxsetupXYZWT0T1; + setupfuncs[SETUP_XYZW | SETUP_TMU1 | SETUP_TMU0 | SETUP_RGBA] = fxsetupXYZWRGBAT0T1; - setupfuncs[SETUP_XYZW|SETUP_SNAP] = fxsetupXYZW_SNAP; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_RGBA] = fxsetupXYZW_SNAP_RGBA; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU0] = fxsetupXYZW_SNAP_T0; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU1] = fxsetupXYZW_SNAP_T1; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU0|SETUP_RGBA] = + setupfuncs[SETUP_XYZW | SETUP_SNAP] = fxsetupXYZW_SNAP; + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_RGBA] = fxsetupXYZW_SNAP_RGBA; + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU0] = fxsetupXYZW_SNAP_T0; + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU1] = fxsetupXYZW_SNAP_T1; + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU0 | SETUP_RGBA] = fxsetupXYZW_SNAP_RGBAT0; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU1|SETUP_RGBA] = + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU1 | SETUP_RGBA] = fxsetupXYZW_SNAP_RGBAT1; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU1|SETUP_TMU0] = + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU1 | SETUP_TMU0] = fxsetupXYZW_SNAP_T0T1; - setupfuncs[SETUP_XYZW|SETUP_SNAP|SETUP_TMU1|SETUP_TMU0|SETUP_RGBA] = - fxsetupXYZW_SNAP_RGBAT0T1; + setupfuncs[SETUP_XYZW | SETUP_SNAP | SETUP_TMU1 | SETUP_TMU0 | SETUP_RGBA] + = fxsetupXYZW_SNAP_RGBAT0T1; setupfuncs[SETUP_RGBA] = fxsetupRGBA; setupfuncs[SETUP_TMU0] = fxsetupT0; setupfuncs[SETUP_TMU1] = fxsetupT1; - setupfuncs[SETUP_TMU1|SETUP_TMU0] = fxsetupT0T1; - setupfuncs[SETUP_TMU0|SETUP_RGBA] = fxsetupRGBAT0; - setupfuncs[SETUP_TMU1|SETUP_RGBA] = fxsetupRGBAT1; - setupfuncs[SETUP_TMU1|SETUP_TMU0|SETUP_RGBA] = fxsetupRGBAT0T1; + setupfuncs[SETUP_TMU1 | SETUP_TMU0] = fxsetupT0T1; + setupfuncs[SETUP_TMU0 | SETUP_RGBA] = fxsetupRGBAT0; + setupfuncs[SETUP_TMU1 | SETUP_RGBA] = fxsetupRGBAT1; + setupfuncs[SETUP_TMU1 | SETUP_TMU0 | SETUP_RGBA] = fxsetupRGBAT0T1; } -void fx_validate_BuildProjVerts(GLcontext *ctx, GLuint start, GLuint count, - GLuint newinputs ) +void +fx_validate_BuildProjVerts(GLcontext * ctx, GLuint start, GLuint count, + GLuint newinputs) { - fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx; + fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx; - if (!fxMesa->is_in_hardware) + if (!fxMesa->is_in_hardware) ctx->Driver.BuildProjectedVertices = _swsetup_BuildProjectedVertices; else { GLuint setupindex = SETUP_XYZW; @@ -299,56 +301,61 @@ void fx_validate_BuildProjVerts(GLcontext *ctx, GLuint start, GLuint count, fxMesa->tmu_source[1] = 1; fxMesa->tex_dest[0] = SETUP_TMU0; fxMesa->tex_dest[1] = SETUP_TMU1; - + /* For flat and two-side-lit triangles, colors will always be added * to vertices in the triangle functions. Vertices will *always* * have rbga values, but only sometimes will they come from here. */ - if ((ctx->_TriangleCaps & (DD_FLATSHADE|DD_TRI_LIGHT_TWOSIDE)) == 0) + if ((ctx->_TriangleCaps & (DD_FLATSHADE | DD_TRI_LIGHT_TWOSIDE)) == 0) setupindex |= SETUP_RGBA; - if (ctx->Texture._ReallyEnabled & TEXTURE0_2D) + if (ctx->Texture._ReallyEnabled & TEXTURE0_2D) setupindex |= SETUP_TMU0; if (ctx->Texture._ReallyEnabled & TEXTURE1_2D) { if ((ctx->Texture._ReallyEnabled & TEXTURE0_2D) == 0) { - fxMesa->tmu_source[0] = 1; fxMesa->tex_dest[0] = SETUP_TMU1; - fxMesa->tmu_source[1] = 0; fxMesa->tex_dest[1] = SETUP_TMU0; + fxMesa->tmu_source[0] = 1; + fxMesa->tex_dest[0] = SETUP_TMU1; + fxMesa->tmu_source[1] = 0; + fxMesa->tex_dest[1] = SETUP_TMU0; setupindex |= SETUP_TMU0; - } else { + } + else { setupindex |= SETUP_TMU1; } } - if (MESA_VERBOSE & (VERBOSE_DRIVER|VERBOSE_PIPELINE|VERBOSE_STATE)) - fxPrintSetupFlags("fxmesa: vertex setup function", setupindex); - + if (MESA_VERBOSE & (VERBOSE_DRIVER | VERBOSE_PIPELINE | VERBOSE_STATE)) + fxPrintSetupFlags("fxmesa: vertex setup function", setupindex); + fxMesa->setupindex = setupindex; ctx->Driver.BuildProjectedVertices = fx_BuildProjVerts; } - ctx->Driver.BuildProjectedVertices( ctx, start, count, newinputs ); + ctx->Driver.BuildProjectedVertices(ctx, start, count, newinputs); } -void fx_BuildProjVerts( GLcontext *ctx, GLuint start, GLuint count, - GLuint newinputs ) +void +fx_BuildProjVerts(GLcontext * ctx, GLuint start, GLuint count, + GLuint newinputs) { fxMesaContext fxMesa = FX_CONTEXT(ctx); struct vertex_buffer *VB = &TNL_CONTEXT(ctx)->vb; if (newinputs == ~0) { /* build interpolated vertices */ - setupfuncs[fxMesa->setupindex]( ctx, start, count ); - } else { + setupfuncs[fxMesa->setupindex] (ctx, start, count); + } + else { GLuint ind = fxMesa->setup_gone; fxMesa->setup_gone = 0; - - if (newinputs & VERT_CLIP) + + if (newinputs & VERT_CLIP) ind = fxMesa->setupindex; /* clipmask has potentially changed */ else { if (newinputs & VERT_TEX0) ind |= fxMesa->tex_dest[0]; - + if (newinputs & VERT_TEX1) ind |= fxMesa->tex_dest[1]; @@ -359,30 +366,32 @@ void fx_BuildProjVerts( GLcontext *ctx, GLuint start, GLuint count, } if (ind) { - if (fxMesa->new_state) - fxSetupFXUnits( ctx ); /* why? */ - + if (fxMesa->new_state) + fxSetupFXUnits(ctx); /* why? */ + if (VB->importable_data & newinputs) - VB->import_data( ctx, VB->importable_data & newinputs, - VEC_BAD_STRIDE ); - - setupfuncs[ind]( ctx, start, count ); + VB->import_data(ctx, VB->importable_data & newinputs, + VEC_BAD_STRIDE); + + setupfuncs[ind] (ctx, start, count); } } } -void fxAllocVB( GLcontext *ctx ) +void +fxAllocVB(GLcontext * ctx) { fxMesaContext fxMesa = FX_CONTEXT(ctx); TNLcontext *tnl = TNL_CONTEXT(ctx); - fxMesa->verts = ALIGN_MALLOC( tnl->vb.Size * sizeof(fxMesa->verts[0]), 32 ); + fxMesa->verts = ALIGN_MALLOC(tnl->vb.Size * sizeof(fxMesa->verts[0]), 32); } -void fxFreeVB( GLcontext *ctx ) +void +fxFreeVB(GLcontext * ctx) { fxMesaContext fxMesa = FX_CONTEXT(ctx); if (fxMesa->verts) - ALIGN_FREE( fxMesa->verts ); + ALIGN_FREE(fxMesa->verts); fxMesa->verts = 0; } @@ -395,9 +404,10 @@ void fxFreeVB( GLcontext *ctx ) */ extern int gl_fx_dummy_function_vsetup(void); -int gl_fx_dummy_function_vsetup(void) +int +gl_fx_dummy_function_vsetup(void) { - return 0; + return 0; } -#endif /* FX */ +#endif /* FX */ |