summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/glide/fxtris.c38
1 files changed, 22 insertions, 16 deletions
diff --git a/src/mesa/drivers/glide/fxtris.c b/src/mesa/drivers/glide/fxtris.c
index ecf68b8d9ca..05fe1b2ecd5 100644
--- a/src/mesa/drivers/glide/fxtris.c
+++ b/src/mesa/drivers/glide/fxtris.c
@@ -298,14 +298,25 @@ static void fx_draw_point_sprite ( fxMesaContext fxMesa,
/* point coverage? */
/* we don't care about culling here (see fxSetupCull) */
- _v_[0].x -= radius;
- _v_[0].y += radius;
- _v_[1].x += radius;
- _v_[1].y += radius;
- _v_[2].x += radius;
- _v_[2].y -= radius;
- _v_[3].x -= radius;
- _v_[3].y -= radius;
+ if (ctx->Point.SpriteOrigin == GL_UPPER_LEFT) {
+ _v_[0].x -= radius;
+ _v_[0].y += radius;
+ _v_[1].x += radius;
+ _v_[1].y += radius;
+ _v_[2].x += radius;
+ _v_[2].y -= radius;
+ _v_[3].x -= radius;
+ _v_[3].y -= radius;
+ } else {
+ _v_[0].x -= radius;
+ _v_[0].y -= radius;
+ _v_[1].x += radius;
+ _v_[1].y -= radius;
+ _v_[2].x += radius;
+ _v_[2].y += radius;
+ _v_[3].x -= radius;
+ _v_[3].y += radius;
+ }
if (ctx->Point.CoordReplace[ts0]) {
_v_[0].tmuvtx[0].sow = 0;
@@ -904,7 +915,6 @@ static void fx_render_vb_tri_strip( GLcontext *ctx,
{
fxMesaContext fxMesa = FX_CONTEXT(ctx);
GrVertex *fxVB = fxMesa->verts;
- int mode;
(void) flags;
if (TDFX_DEBUG & VERBOSE_VARRAY) {
@@ -913,13 +923,9 @@ static void fx_render_vb_tri_strip( GLcontext *ctx,
INIT(GL_TRIANGLE_STRIP);
- /* [dBorca] WTF?!?
- if (flags & PRIM_PARITY)
- mode = GR_TRIANGLE_STRIP_CONTINUE;
- else*/
- mode = GR_TRIANGLE_STRIP;
+ /* no GR_TRIANGLE_STRIP_CONTINUE?!? */
- grDrawVertexArrayContiguous( mode, count-start,
+ grDrawVertexArrayContiguous( GR_TRIANGLE_STRIP, count-start,
fxVB + start, sizeof(GrVertex));
}
@@ -1466,7 +1472,7 @@ void fxDDInitTriFuncs( GLcontext *ctx )
/* [dBorca] Hack alert:
* doesn't work with blending.
- * need to take care of stencil.
+ * XXX todo - need to take care of stencil.
*/
GLboolean fxMultipass_ColorSum (GLcontext *ctx, GLuint pass)
{