H. Verbeet wrote:
On 03/07/06, Ivan Gyurdiev ivg231@gmail.com wrote:
That's not particularly important.
Well, it breaks color fixups :-)
...color fixups will go in their own function that does this differently for 8 vs 9
BOOL vshader_input_is_color( IWineD3DVertexShader* iface, unsigned int regnum);
Something that has texcoord semantics doesn't necessarily have to contain texture coordinates, but it should contain something that has the same semantics.
Now you're talking semantics, and have me totally confused :)
"semantics" is just a word for some kind of handling you apply. In our case the handling will be a key relationship to the vshader input table.
Color fixups will be handled differently in any case, and if we can have a shared point for loading arrays then I think we should take advantage of that. I really thing more reusability is needed - just because something works slightly different does not mean it should be completely rewritten - that's the approach that everyone seems to be taking. Otherwise, how do you explain striking similarity between drawStridedSlow, the (disabled) drawSoftwareVS thing, process_vertices in device.c, fixups in vertexbuffer.... etc [ all of which have to be changed now to deal with different strided data format ]