- added function DirectDrawEnumerateEx

- added (or corrected) check for the return value of the enumeration functions
This commit is contained in:
Lionel Ulmer 1999-02-28 19:49:42 +00:00 committed by Alexandre Julliard
parent 5c08570489
commit 4d4b5a9a2f
2 changed files with 68 additions and 21 deletions

View File

@ -129,14 +129,59 @@ DDRAW_DGA_Available(void)
HRESULT WINAPI HRESULT WINAPI
DirectDrawEnumerateA(LPDDENUMCALLBACKA ddenumproc,LPVOID data) { DirectDrawEnumerateA(LPDDENUMCALLBACKA ddenumproc,LPVOID data) {
TRACE(ddraw, "(%p,%p)\n", ddenumproc, data);
if (DDRAW_DGA_Available()) { if (DDRAW_DGA_Available()) {
TRACE(ddraw, "Enumerating DGA interface\n"); TRACE(ddraw, "Enumerating DGA interface\n");
ddenumproc(&DGA_DirectDraw_GUID,"WINE with XFree86 DGA","display",data); if (!ddenumproc(&DGA_DirectDraw_GUID,"WINE with XFree86 DGA","display",data))
return DD_OK;
} }
TRACE(ddraw, "Enumerating Xlib interface\n"); TRACE(ddraw, "Enumerating Xlib interface\n");
ddenumproc(&XLIB_DirectDraw_GUID,"WINE with Xlib","display",data); if (!ddenumproc(&XLIB_DirectDraw_GUID,"WINE with Xlib","display",data))
return DD_OK;
TRACE(ddraw, "Enumerating Default interface\n"); TRACE(ddraw, "Enumerating Default interface\n");
ddenumproc(NULL,"WINE (default)","display",data); if (!ddenumproc(NULL,"WINE (default)","display",data))
return DD_OK;
return DD_OK;
}
HRESULT WINAPI
DirectDrawEnumerateExA(LPDDENUMCALLBACKEXA ddenumproc,LPVOID data, DWORD dwFlags) {
TRACE(ddraw, "(%p,%p, %08lx)\n", ddenumproc, data, dwFlags);
if (TRACE_ON(ddraw)) {
DUMP(" Flags : ");
if (dwFlags & DDENUM_ATTACHEDSECONDARYDEVICES)
DUMP("DDENUM_ATTACHEDSECONDARYDEVICES ");
if (dwFlags & DDENUM_DETACHEDSECONDARYDEVICES)
DUMP("DDENUM_DETACHEDSECONDARYDEVICES ");
if (dwFlags & DDENUM_NONDISPLAYDEVICES)
DUMP("DDENUM_NONDISPLAYDEVICES ");
DUMP("\n");
}
if (dwFlags & DDENUM_NONDISPLAYDEVICES) {
/* For the moment, Wine does not support any 3D only accelerators */
return DD_OK;
}
if (DDRAW_DGA_Available()) {
TRACE(ddraw, "Enumerating DGA interface\n");
if (!ddenumproc(&DGA_DirectDraw_GUID,"WINE with XFree86 DGA","display",data, NULL))
return DD_OK;
}
TRACE(ddraw, "Enumerating Xlib interface\n");
if (!ddenumproc(&XLIB_DirectDraw_GUID,"WINE with Xlib","display",data, NULL))
return DD_OK;
TRACE(ddraw, "Enumerating Default interface\n");
if (!ddenumproc(NULL,"WINE (default)","display",data, NULL))
return DD_OK;
return DD_OK; return DD_OK;
} }
@ -1983,7 +2028,7 @@ static HRESULT WINAPI IDirect3D_EnumDevices(LPDIRECT3D this,
FIXME(ddraw,"(%p)->(%p,%p),stub!\n",this,cb,context); FIXME(ddraw,"(%p)->(%p,%p),stub!\n",this,cb,context);
/* Call functions defined in d3ddevices.c */ /* Call functions defined in d3ddevices.c */
if (d3d_OpenGL_dx3(cb, context)) if (!d3d_OpenGL_dx3(cb, context))
return DD_OK; return DD_OK;
return DD_OK; return DD_OK;
@ -2080,7 +2125,7 @@ static HRESULT WINAPI IDirect3D2_EnumDevices(
FIXME(ddraw,"(%p)->(%p,%p),stub!\n",this,cb,context); FIXME(ddraw,"(%p)->(%p,%p),stub!\n",this,cb,context);
/* Call functions defined in d3ddevices.c */ /* Call functions defined in d3ddevices.c */
if (d3d_OpenGL(cb, context)) if (!d3d_OpenGL(cb, context))
return DD_OK; return DD_OK;
return DD_OK; return DD_OK;

View File

@ -10,19 +10,21 @@ type win32
7 stdcall DirectDrawCreateClipper(long ptr ptr) DirectDrawCreateClipper 7 stdcall DirectDrawCreateClipper(long ptr ptr) DirectDrawCreateClipper
8 stdcall DirectDrawEnumerateA(ptr ptr) DirectDrawEnumerateA 8 stdcall DirectDrawEnumerateA(ptr ptr) DirectDrawEnumerateA
9 stub DirectDrawEnumerateW 9 stub DirectDrawEnumerateW
10 stub DllCanUnloadNow 10 stdcall DirectDrawEnumerateExA(ptr ptr long) DirectDrawEnumerateExA
11 stub DllGetClassObject 11 stub DirectDrawEnumerateExW
12 stub GetNextMipMap 12 stub DllCanUnloadNow
13 stub GetSurfaceFromDC 13 stub DllGetClassObject
14 stub HeapVidMemAllocAligned 14 stub GetNextMipMap
15 stub InternalLock 15 stub GetSurfaceFromDC
16 stub InternalUnlock 16 stub HeapVidMemAllocAligned
17 stub LateAllocateSurfaceMem 17 stub InternalLock
18 stub VidMemAlloc 18 stub InternalUnlock
19 stub VidMemAmountFree 19 stub LateAllocateSurfaceMem
20 stub VidMemFini 20 stub VidMemAlloc
21 stub VidMemFree 21 stub VidMemAmountFree
22 stub VidMemInit 22 stub VidMemFini
23 stub VidMemLargestFree 23 stub VidMemFree
24 stub thk1632_ThunkData32 24 stub VidMemInit
25 stub thk3216_ThunkData32 25 stub VidMemLargestFree
26 stub thk1632_ThunkData32
27 stub thk3216_ThunkData32