Am 30.09.2009 um 16:47 schrieb Henri Verbeet:
009/9/30 Stefan Dösinger stefandoesinger@gmx.at:
Are the patches ok with you in that case? Otherwise I'll just fix bug 19365 with the old dxVersion hack and implement whatever properly designed setup you prefer the next time I have a few hours to kill(read: On my 16 hour flight to the google mentor summit later next month)
Just fix 19365 with a dxVersion check I'd say, that bug has been in its current state long enough.
OK
that still leaves the question how to get rid of dxVersion in the long run open
We could use the global flags as my patches here do. (I attached the full set for reference)
Or we could use API specific flags that are placed close to where the difference occurs(ie, a CreateVertexBuffer flag(or a classic usage flag that is filtered by d3d8/9). Easy for 4, 5, 8, 9, but is more tricky for 2, 3 and 6(flag has to be set during object creation)
4 and 9 could be handled in the client lib as well. For patch 9 we'd have to duplicate the stateblock logic in ddraw (or d3d8+d3d9) to make GetViewport work correctly during BeginStateblock() - SetRenderTarget - EndStateblock.