Stefan Dösinger stefan@codeweavers.com writes:
The explicit request of DDSCAPS_VIDEOMEMORY is needed to work around two bugs in Wine's ddraw that are not the concern of this test: If neither SYSTEMMEMORY nor VIDEOMEMORY are requested we use SYSTEMMEMORY for P8 surfaces because check_device_format fails. The next patch addresses this. The second problem is that we do not lose system memory surfaces on SetCooperativeLevel even though we should. (We should at least lose primaries. I haven't checked offscreen or texture surfaces.)
I don't feel strongly about having this test included. I'm happy with just sending it as a documentation that SetCooperativeLevel does not have to restore the palette. If the DDSCAPS_VIDEOMEMORY is considered ugly, or the fix in the next patch wrong just ignore the patches. I do not know any game that depends on the behavior tested here or the behavior changed in the next patch.
dlls/ddraw/tests/ddraw1.c | 141 +++++++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw2.c | 141 +++++++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw4.c | 141 +++++++++++++++++++++++++++++++++++++++++++ dlls/ddraw/tests/ddraw7.c | 150 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 573 insertions(+)
It doesn't work here:
../../../tools/runtest -q -P wine -T ../../.. -M ddraw.dll -p ddraw_test.exe.so ddraw1 && touch ddraw1.ok ddraw1.c:5694: Test failed: Got unexpected hr 0. ddraw1.c:5696: Test failed: Got unexpected hr 0.