Document a deficiency in the _swrast_Translate() function with regard to point size.

This commit is contained in:
Brian
2007-05-02 12:06:43 -06:00
parent b2f1d6422b
commit 5c1b53d58d
2 changed files with 11 additions and 2 deletions
+2 -1
View File
@@ -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];
}
+9 -1
View File
@@ -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));
}
}