[1/5] WineD3D: Fall back to drawStridedSlow if fog coords are used

Stefan Dösinger stefandoesinger at gmx.at
Thu Aug 23 05:07:35 CDT 2007


> This patch is probably fine, but it makes me look into the surrounding
> code [ software blending, changing the strided data ], which is still
> incredibly misleading. That should go into its own function, with the
> FIXVBO macro removed (since all such macros are evil, without
> exception), and a big comment should be added that named access to the
> strided data is only valid in the fixed function pipeline and will not
> work in the shader pipeline.  Maybe it makes sense to use two different
> structures to make this clearer - not sure.
Yes, I think you're right about the macro, a function and a comment. I will 
make a patch for this. As for the separate structure for named and numbered 
attribs I am not sure either. We might need extra checks for useVS, but in 
theory we shouldn't because code that would need them is broken, since it 
either uses named access with shaders, or numbered access with fixed 
function.

Another thing to consider is getting rid of the strided vertex structure 
altogether. I am not sure if it will work, or improve things. It may make the 
code simpler and faster to use the vdecl directory, but otoh there's 
IDirect3DDevice7::DrawPrimitiveStrided. We could handle that call with a bit 
of memcpy() calling, this method is hardly used(only one dx sdk sample, and 
the Ogre based 3D games. Ogre has a gl renderer too).



More information about the wine-devel mailing list