On Tuesday 15 November 2011 15:19:20 Henri Verbeet wrote:
(E.g. does calling SetSurfaceDesc() with the original surface desc work?
That's a reasonable thing to test, I'll add it to the test(The answer is no, you can't set the original surface desc).
What about bits not in DDSD_ALL? Etc.)
I forgot a test that shows that SetSurfaceDesc is valid only on systemmem surfaces(as the msdn claims). The flags I tested are those that make sense on systemmem surfaces.
I don't think testing the other bits without an app that uses them is a good idea. The YV12 blitting issue from yesterday was a reminder of that - in corner cases like that you probably get 3 different results on 3 different systems and have to explain them.
I'm working on adding a test for various pools and plain surfaces vs textures.
Also, as a general principle, I'd be happier about the ddraw tests if they actually tested all the different interface versions.
In principle I agree, but handling this on a per-test basis won't work. The behavior doesn't just depend on the interface version you call, but also the version with which the object was created(see e.g. surface::GetDDInterface, ddraw::QueryInterface). To properly test the version differences you have to create all versions and QI all versions from each of them and run the tests on those interfaces.
For that reason I'm currently ignoring the interface versions unless the API makes differences likely(e.g. DDSURFACEDESC.dwSize) or an application depends on version specific behavior(e.g. refcounting).