H. Verbeet wrote:
On 17/06/06, Vitaly Budovski vbudovsk@cs.rmit.edu.au wrote:
Comments?
A few points:
- Taking only the first element of the declaration into account
seems unlikely to be correct
- Is there a reason you're using pDeclaration9 instead of
pDeclarationWine? It would be usefull if dx8 applications worked as well.
- Let's not dump large amounts of code in
IWineD3DDeviceImpl_SetVertexDeclaration
Ditto. I should note that fixing the fvf -> decl conversion seems rather important, because the FVF loading code will not work with a vertex shader at the moment - as far as I can see this will break 3 more demos, so that brings the count of broken demos up to 5 (ASCII, Sketch, RollerCoaster, dx9_hlsl_* (2) ). Those demos will set a shader, and then call SetFVF() afterwards (but primitiveConvertToStridedData will see that shader != NULL and will not do anything)
The current code has 2 routines - primitiveConvertToStridedData (for FVF) and primitiveDeclarationConvertToStridedData (for declaration). It seems as if the FVF should just be converted to a declaration when it is set, and a single function should be used afterwards. I could be wrong though, haven't looked at this in great detail yet...