/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void sis_fallback_quad( sisContextPtr smesa, sisVertex *v0, sisVertex *v1, sisVertex *v2, sisVertex *v3 ) { GLcontext *ctx = smesa->glCtx; SWvertex v[4]; sis_translate_vertex( ctx, v0, &v[0] ); sis_translate_vertex( ctx, v1, &v[1] ); sis_translate_vertex( ctx, v2, &v[2] ); sis_translate_vertex( ctx, v3, &v[3] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[3] ); _swrast_Triangle( ctx, &v[1], &v[2], &v[3] ); }
static void ffb_fallback_triangle(GLcontext *ctx, ffb_vertex *v0, ffb_vertex *v1, ffb_vertex *v2) { SWvertex v[3]; ffb_translate_vertex(ctx, v0, &v[0]); ffb_translate_vertex(ctx, v1, &v[1]); ffb_translate_vertex(ctx, v2, &v[2]); _swrast_Triangle(ctx, &v[0], &v[1], &v[2]); }
/* The fallbacks */ void nouveau_fallback_tri(struct nouveau_context *nmesa, nouveauVertex *v0, nouveauVertex *v1, nouveauVertex *v2) { GLcontext *ctx = nmesa->glCtx; SWvertex v[3]; _swsetup_Translate(ctx, v0, &v[0]); _swsetup_Translate(ctx, v1, &v[1]); _swsetup_Translate(ctx, v2, &v[2]); _swrast_Triangle(ctx, &v[0], &v[1], &v[2]); }
static void mga_fallback_tri( mgaContextPtr mmesa, mgaVertex *v0, mgaVertex *v1, mgaVertex *v2 ) { GLcontext *ctx = mmesa->glCtx; SWvertex v[3]; mga_translate_vertex( ctx, v0, &v[0] ); mga_translate_vertex( ctx, v1, &v[1] ); mga_translate_vertex( ctx, v2, &v[2] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); }
static void trident_fallback_tri( tridentContextPtr tmesa, const tridentVertex *v0, const tridentVertex *v1, const tridentVertex *v2 ) { GLcontext *ctx = tmesa->glCtx; SWvertex v[3]; trident_translate_vertex( ctx, v0, &v[0] ); trident_translate_vertex( ctx, v1, &v[1] ); trident_translate_vertex( ctx, v2, &v[2] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); }
static void tdfx_fallback_tri( tdfxContextPtr fxMesa, tdfxVertex *v0, tdfxVertex *v1, tdfxVertex *v2 ) { GLcontext *ctx = fxMesa->glCtx; SWvertex v[3]; tdfx_translate_vertex( ctx, v0, &v[0] ); tdfx_translate_vertex( ctx, v1, &v[1] ); tdfx_translate_vertex( ctx, v2, &v[2] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); }
/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void r128_fallback_tri( r128ContextPtr rmesa, r128Vertex *v0, r128Vertex *v1, r128Vertex *v2 ) { GLcontext *ctx = rmesa->glCtx; SWvertex v[3]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); _swsetup_Translate( ctx, v2, &v[2] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); }
/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void i810_fallback_tri( i810ContextPtr imesa, i810Vertex *v0, i810Vertex *v1, i810Vertex *v2 ) { GLcontext *ctx = imesa->glCtx; SWvertex v[3]; i810_translate_vertex( ctx, v0, &v[0] ); i810_translate_vertex( ctx, v1, &v[1] ); i810_translate_vertex( ctx, v2, &v[2] ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); }
/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void via_fallback_tri(struct via_context *vmesa, viaVertex *v0, viaVertex *v1, viaVertex *v2) { struct gl_context *ctx = vmesa->glCtx; SWvertex v[3]; _swsetup_Translate(ctx, v0, &v[0]); _swsetup_Translate(ctx, v1, &v[1]); _swsetup_Translate(ctx, v2, &v[2]); viaSpanRenderStart( ctx ); _swrast_Triangle(ctx, &v[0], &v[1], &v[2]); viaSpanRenderFinish( ctx ); }
static void sis_fallback_tri( sisContextPtr smesa, sisVertex *v0, sisVertex *v1, sisVertex *v2 ) { struct gl_context *ctx = smesa->glCtx; SWvertex v[3]; _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); _swsetup_Translate( ctx, v2, &v[2] ); sisSpanRenderStart( ctx ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); sisSpanRenderFinish( ctx ); _swrast_flush( ctx ); }
/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void intel_fallback_tri( intelContextPtr intel, intelVertex *v0, intelVertex *v1, intelVertex *v2 ) { GLcontext *ctx = &intel->ctx; SWvertex v[3]; if (0) fprintf(stderr, "\n%s\n", __FUNCTION__); _swsetup_Translate( ctx, v0, &v[0] ); _swsetup_Translate( ctx, v1, &v[1] ); _swsetup_Translate( ctx, v2, &v[2] ); intelSpanRenderStart( ctx ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); intelSpanRenderFinish( ctx ); }
/* This code is hit only when a mix of accelerated and unaccelerated * primitives are being drawn, and only for the unaccelerated * primitives. */ static void i830_fallback_tri( i830ContextPtr imesa, i830Vertex *v0, i830Vertex *v1, i830Vertex *v2 ) { GLcontext *ctx = imesa->glCtx; SWvertex v[3]; if (0) fprintf(stderr, "\n%s\n", __FUNCTION__); i830_translate_vertex( ctx, v0, &v[0] ); i830_translate_vertex( ctx, v1, &v[1] ); i830_translate_vertex( ctx, v2, &v[2] ); i830SpanRenderStart( ctx ); _swrast_Triangle( ctx, &v[0], &v[1], &v[2] ); i830SpanRenderFinish( ctx ); }