-void _tnl_install_attrs( GLcontext *ctx, const struct dri_attr_map *map,
- GLuint nr, const GLfloat *vp )
-{
- struct dri_vertex_state *vtx = GET_VERTEX_STATE(ctx);
- int i;
-
- assert(nr < _TNL_ATTR_MAX);
-
- vtx->attr_count = nr;
- vtx->emit_func = choose_emit_func;
- vtx->interp_func = choose_interp_func;
- vtx->copy_color_func = choose_copy_color_func;
- vtx->get_attr_func = choose_get_attr_func;
-
- for (i = 0; i < nr; i++) {
- GLuint attrib = map[i].attrib;
- vtx->attr[i].attrib = map[i].attrib;
- vtx->attr[i].hw_format = map[i].hw_format;
- vtx->attr[i].vp = vp;
- vtx->attr[i].insert = attrib_info[attrib].insert;
- vtx->attr[i].extract = attrib_info[attrib].extract;
- vtx->attr[i].vertattrsize = attrib_info[attrib].attrsize;
- vtx->attr[i].vertoffset = offset;
- offset += attrib_info[attrib].attrsize;
+ a[j].inputptr = ((GLubyte *)vptr->data) + start * vptr->stride;
+ }
+
+ if (a->vp) {
+ vtx->vp_scale[0] = a->vp[MAT_SX];
+ vtx->vp_scale[1] = a->vp[MAT_SY];
+ vtx->vp_scale[2] = a->vp[MAT_SZ];
+ vtx->vp_scale[3] = 1.0;
+ vtx->vp_xlate[0] = a->vp[MAT_TX];
+ vtx->vp_xlate[1] = a->vp[MAT_TY];
+ vtx->vp_xlate[2] = a->vp[MAT_TZ];
+ vtx->vp_xlate[3] = 0.0;