diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/swrast_setup/ss_context.c | 3 | ||||
| -rw-r--r-- | src/mesa/tnl/t_vertex.c | 10 | 
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 ccf0eb3d28..3f6d29403c 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 c666b38742..6aae602037 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)); +   }  } | 
