aboutsummaryrefslogtreecommitdiffstats
path: root/src/mesa/swrast
diff options
context:
space:
mode:
authorBrian <[email protected]>2007-06-22 09:47:30 -0600
committerBrian <[email protected]>2007-06-22 09:47:30 -0600
commit1d52b6aaf41b32aaf8d1cdf5a3cd5ff4ecba28f4 (patch)
treeb7450442ccbee612502a4251a20c12721272fd22 /src/mesa/swrast
parent1bf507656921f216a69599143f1aef9bbb170b4e (diff)
fix bug rendering points with fragment program (see #11330)
Diffstat (limited to 'src/mesa/swrast')
-rw-r--r--src/mesa/swrast/s_points.c20
-rw-r--r--src/mesa/swrast/s_span.c7
2 files changed, 18 insertions, 9 deletions
diff --git a/src/mesa/swrast/s_points.c b/src/mesa/swrast/s_points.c
index 02c9d9b4251..b91ce73d7a3 100644
--- a/src/mesa/swrast/s_points.c
+++ b/src/mesa/swrast/s_points.c
@@ -1,8 +1,8 @@
/*
* Mesa 3-D graphics library
- * Version: 6.1
+ * Version: 7.1
*
- * Copyright (C) 1999-2004 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -208,6 +208,14 @@ _swrast_choose_point( GLcontext *ctx )
GLboolean specular = (ctx->Fog.ColorSumEnabled ||
(ctx->Light.Enabled &&
ctx->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR));
+ GLboolean attribs = (ctx->FragmentProgram._Current ||
+ ctx->Texture._EnabledCoordUnits ||
+ swrast->_FogEnabled ||
+ specular);
+
+ /*
+ * XXX this is a mess that should be cleaned up someday
+ */
if (ctx->RenderMode==GL_RENDER) {
if (ctx->Point.PointSprite) {
@@ -218,7 +226,7 @@ _swrast_choose_point( GLcontext *ctx )
else
USE(sprite_point);
}
- else if (ctx->Point.SmoothFlag) {
+ else if (ctx->Point.SmoothFlag && !attribs) {
/* Smooth points */
if (rgbMode) {
if (ctx->Point._Attenuated || ctx->VertexProgram.PointSizeEnabled) {
@@ -237,7 +245,7 @@ _swrast_choose_point( GLcontext *ctx )
}
else if (ctx->Point._Attenuated || ctx->VertexProgram.PointSizeEnabled) {
if (rgbMode) {
- if (ctx->Texture._EnabledCoordUnits) {
+ if (attribs) {
if (ctx->Point.SmoothFlag) {
USE(atten_antialiased_rgba_point);
}
@@ -254,9 +262,7 @@ _swrast_choose_point( GLcontext *ctx )
USE(atten_general_ci_point);
}
}
- else if ((ctx->Texture._EnabledCoordUnits
- || specular
- || swrast->_FogEnabled) && rgbMode) {
+ else if (attribs && rgbMode) {
/* textured, fogged */
USE(textured_rgba_point);
}
diff --git a/src/mesa/swrast/s_span.c b/src/mesa/swrast/s_span.c
index 9777391ded2..4ab6e2e9fbf 100644
--- a/src/mesa/swrast/s_span.c
+++ b/src/mesa/swrast/s_span.c
@@ -1,6 +1,6 @@
/*
* Mesa 3-D graphics library
- * Version: 6.5.3
+ * Version: 7.1
*
* Copyright (C) 1999-2007 Brian Paul All Rights Reserved.
*
@@ -1178,7 +1178,10 @@ shade_texture_span(GLcontext *ctx, SWspan *span)
if (span->primitive == GL_BITMAP && span->array->ChanType != GL_FLOAT) {
convert_color_type(span, GL_FLOAT, 0);
}
- interpolate_active_attribs(ctx, span, ~0);
+ if (span->primitive != GL_POINT) {
+ /* for points, we populated the arrays already */
+ interpolate_active_attribs(ctx, span, ~0);
+ }
span->array->ChanType = GL_FLOAT;
if (!(span->arrayMask & SPAN_Z))