summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian <brian@yutani.localnet.net>2007-05-02 12:06:43 -0600
committerBrian <brian@yutani.localnet.net>2007-05-02 12:06:43 -0600
commit5c1b53d58de68582c378e28fbb2fe4c0277139a9 (patch)
tree60e63cdb4e65e274bdf3e084967f907d867329a9 /src
parentb2f1d6422bee5b08513ae83eb4903c0e20593266 (diff)
Document a deficiency in the _swrast_Translate() function with regard to point size.
Diffstat (limited to 'src')
-rw-r--r--src/mesa/swrast_setup/ss_context.c3
-rw-r--r--src/mesa/tnl/t_vertex.c10
2 files changed, 11 insertions, 2 deletions
diff --git a/src/mesa/swrast_setup/ss_context.c b/src/mesa/swrast_setup/ss_context.c
index ccf0eb3d28c..3f6d29403cc 100644
--- a/src/mesa/swrast_setup/ss_context.c
+++ b/src/mesa/swrast_setup/ss_context.c
@@ -263,7 +263,7 @@ _swsetup_Translate( GLcontext *ctx, const void *vertex, SWvertex *dest )
dest->win[2] = m[10] * tmp[2] + m[14];
dest->win[3] = tmp[3];
-
+ /** XXX try to limit these loops someday */
for (i = 0 ; i < ctx->Const.MaxTextureCoordUnits ; i++)
_tnl_get_attr( ctx, vertex, _TNL_ATTRIB_TEX0+i,
dest->attrib[FRAG_ATTRIB_TEX0 + i] );
@@ -284,6 +284,7 @@ _swsetup_Translate( GLcontext *ctx, const void *vertex, SWvertex *dest )
_tnl_get_attr( ctx, vertex, _TNL_ATTRIB_COLOR_INDEX, tmp );
dest->index = tmp[0];
+ /* XXX See _tnl_get_attr about pointsize ... */
_tnl_get_attr( ctx, vertex, _TNL_ATTRIB_POINTSIZE, tmp );
dest->pointSize = tmp[0];
}
diff --git a/src/mesa/tnl/t_vertex.c b/src/mesa/tnl/t_vertex.c
index c666b387422..6aae6020375 100644
--- a/src/mesa/tnl/t_vertex.c
+++ b/src/mesa/tnl/t_vertex.c
@@ -229,7 +229,15 @@ void _tnl_get_attr( GLcontext *ctx, const void *vin,
/* Else return the value from ctx->Current.
*/
- _mesa_memcpy( dest, ctx->Current.Attrib[attr], 4*sizeof(GLfloat));
+ if (attr == _TNL_ATTRIB_POINTSIZE) {
+ /* If the hardware vertex doesn't have point size then use size from
+ * GLcontext. XXX this will be wrong if drawing attenuated points!
+ */
+ dest[0] = ctx->Point._Size;
+ }
+ else {
+ _mesa_memcpy( dest, ctx->Current.Attrib[attr], 4*sizeof(GLfloat));
+ }
}