Stefan Dösinger wrote:
You can also try to QueryInterface old IDirect3DDevice* versions from IDirect3DDevice7, but I think this doesn't work as the COM theory says on Windows. I haven't yet tested the restrictions and implemented them because I haven't seen a game yet that depends on them.
Yes, I think it doesn't run on Windows, IIRC that was the first thing I tried. At least this is so for XP, which itself is partly broken in DX6 and less support though, from what I see (e.g. AVP1 3D engine is broken).
Just one more question - I'm looking into this hr==D3D_OK vs SUCCEEDED(hr) thing and there appears to be some problems with consistency. In ddraw/tests/visual.c I see both hr==D3D_OK and SUCCEEDED, in one place even result of BeginScene are checked as hr==D3D_OK, so it's somewhat confusing. How do I tell, generally, what to use for ok(), if() etc, hr==D3D_OK or SUCCEDED? Do all checks ultimately need to be turned into SUCCEEDED or it's just that some of the calls have been found to return undocumented values other than D3D_OK, but are no errors?