{
GLcontext *ctx = exec->ctx;
struct vbo_context *vbo = vbo_context(ctx);
GLuint i;
for (i = VBO_ATTRIB_POS+1 ; i < VBO_ATTRIB_MAX ; i++) {
if (exec->vtx.attrsz[i]) {
GLfloat *current = (GLfloat *)vbo->currval[i].Ptr;
/* Note: the exec->vtx.current[i] pointers point into the * ctx->Current.Attrib and ctx->Light.Material.Attrib arrays. */if (exec->vtx.attrptr[i]) {
COPY_CLEAN_4V(current,
exec->vtx.attrsz[i],
exec->vtx.attrptr[i]);
}
/* Given that we explicitly state size here, there is no need * for the COPY_CLEAN above, could just copy 16 bytes and be * done. The only problem is when Mesa accesses ctx->Current * directly. */
vbo->currval[i].Size = exec->vtx.attrsz[i];
/* This triggers rather too much recalculation of Mesa state * that doesn't get used (eg light positions). */if (i >= VBO_ATTRIB_MAT_FRONT_AMBIENT &&
i <= VBO_ATTRIB_MAT_BACK_INDEXES)
ctx->NewState |= _NEW_LIGHT;
}
}
/* Colormaterial -- this kindof sucks. */if (ctx->Light.ColorMaterialEnabled &&
exec->vtx.attrsz[VBO_ATTRIB_COLOR0]) {
_mesa_update_color_material(ctx,
ctx->Current.Attrib[VBO_ATTRIB_COLOR0]);
}
ctx->Driver.NeedFlush &= ~FLUSH_UPDATE_CURRENT;
}
Generated on Sat May 26 2012 04:58:43 for ReactOS by
1.7.6.1
ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.