wined3d: declaration/FVF conversion test
Ivan Gyurdiev
ivg231 at gmail.com
Sat Jun 17 22:19:43 CDT 2006
Ivan Gyurdiev wrote:
> H. Verbeet wrote:
>> On 17/06/06, Vitaly Budovski <vbudovsk at 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)
Ok I kind of lied here - those demos will not be fixed since they use
the DrawPrimitiveUP function, which works differently. However, there
are certainly demos which follow this pattern:
- setStreamSource[0]
- setVertexShader
- setFVF
- drawPrimitive or drawIndexedPrimitive (not UP variant).
and those currently fail, because that case isn't handled at all in the
FVF loading code. It thinks this is a multi-stream case, when in fact
only the 0th stream is used. Jason Green has a demo -
dx9_hdr_texture_loader, which is broken exactly by this.
Instead of changing the FVF loading code, however, we should just
translate it to a vertex declaration, and use the decl loading code.
More information about the wine-devel
mailing list