fix an attr/src mix-up when setting-up/binding vertex arrays
This fixes problems with incorrect material coefficients when glMaterial is called per-vertex.
This commit is contained in:
parent
5f6a726d9f
commit
ffbd455a36
|
@ -198,7 +198,7 @@ static void vbo_exec_bind_arrays( GLcontext *ctx )
|
|||
arrays[attr].BufferObj = exec->vtx.bufferobj;
|
||||
arrays[attr]._MaxElement = count; /* ??? */
|
||||
|
||||
data += exec->vtx.attrsz[attr] * sizeof(GLfloat);
|
||||
data += exec->vtx.attrsz[src] * sizeof(GLfloat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,10 +131,12 @@ static void vbo_bind_vertex_list( GLcontext *ctx,
|
|||
break;
|
||||
}
|
||||
|
||||
for (attr = 0; attr < VBO_ATTRIB_MAX; attr++) {
|
||||
if (node->attrsz[attr]) {
|
||||
for (attr = 0; attr < VERT_ATTRIB_MAX; attr++) {
|
||||
GLuint src = map[attr];
|
||||
|
||||
if (node->attrsz[src]) {
|
||||
arrays[attr].Ptr = (const GLubyte *)data;
|
||||
arrays[attr].Size = node->attrsz[attr];
|
||||
arrays[attr].Size = node->attrsz[src];
|
||||
arrays[attr].StrideB = node->vertex_size * sizeof(GLfloat);
|
||||
arrays[attr].Stride = node->vertex_size * sizeof(GLfloat);
|
||||
arrays[attr].Type = GL_FLOAT;
|
||||
|
@ -144,7 +146,7 @@ static void vbo_bind_vertex_list( GLcontext *ctx,
|
|||
|
||||
assert(arrays[attr].BufferObj->Name);
|
||||
|
||||
data += node->attrsz[attr] * sizeof(GLfloat);
|
||||
data += node->attrsz[src] * sizeof(GLfloat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue