Hi,
On Friday 28 October 2005 23:34, Stefan Dösinger wrote:
Hello, I think I got the DrawIndexedPrimitiveVB going now(my tracing suggests this), and now I've hit ProcessVertices(). As someone mentioned allready, this is a complex call, and it isn't implemented in DX7, DX8 or WineD3D.
The better way is to implement it using Vertex Shader. Anyway you can provide a "software emulation" using a pre-compiled IWineD3DVertexBuffer (you will be supported by wine on HW in few time, when we'll submit support for vbo extension) (Sorry i have no time now to commit it, maybe Oliver...)
One other Question: How slow is DrawStridedSlow? WineD3D uses it because of the diffuse ans specular colors. Currently I get only one useable vertex into DrawIndexedPrimitiveVB from ProcessVertices, the other 5 to draw have their values zeroed. Without drawing anything I get 70 fps(screen refresh rate, expected), with the 6 Vertices I get 1.5 fps. Is this normal for DrawStridedSlow()? Might this be because of drawing 2 triangles with useless vertices? Or might something else be wrong?
Yes it's really slow (and usefull for debugging but we use it too many times). but many of the slow cases can be (another time) supported by DrawStridedFast when vbo support will come.
Example: for specular/diffuse color, whe can adapt VB strided content to OpenGL format on Unlock and restore D3D content on Lock if we have an VB on input who should be the majority of the cases.
Stefan
Keep the god job :)
Regards, Raphael