2009/12/22 Stefan Dösinger stefan@codeweavers.com:
- conv = ((FVF & WINED3DFVF_POSITION_MASK) == WINED3DFVF_XYZRHW ) || (FVF & (WINED3DFVF_DIFFUSE | WINED3DFVF_SPECULAR)); hr = buffer_init(object, This, Size, Usage, WINED3DFMT_VERTEXDATA,
Pool, GL_ARRAY_BUFFER_ARB, NULL, parent, parent_ops);
Pool, GL_ARRAY_BUFFER_ARB, NULL, parent, parent_ops, conv);
This looks questionable, we use the FVF to determine that the buffer is going to need conversion, but don't pass that FVF to the buffer itself? Shouldn't this just use the existing code in buffer.c to determine when we need conversion in the first place, and just drop the VBO when the overhead becomes too large? Note that if we have EXT_vertex_array_bgra we don't need conversion for the color data in the first place.