Ah, I thought this was going a bit too well ;) I'll fix the issues and send it in again. Regarding a fix, would something as simple as the following be acceptable?
(in dlls/ddraw/direct3d.c) @@ -263,6 +263,12 @@ IDirect3DImpl_7_EnumDevices(IDirect3D7 *iface, return hr; } Callback(interface_name, device_name, &ddesc, Context); + + ddesc.deviceGUID = IID_IDirect3DHALDevice; + Callback(interface_name, device_name, &ddesc, Context); + + ddesc.deviceGUID = IID_IDirect3DRGBDevice; + Callback(interface_name, device_name, &ddesc, Context); [..] If so, I'll wrap it up together with the tests. Thanks for the guidance, David On 9/7/07, Stefan Dösinger <[EMAIL PROTECTED]> wrote: > Am Donnerstag, 6. September 2007 16:02:59 schrieb David Hedberg: > > This patch adds tests to check the devices enumerated by > > IDirect3D7_EnumDevices . At least two games rely on the behavior > > tested by one of the test in this patch. > If wine behaves incorrectly and your test fails on wine, you have to send a > fix before or in the same patch as the test. Alexandre has some scripts that > run the conformance tests after each patch and refuses all patches that cause > in test failures. > > If you do not know how to fix the bug, or want to keep it unfixed for some > other reason(e.g. the incorrect behavior is hard to fix and considered > harmless), then you can mark the test as todo_wine. Then the tests script > will ignore failures in the test. However, Alexandre will drop a note and ask > for further explanation if a test marked todo_wine succeeds(e.g. we had a > test that succeeded or failed for some time based on the features graphics > driver). > > todo_wine test(2 + 2 == 3.99998, "This is my test marked as TODO\n"); /* > Microsoft does something insane here */ > > Other things: > + if(!memcmp(&lpdd7->deviceGUID, &IID_IDirect3DRGBDevice, > sizeof(IID_IDirect3DRGBDevice))) > > You can use IsEqualGUID here. Sorry for not spotting this earlier. > > + IDirect3D7_EnumDevices(lpD3D, (LPD3DENUMDEVICESCALLBACK7) > enumDevicesCallbackTest7, &d3d7et); > To get more compiler checks, you shouldn't cast the function to the right > type, but use void *d3d7et, and cast it to the right pointer in your > function. Debugging a wrong function pointer is a nasty thing ;-) > > >