Some cosmetic changes like replacing tabs with spaces and grouping all stubs together.

svn path=/trunk/; revision=18925
This commit is contained in:
Maarten Bosma 2005-11-01 11:32:35 +00:00
parent e72a06483d
commit abdfa2a93b
2 changed files with 610 additions and 640 deletions

View file

@ -15,317 +15,296 @@ HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
/* point to it self */
This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal;
/* point to it self */
This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal;
/* get the object */
if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc))
return DDERR_INVALIDPARAMS;
/* get the object */
if(!DdCreateDirectDrawObject (&This->DirectDrawGlobal, This->hdc))
return DDERR_INVALIDPARAMS;
/* alloc all the space */
This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDHAL_CALLBACKS));
/* alloc all the space */
This->DirectDrawGlobal.lpDDCBtmp = (LPDDHAL_CALLBACKS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDHAL_CALLBACKS));
This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS));
This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS));
This->DirectDrawGlobal.lpD3DGlobalDriverData = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_GLOBALDRIVERDATA));
/* Fill in some info */
This->HalInfo.lpD3DGlobalDriverData = This->DirectDrawGlobal.lpD3DGlobalDriverData;
This->HalInfo.lpD3DHALCallbacks = This->DirectDrawGlobal.lpD3DHALCallbacks;
This->HalInfo.lpDDCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDD;
This->HalInfo.lpDDExeBufCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf;
This->HalInfo.lpDDPaletteCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette;
This->HalInfo.lpDDSurfaceCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface;
/* query all kinds of infos from the driver */
if(!DdQueryDirectDrawObject (
&This->DirectDrawGlobal,
&This->HalInfo,
This->HalInfo.lpDDCallbacks,
This->HalInfo.lpDDSurfaceCallbacks,
This->HalInfo.lpDDPaletteCallbacks,
(LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks,
(LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData,
This->HalInfo.lpDDExeBufCallbacks,
NULL,
NULL,
NULL ))
{
return DD_FALSE;
}
This->HalInfo.vmiData.pvmList = (LPVIDMEM) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
This->DirectDrawGlobal.lpD3DGlobalDriverData = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_GLOBALDRIVERDATA));
/* Fill in some info */
This->HalInfo.lpD3DGlobalDriverData = This->DirectDrawGlobal.lpD3DGlobalDriverData;
This->HalInfo.lpD3DHALCallbacks = This->DirectDrawGlobal.lpD3DHALCallbacks;
This->HalInfo.lpDDCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDD;
This->HalInfo.lpDDExeBufCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf;
This->HalInfo.lpDDPaletteCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDPalette;
This->HalInfo.lpDDSurfaceCallbacks = &This->DirectDrawGlobal.lpDDCBtmp->HALDDSurface;
/* query all kinds of infos from the driver */
if(!DdQueryDirectDrawObject (
&This->DirectDrawGlobal,
&This->HalInfo,
This->HalInfo.lpDDCallbacks,
This->HalInfo.lpDDSurfaceCallbacks,
This->HalInfo.lpDDPaletteCallbacks,
(LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks,
(LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData,
This->HalInfo.lpDDExeBufCallbacks,
NULL,
NULL,
NULL ))
{
return DD_FALSE;
}
This->HalInfo.vmiData.pvmList = (LPVIDMEM) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
This->DirectDrawGlobal.lpdwFourCC = (DWORD *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats =
(LPDDSURFACEDESC) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC) *
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->dwNumTextureFormats);
This->DirectDrawGlobal.lpdwFourCC = (DWORD *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats =
(LPDDSURFACEDESC) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DDSURFACEDESC) *
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->dwNumTextureFormats);
if(!DdQueryDirectDrawObject (
&This->DirectDrawGlobal,
&This->HalInfo,
This->HalInfo.lpDDCallbacks,
This->HalInfo.lpDDSurfaceCallbacks,
This->HalInfo.lpDDPaletteCallbacks,
(LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks,
(LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData,
This->HalInfo.lpDDExeBufCallbacks,
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats,
This->DirectDrawGlobal.lpdwFourCC,
This->HalInfo.vmiData.pvmList
))
{
return DD_FALSE;
}
/* Copy HalInfo to DirectDrawGlobal (Not complete)*/
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,sizeof(VIDMEMINFO));
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeof(DDCORECAPS));
This->DirectDrawGlobal.dwMonitorFrequency = This->HalInfo.dwMonitorFrequency;
if(!DdQueryDirectDrawObject (
&This->DirectDrawGlobal,
&This->HalInfo,
This->HalInfo.lpDDCallbacks,
This->HalInfo.lpDDSurfaceCallbacks,
This->HalInfo.lpDDPaletteCallbacks,
(LPD3DHAL_CALLBACKS)This->DirectDrawGlobal.lpD3DHALCallbacks,
(LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData,
This->HalInfo.lpDDExeBufCallbacks,
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats,
This->DirectDrawGlobal.lpdwFourCC,
This->HalInfo.vmiData.pvmList
))
{
return DD_FALSE;
}
/* Copy HalInfo to DirectDrawGlobal (Not complete)*/
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,sizeof(VIDMEMINFO));
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeof(DDCORECAPS));
This->DirectDrawGlobal.dwMonitorFrequency = This->HalInfo.dwMonitorFrequency;
This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex;
This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes;
This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo;
/* Unsure which of these two for lpPDevice
/* Unsure which of these two for lpPDevice
This->DirectDrawGlobal.dwPDevice = This->HalInfo.lpPDevice;
This->lpDriverHandle = This->HalInfo.lpPDevice;
*/
This->lpDriverHandle = This->HalInfo.lpPDevice;
*/
This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance;
RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,
&This->HalInfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS));
RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,&This->HalInfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS));
/************************************************************************/
/* Set up the rest of the callbacks all callbacks we get back from */
/* gdi32.dll is user mode */
/************************************************************************/
/************************************************************************/
/* Set up the rest of the callbacks all callbacks we get back from */
/* gdi32.dll is user mode */
/************************************************************************/
/* Todo add a check see if HalInfo.GetDriverInfo is supported or not */
/* Do not trust msdn what it say about dwContext it is not in use for
windows nt, it is in use for all os, and it always pont to
DirectDrawGlobal.hDD */
/* Todo add a check see if HalInfo.GetDriverInfo is supported or not */
/* FIXME add all callback that have been commect out to gpl */
/* FIXME free the memmor that being alloc when ddraw.dll exists */
/* FIXME add check for DriverInfo if the handle or not */
/* Do not trust msdn what it say about dwContext it is not in use for
windows nt, it is in use for all os, and it always pont to
DirectDrawGlobal.hDD */
DDHAL_GETDRIVERINFODATA DriverInfo;
memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA));
DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA);
DriverInfo.dwContext = This->DirectDrawGlobal.hDD;
/* FIXME add all callback that have been commect out to gpl */
/* FIXME free the memmor that being alloc when ddraw.dll exists */
/* FIXME add check for DriverInfo if the handle or not */
DDHAL_GETDRIVERINFODATA DriverInfo;
memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA));
DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA);
DriverInfo.dwContext = This->DirectDrawGlobal.hDD;
/* Get ColorControlCallbacks */
DriverInfo.guidInfo = GUID_ColorControlCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDColorControl;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDCOLORCONTROLCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the GUID_D3DCallbacks callback */
/* Problem with include files
DDHAL_DDMISCELLANEOUSCALLBACKS misc;
DriverInfo.guidInfo = GUID_D3DCallbacks;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);*/
/* Get the D3DCallbacks2 */
This->DirectDrawGlobal.lpD3DHALCallbacks2 = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS2));
DriverInfo.guidInfo = GUID_D3DCallbacks2;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks2;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the D3DCallbacks3 */
This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS3));
DriverInfo.guidInfo = GUID_D3DCallbacks3;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS3);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the misc callback */
/* Problem with include files
DriverInfo.guidInfo = GUID_D3DCaps;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the D3DExtendedCaps */
This->DirectDrawGlobal.lpD3DExtendedCaps = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_D3DEXTENDEDCAPS));
DriverInfo.guidInfo = GUID_D3DExtendedCaps;
DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpD3DExtendedCaps;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get ColorControlCallbacks */
DriverInfo.guidInfo = GUID_ColorControlCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDColorControl;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDCOLORCONTROLCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the GUID_D3DCallbacks callback */
/* Problem with include files
DDHAL_DDMISCELLANEOUSCALLBACKS misc;
DriverInfo.guidInfo = GUID_D3DCallbacks;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);*/
/* Get the D3DCallbacks2 */
This->DirectDrawGlobal.lpD3DHALCallbacks2 = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS2));
DriverInfo.guidInfo = GUID_D3DCallbacks2;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks2;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS2);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the D3DParseUnknownCommandCallback */
/* D3dDrawPrimitives2 callback where should it be fill in
DriverInfo.guidInfo = GUID_D3DParseUnknownCommandCallback;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the D3DCallbacks3 */
This->DirectDrawGlobal.lpD3DHALCallbacks = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_CALLBACKS3));
DriverInfo.guidInfo = GUID_D3DCallbacks3;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_CALLBACKS3);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the misc callback */
/* Problem with include files
DriverInfo.guidInfo = GUID_D3DCaps;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the GetHeapAlignment */
/* where should it be fill in
DriverInfo.guidInfo = GUID_GetHeapAlignment;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the KernelCallbacks */
DriverInfo.guidInfo = GUID_KernelCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDKernel;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the KernelCaps */
This->DirectDrawGlobal.lpDDKernelCaps = (LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDHAL_DDKERNELCALLBACKS));
DriverInfo.guidInfo = GUID_KernelCaps;
DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpDDKernelCaps;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the MiscellaneousCallbacks */
DriverInfo.guidInfo = GUID_MiscellaneousCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the Miscellaneous2Callbacks */
/* Not in the DDRAWI_DIRECTDRAW_GBL we map it up as private
Contain CreatesurfaceEx and other nice callbacks */
DriverInfo.guidInfo = GUID_Miscellaneous2Callbacks;
DriverInfo.lpvData = &This->Misc2Callback;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the D3DExtendedCaps */
This->DirectDrawGlobal.lpD3DExtendedCaps = (ULONG_PTR)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(D3DHAL_D3DEXTENDEDCAPS));
DriverInfo.guidInfo = GUID_D3DExtendedCaps;
DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpD3DExtendedCaps;
DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the MotionCompCallbacks */
DriverInfo.guidInfo = GUID_MotionCompCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMotionComp;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMOTIONCOMPCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the D3DParseUnknownCommandCallback */
/* D3dDrawPrimitives2 callback where should it be fill in
DriverInfo.guidInfo = GUID_D3DParseUnknownCommandCallback;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the GetHeapAlignment */
/* where should it be fill in
DriverInfo.guidInfo = GUID_GetHeapAlignment;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the KernelCallbacks */
DriverInfo.guidInfo = GUID_KernelCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDKernel;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the KernelCaps */
This->DirectDrawGlobal.lpDDKernelCaps = (LPDDKERNELCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDHAL_DDKERNELCALLBACKS));
DriverInfo.guidInfo = GUID_KernelCaps;
DriverInfo.lpvData = (PVOID) This->DirectDrawGlobal.lpDDKernelCaps;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDKERNELCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the MiscellaneousCallbacks */
DriverInfo.guidInfo = GUID_MiscellaneousCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the Miscellaneous2Callbacks */
/* Not in the DDRAWI_DIRECTDRAW_GBL we map it up as private
Contain CreatesurfaceEx and other nice callbacks */
DriverInfo.guidInfo = GUID_Miscellaneous2Callbacks;
DriverInfo.lpvData = &This->Misc2Callback;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the MotionCompCallbacks */
DriverInfo.guidInfo = GUID_MotionCompCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDMotionComp;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMOTIONCOMPCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the NonLocalVidMemCaps */
This->DirectDrawGlobal.lpddNLVCaps = (LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDNONLOCALVIDMEMCAPS));
DriverInfo.guidInfo = GUID_NonLocalVidMemCaps;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpddNLVCaps;
DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS);
This->HalInfo.GetDriverInfo( &DriverInfo);
This->DirectDrawGlobal.lpddNLVCaps = (LPDDNONLOCALVIDMEMCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDNONLOCALVIDMEMCAPS));
DriverInfo.guidInfo = GUID_NonLocalVidMemCaps;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpddNLVCaps;
DriverInfo.dwExpectedSize = sizeof(DDNONLOCALVIDMEMCAPS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the NTCallbacks */
/* Fill in wher
DriverInfo.guidInfo = GUID_NTCallbacks;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the NTPrivateDriverCaps */
/* Fill in wher
DriverInfo.guidInfo = GUID_NTPrivateDriverCaps;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the UpdateNonLocalHeap */
/* Fill in where
DriverInfo.guidInfo = GUID_UpdateNonLocalHeap;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the VideoPortCallbacks */
DriverInfo.guidInfo = GUID_VideoPortCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDVideoPort;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDVIDEOPORTCALLBACKS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the VideoPortCaps */
This->DirectDrawGlobal.lpDDVideoPortCaps = (LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDVIDEOPORTCAPS));
DriverInfo.guidInfo = GUID_VideoPortCaps;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpDDVideoPortCaps;
DriverInfo.dwExpectedSize = sizeof(DDVIDEOPORTCAPS);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Get the ZPixelFormats */
This->DirectDrawGlobal.lpZPixelFormats = (LPDDPIXELFORMAT) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats);
DriverInfo.guidInfo = GUID_ZPixelFormats;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpZPixelFormats;
DriverInfo.dwExpectedSize = sizeof(DDPIXELFORMAT);
This->HalInfo.GetDriverInfo( &DriverInfo);
/* Setup some info from the callbacks we got */
DDHAL_GETAVAILDRIVERMEMORYDATA mem;
mem.lpDD = &This->DirectDrawGlobal;
This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem);
This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree;
This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal;
/* Now all setup for HAL is done */
return DD_OK;
/* Fill in wher
DriverInfo.guidInfo = GUID_NTCallbacks;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the NTPrivateDriverCaps */
/* Fill in wher
DriverInfo.guidInfo = GUID_NTPrivateDriverCaps;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the UpdateNonLocalHeap */
/* Fill in where
DriverInfo.guidInfo = GUID_UpdateNonLocalHeap;
DriverInfo.lpvData = &misc;
DriverInfo.dwExpectedSize = sizeof();
This->HalInfo.GetDriverInfo( &DriverInfo);
*/
/* Get the VideoPortCallbacks */
DriverInfo.guidInfo = GUID_VideoPortCallbacks;
DriverInfo.lpvData = &This->DirectDrawGlobal.lpDDCBtmp->HALDDVideoPort;
DriverInfo.dwExpectedSize = sizeof(DDHAL_DDVIDEOPORTCALLBACKS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the VideoPortCaps */
This->DirectDrawGlobal.lpDDVideoPortCaps = (LPDDVIDEOPORTCAPS)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDVIDEOPORTCAPS));
DriverInfo.guidInfo = GUID_VideoPortCaps;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpDDVideoPortCaps;
DriverInfo.dwExpectedSize = sizeof(DDVIDEOPORTCAPS);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Get the ZPixelFormats */
This->DirectDrawGlobal.lpZPixelFormats = (LPDDPIXELFORMAT) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDPIXELFORMAT) * This->DirectDrawGlobal.dwNumZPixelFormats);
DriverInfo.guidInfo = GUID_ZPixelFormats;
DriverInfo.lpvData = (PVOID)This->DirectDrawGlobal.lpZPixelFormats;
DriverInfo.dwExpectedSize = sizeof(DDPIXELFORMAT);
This->HalInfo.GetDriverInfo(&DriverInfo);
/* Setup some info from the callbacks we got */
DDHAL_GETAVAILDRIVERMEMORYDATA mem;
mem.lpDD = &This->DirectDrawGlobal;
This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem);
This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree;
This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal;
/* Now all setup for HAL is done */
return DD_OK;
}
HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_SETEXCLUSIVEMODEDATA SetExclusiveMode;
DDHAL_SETEXCLUSIVEMODEDATA SetExclusiveMode;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE))
{
return DDERR_NODRIVERSUPPORT;
}
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE))
{
return DDERR_NODRIVERSUPPORT;
}
SetExclusiveMode.lpDD = &This->DirectDrawGlobal;
SetExclusiveMode.lpDD = &This->DirectDrawGlobal;
SetExclusiveMode.ddRVal = DDERR_NOTPALETTIZED;
SetExclusiveMode.dwEnterExcl = This->cooperative_level;
SetExclusiveMode.dwEnterExcl = This->cooperative_level;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetExclusiveMode(&SetExclusiveMode) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetExclusiveMode(&SetExclusiveMode) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
return SetExclusiveMode.ddRVal;
return SetExclusiveMode.ddRVal;
}
@ -333,166 +312,172 @@ VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
if(This->DirectDrawGlobal.lpDDKernelCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDKernelCaps);
if(This->DirectDrawGlobal.lpDDKernelCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDKernelCaps);
if(This->DirectDrawGlobal.lpddNLVCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpddNLVCaps);
if(This->DirectDrawGlobal.lpddNLVCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpddNLVCaps);
if(This->DirectDrawGlobal.lpDDVideoPortCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDVideoPortCaps);
if(This->DirectDrawGlobal.lpDDVideoPortCaps)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDVideoPortCaps);
if(This->DirectDrawGlobal.lpdwFourCC)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpdwFourCC);
if(This->DirectDrawGlobal.lpdwFourCC)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpdwFourCC);
if(This->DirectDrawGlobal.lpZPixelFormats)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpZPixelFormats);
if(This->DirectDrawGlobal.lpZPixelFormats)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpZPixelFormats);
if(This->HalInfo.vmiData.pvmList)
HeapFree(GetProcessHeap(), 0, This->HalInfo.vmiData.pvmList);
if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats)
HeapFree(GetProcessHeap(), 0, ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats);
if(This->DirectDrawGlobal.lpDDCBtmp)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDCBtmp);
if(This->DirectDrawGlobal.lpD3DHALCallbacks)
HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks);
if(This->DirectDrawGlobal.lpD3DGlobalDriverData)
HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData);
if(This->HalInfo.vmiData.pvmList)
HeapFree(GetProcessHeap(), 0, This->HalInfo.vmiData.pvmList);
if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats)
HeapFree(GetProcessHeap(), 0, ((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData)->lpTextureFormats);
if(This->DirectDrawGlobal.lpDDCBtmp)
HeapFree(GetProcessHeap(), 0, This->DirectDrawGlobal.lpDDCBtmp);
if(This->DirectDrawGlobal.lpD3DHALCallbacks)
HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DHALCallbacks);
if(This->DirectDrawGlobal.lpD3DGlobalDriverData)
HeapFree(GetProcessHeap(), 0, (PVOID)This->DirectDrawGlobal.lpD3DGlobalDriverData);
}
HRESULT Hal_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
LPDWORD total, LPDWORD free)
LPDWORD total, LPDWORD free)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_GETAVAILDRIVERMEMORYDATA mem;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_GETAVAILDRIVERMEMORYDATA mem;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY))
{
return DDERR_NODRIVERSUPPORT;
}
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY))
{
return DDERR_NODRIVERSUPPORT;
}
mem.lpDD = &This->DirectDrawGlobal;
mem.ddRVal = DDERR_NOTPALETTIZED;
mem.lpDD = &This->DirectDrawGlobal;
mem.ddRVal = DDERR_NOTPALETTIZED;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemory(&mem) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
ddscaps->dwCaps = mem.DDSCaps.dwCaps;
ddscaps->dwCaps2 = mem.ddsCapsEx.dwCaps2;
ddscaps->dwCaps = mem.DDSCaps.dwCaps;
ddscaps->dwCaps2 = mem.ddsCapsEx.dwCaps2;
ddscaps->dwCaps3 = mem.ddsCapsEx.dwCaps3;
ddscaps->dwCaps4 = mem.ddsCapsEx.dwCaps4;
*total = mem.dwTotal;
*free = mem.dwFree;
return mem.ddRVal;
ddscaps->dwCaps4 = mem.ddsCapsEx.dwCaps4;
*total = mem.dwTotal;
*free = mem.dwFree;
return mem.ddRVal;
}
HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,HANDLE h)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_WAITFORVERTICALBLANKDATA WaitVectorData;
DDHAL_WAITFORVERTICALBLANKDATA WaitVectorData;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK))
{
return DDERR_NODRIVERSUPPORT;
}
WaitVectorData.lpDD = &This->DirectDrawGlobal;
WaitVectorData.dwFlags = dwFlags;
WaitVectorData.hEvent = (DWORD)h;
WaitVectorData.ddRVal = DDERR_NOTPALETTIZED;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK))
{
return DDERR_NODRIVERSUPPORT;
}
WaitVectorData.lpDD = &This->DirectDrawGlobal;
WaitVectorData.dwFlags = dwFlags;
WaitVectorData.hEvent = (DWORD)h;
WaitVectorData.ddRVal = DDERR_NOTPALETTIZED;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.WaitForVerticalBlank(&WaitVectorData) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.WaitForVerticalBlank(&WaitVectorData) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
return WaitVectorData.ddRVal;
return WaitVectorData.ddRVal;
}
HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_GETSCANLINEDATA GetScan;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE))
{
return DDERR_NODRIVERSUPPORT;
}
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE))
{
return DDERR_NODRIVERSUPPORT;
}
GetScan.lpDD = &This->DirectDrawGlobal;
GetScan.lpDD = &This->DirectDrawGlobal;
GetScan.ddRVal = DDERR_NOTPALETTIZED;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
*lpdwScanLine = GetScan.ddRVal;
return GetScan.ddRVal;
*lpdwScanLine = GetScan.ddRVal;
return GetScan.ddRVal;
}
HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
DDHAL_FLIPTOGDISURFACEDATA FlipGdi;
DDHAL_FLIPTOGDISURFACEDATA FlipGdi;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE))
{
return DDERR_NODRIVERSUPPORT;
}
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE))
{
return DDERR_NODRIVERSUPPORT;
}
FlipGdi.lpDD = &This->DirectDrawGlobal;
FlipGdi.lpDD = &This->DirectDrawGlobal;
FlipGdi.ddRVal = DDERR_NOTPALETTIZED;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.FlipToGDISurface(&FlipGdi) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
/* FIXME where should FlipGdi.dwToGDI be fill in */
return FlipGdi.ddRVal;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.FlipToGDISurface(&FlipGdi) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
/* FIXME where should FlipGdi.dwToGDI be fill in */
return FlipGdi.ddRVal;
}
HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight,
DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
{
DDHAL_SETMODEDATA mode;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETMODE))
{
return DDERR_NODRIVERSUPPORT;
}
mode.lpDD = &This->DirectDrawGlobal;
mode.ddRVal = DDERR_NODRIVERSUPPORT;
/* FIXME : add search for which mode.ModeIndex we should use */
/* FIXME : fill the mode.inexcl; */
/* FIXME : fill the mode.useRefreshRate; */
/*
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetMode(&mode) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
*/
DX_STUB;
/* return mode.ddRVal */
DX_STUB;
}
#if 0
HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight,
DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETMODE))
{
return DDERR_NODRIVERSUPPORT;
}
DDHAL_SETMODEDATA mode;
mode.lpDD = &This->DirectDrawGlobal;
mode.ddRVal = DDERR_NODRIVERSUPPORT;
// FIXME : add search for which mode.ModeIndex we should use
// FIXME : fill the mode.inexcl;
// FIXME : fill the mode.useRefreshRate;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.SetMode(&mode) != DDHAL_DRIVER_HANDLED)
{
return DDERR_NODRIVERSUPPORT;
}
return mode.ddRVal
}
#endif

View file

@ -14,90 +14,86 @@
HRESULT WINAPI Main_DirectDraw_Initialize (LPDIRECTDRAW7 iface, LPGUID lpGUID)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
HRESULT ret;
HRESULT ret;
// this if it is not called by DirectDrawCreate
if(FALSE)
return DDERR_ALREADYINITIALIZED;
// this if it is not called by DirectDrawCreate
if(FALSE)
return DDERR_ALREADYINITIALIZED;
// save the parameter
This->lpGUID = lpGUID;
// save the parameter
This->lpGUID = lpGUID;
// get the HDC
This->hdc = GetWindowDC(GetDesktopWindow());
This->Height = GetDeviceCaps(This->hdc, VERTRES);
This->Width = GetDeviceCaps(This->hdc, HORZRES);
This->Bpp = GetDeviceCaps(This->hdc, BITSPIXEL);
// get the HDC
This->hdc = GetWindowDC(GetDesktopWindow());
This->Height = GetDeviceCaps(This->hdc, VERTRES);
This->Width = GetDeviceCaps(This->hdc, HORZRES);
This->Bpp = GetDeviceCaps(This->hdc, BITSPIXEL);
// call software first
if((ret = Hal_DirectDraw_Initialize (iface)) != DD_OK)
return ret;
// ... then overwrite with hal
if((ret = Hel_DirectDraw_Initialize (iface)) != DD_OK)
return ret;
// call software first
if((ret = Hal_DirectDraw_Initialize (iface)) != DD_OK)
return ret;
// ... then overwrite with hal
if((ret = Hel_DirectDraw_Initialize (iface)) != DD_OK)
return ret;
return DD_OK;
return DD_OK;
}
HRESULT WINAPI Main_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface, HWND hwnd, DWORD cooplevel)
{
// TODO:
// - create a scaner that check which driver we should get the HDC from
// for now we always asume it is the active dirver that should be use.
// - allow more Flags
// TODO:
// - create a scaner that check which driver we should get the HDC from
// for now we always asume it is the active dirver that should be use.
// - allow more Flags
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
// check the parameters
if (This->cooperative_level == cooplevel && This->window == hwnd)
return DD_OK;
// check the parameters
if (This->cooperative_level == cooplevel && This->window == hwnd)
return DD_OK;
if (This->window)
return DDERR_HWNDALREADYSET;
if (This->window)
return DDERR_HWNDALREADYSET;
if (This->cooperative_level)
return DDERR_EXCLUSIVEMODEALREADYSET;
if (This->cooperative_level)
return DDERR_EXCLUSIVEMODEALREADYSET;
if ((cooplevel&DDSCL_EXCLUSIVE) && !(cooplevel&DDSCL_FULLSCREEN))
return DDERR_INVALIDPARAMS;
if ((cooplevel&DDSCL_EXCLUSIVE) && !(cooplevel&DDSCL_FULLSCREEN))
return DDERR_INVALIDPARAMS;
if (cooplevel&DDSCL_NORMAL && cooplevel&DDSCL_FULLSCREEN)
return DDERR_INVALIDPARAMS;
if (cooplevel&DDSCL_NORMAL && cooplevel&DDSCL_FULLSCREEN)
return DDERR_INVALIDPARAMS;
// set the data
This->window = hwnd;
This->hdc = GetDC(hwnd);
This->cooperative_level = cooplevel;
// set the data
This->window = hwnd;
This->hdc = GetDC(hwnd);
This->cooperative_level = cooplevel;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_SETEXCLUSIVEMODE)
{
return Hal_DirectDraw_SetCooperativeLevel (iface);
}
{
return Hal_DirectDraw_SetCooperativeLevel (iface);
}
return Hel_DirectDraw_SetCooperativeLevel(iface);
return Hel_DirectDraw_SetCooperativeLevel(iface);
}
HRESULT WINAPI Main_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD dwWidth, DWORD dwHeight,
DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
DWORD dwBPP, DWORD dwRefreshRate, DWORD dwFlags)
{
DWORD ret;
DWORD ret;
/* FIXME implement hal setMode */
if((ret = Hal_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight,
if((ret = Hal_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight,
dwBPP, dwRefreshRate, dwFlags)) == DD_OK)
{
return ret;
}
{
return ret;
}
ret = Hel_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags);
ret = Hel_DirectDraw_SetDisplayMode(iface, dwWidth, dwHeight, dwBPP, dwRefreshRate, dwFlags);
return ret;
return ret;
}
ULONG WINAPI Main_DirectDraw_AddRef (LPDIRECTDRAW7 iface)
@ -105,7 +101,7 @@ ULONG WINAPI Main_DirectDraw_AddRef (LPDIRECTDRAW7 iface)
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
ULONG ref = InterlockedIncrement((PLONG)&This->DirectDrawGlobal.dwRefCnt);
return ref;
return ref;
}
ULONG WINAPI Main_DirectDraw_Release (LPDIRECTDRAW7 iface)
@ -115,41 +111,41 @@ ULONG WINAPI Main_DirectDraw_Release (LPDIRECTDRAW7 iface)
if (ref == 0)
{
// set resoltion back to the one in registry
if(This->cooperative_level & DDSCL_EXCLUSIVE)
ChangeDisplaySettings(NULL, 0);
// set resoltion back to the one in registry
if(This->cooperative_level & DDSCL_EXCLUSIVE)
ChangeDisplaySettings(NULL, 0);
HeapFree(GetProcessHeap(), 0, This);
HeapFree(GetProcessHeap(), 0, This);
}
return ref;
return ref;
}
HRESULT WINAPI Main_DirectDraw_QueryInterface (
LPDIRECTDRAW7 iface, REFIID id, LPVOID *obj )
LPDIRECTDRAW7 iface, REFIID id, LPVOID *obj )
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (IsEqualGUID(&IID_IDirectDraw7, id))
{
*obj = &This->lpVtbl;
{
*obj = &This->lpVtbl;
}
else if (IsEqualGUID(&IID_IDirectDraw, id))
{
*obj = &This->lpVtbl_v1;
{
*obj = &This->lpVtbl_v1;
}
else if (IsEqualGUID(&IID_IDirectDraw2, id))
{
*obj = &This->lpVtbl_v2;
{
*obj = &This->lpVtbl_v2;
}
else if (IsEqualGUID(&IID_IDirectDraw4, id))
{
*obj = &This->lpVtbl_v4;
{
*obj = &This->lpVtbl_v4;
}
else
{
*obj = NULL;
return E_NOINTERFACE;
{
*obj = NULL;
return E_NOINTERFACE;
}
Main_DirectDraw_AddRef(iface);
@ -157,183 +153,147 @@ HRESULT WINAPI Main_DirectDraw_QueryInterface (
}
HRESULT WINAPI Main_DirectDraw_CreateSurface (LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD,
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
LPDIRECTDRAWSURFACE7 *ppSurf, IUnknown *pUnkOuter)
{
if (pUnkOuter!=NULL)
return DDERR_INVALIDPARAMS;
return DDERR_INVALIDPARAMS;
if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize)
return DDERR_UNSUPPORTED;
if(sizeof(DDSURFACEDESC2)!=pDDSD->dwSize)
return DDERR_UNSUPPORTED;
// the nasty com stuff
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
// the nasty com stuff
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawSurfaceImpl* That;
IDirectDrawSurfaceImpl* That;
That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawSurfaceImpl));
if (That == NULL)
return E_OUTOFMEMORY;
That = (IDirectDrawSurfaceImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawSurfaceImpl));
if (That == NULL)
return E_OUTOFMEMORY;
ZeroMemory(That, sizeof(IDirectDrawSurfaceImpl));
That->lpVtbl = &DirectDrawSurface7_Vtable;
That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable;
ZeroMemory(That, sizeof(IDirectDrawSurfaceImpl));
That->lpVtbl = &DirectDrawSurface7_Vtable;
That->lpVtbl_v3 = &DDRAW_IDDS3_Thunk_VTable;
This->DirectDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDRAWI_DDRAWSURFACE_INT));
This->DirectDrawGlobal.dsList = (LPDDRAWI_DDRAWSURFACE_INT)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
sizeof(DDRAWI_DDRAWSURFACE_INT));
That->owner = (IDirectDrawImpl *)This;
That->owner->DirectDrawGlobal.dsList->dwIntRefCnt =1;
That->owner = (IDirectDrawImpl *)This;
/* we alwasy set to use the DirectDrawSurface7_Vtable as internel */
That->owner->DirectDrawGlobal.dsList->lpVtbl = (PVOID) &DirectDrawSurface7_Vtable;
*ppSurf = (LPDIRECTDRAWSURFACE7)That;
That->owner->DirectDrawGlobal.dsList->dwIntRefCnt =1;
/* we alwasy set to use the DirectDrawSurface7_Vtable as internel */
That->owner->DirectDrawGlobal.dsList->lpVtbl = (PVOID) &DirectDrawSurface7_Vtable;
*ppSurf = (LPDIRECTDRAWSURFACE7)That;
// the real surface object creation
return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD);
// the real surface object creation
return That->lpVtbl->Initialize (*ppSurf, (LPDIRECTDRAW)iface, pDDSD);
}
HRESULT WINAPI Main_DirectDraw_CreateClipper(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter)
LPDIRECTDRAWCLIPPER *ppClipper, IUnknown *pUnkOuter)
{
if (pUnkOuter!=NULL)
return DDERR_INVALIDPARAMS;
return DDERR_INVALIDPARAMS;
IDirectDrawClipperImpl* That;
That = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawClipperImpl));
IDirectDrawClipperImpl* That;
That = (IDirectDrawClipperImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawClipperImpl));
if (That == NULL)
return E_OUTOFMEMORY;
if (That == NULL)
return E_OUTOFMEMORY;
ZeroMemory(That, sizeof(IDirectDrawClipperImpl));
ZeroMemory(That, sizeof(IDirectDrawClipperImpl));
That->lpVtbl = &DirectDrawClipper_Vtable;
That->ref = 1;
*ppClipper = (LPDIRECTDRAWCLIPPER)That;
That->lpVtbl = &DirectDrawClipper_Vtable;
That->ref = 1;
*ppClipper = (LPDIRECTDRAWCLIPPER)That;
return That->lpVtbl->Initialize (*ppClipper, (LPDIRECTDRAW)iface, dwFlags);
return That->lpVtbl->Initialize (*ppClipper, (LPDIRECTDRAW)iface, dwFlags);
}
// This function is exported by the dll
HRESULT WINAPI DirectDrawCreateClipper (DWORD dwFlags,
LPDIRECTDRAWCLIPPER* lplpDDClipper, LPUNKNOWN pUnkOuter)
LPDIRECTDRAWCLIPPER* lplpDDClipper, LPUNKNOWN pUnkOuter)
{
return Main_DirectDraw_CreateClipper(NULL, dwFlags, lplpDDClipper, pUnkOuter);
}
HRESULT WINAPI Main_DirectDraw_CreatePalette(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter)
LPPALETTEENTRY palent, LPDIRECTDRAWPALETTE* ppPalette, LPUNKNOWN pUnkOuter)
{
if (pUnkOuter!=NULL)
return DDERR_INVALIDPARAMS;
return DDERR_INVALIDPARAMS;
IDirectDrawPaletteImpl* That;
That = (IDirectDrawPaletteImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawPaletteImpl));
IDirectDrawPaletteImpl* That;
That = (IDirectDrawPaletteImpl*)HeapAlloc(GetProcessHeap(), 0, sizeof(IDirectDrawPaletteImpl));
if (That == NULL)
return E_OUTOFMEMORY;
if (That == NULL)
return E_OUTOFMEMORY;
ZeroMemory(That, sizeof(IDirectDrawPaletteImpl));
ZeroMemory(That, sizeof(IDirectDrawPaletteImpl));
That->lpVtbl = &DirectDrawPalette_Vtable;
That->ref = 1;
*ppPalette = (LPDIRECTDRAWPALETTE)That;
That->lpVtbl = &DirectDrawPalette_Vtable;
That->ref = 1;
*ppPalette = (LPDIRECTDRAWPALETTE)That;
return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent);
}
/**** Stubs ****/
HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
LPDIRECTDRAWSURFACE7* dst)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPDDSURFACEDESC2 lpDDSD2, LPVOID context,
LPDDENUMSURFACESCALLBACK7 callback)
{
DX_STUB;
return That->lpVtbl->Initialize (*ppPalette, (LPDIRECTDRAW)iface, dwFlags, palent);
}
HRESULT WINAPI Main_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE)
{
return Hal_DirectDraw_FlipToGDISurface( iface);
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_FLIPTOGDISURFACE)
{
return Hal_DirectDraw_FlipToGDISurface( iface);
}
return Hel_DirectDraw_FlipToGDISurface( iface);
return Hel_DirectDraw_FlipToGDISurface( iface);
}
HRESULT WINAPI Main_DirectDraw_GetCaps(LPDIRECTDRAW7 iface, LPDDCAPS pDriverCaps,
LPDDCAPS pHELCaps)
LPDDCAPS pHELCaps)
{
DWORD status = DD_FALSE;
IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
DWORD status = DD_FALSE;
IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
if (pDriverCaps != NULL)
{
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS));
status = DD_OK;
}
if (pDriverCaps != NULL)
{
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS));
status = DD_OK;
}
if (pHELCaps != NULL)
{
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddHELCaps,sizeof(DDCORECAPS));
status = DD_OK;
}
if (pHELCaps != NULL)
{
RtlCopyMemory(pDriverCaps,&This->DirectDrawGlobal.ddHELCaps,sizeof(DDCORECAPS));
status = DD_OK;
}
/* Both caps mixed ?? */
/* DDCORECAPS ddBothCaps; */
return status;
/* Both caps mixed ?? */
/* DDCORECAPS ddBothCaps; */
return status;
}
HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDESC2 pDDSD)
{
IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
if (pDDSD == NULL)
{
if (pDDSD == NULL)
{
return DD_FALSE;
}
pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH;
pDDSD->dwHeight = This->DirectDrawGlobal.vmiData.dwDisplayHeight;
pDDSD->dwWidth = This->DirectDrawGlobal.vmiData.dwDisplayWidth;
/* FIXME Do not use DUMMYUNIONNAME1 some how union lPitch does not see by the compiler
but rest of the union are visable. more header problem ???
*/
pDDSD->lPitch = This->DirectDrawGlobal.vmiData.lDisplayPitch;
}
/* have not check where I should get hold of this info yet
DWORD dwBackBufferCount;
*/
pDDSD->dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_PITCH | DDSD_PIXELFORMAT | DDSD_REFRESHRATE | DDSD_WIDTH;
pDDSD->dwHeight = This->DirectDrawGlobal.vmiData.dwDisplayHeight;
pDDSD->dwWidth = This->DirectDrawGlobal.vmiData.dwDisplayWidth;
pDDSD->lPitch = This->DirectDrawGlobal.vmiData.lDisplayPitch;
pDDSD->dwRefreshRate = This->DirectDrawGlobal.dwMonitorFrequency;
/* have not check where I should get hold of this info yet */
DWORD dwBackBufferCount;
/* have not check where I should get hold of this info yet
/* have not check where I should get hold of this info yet
DWORD dwAlphaBitDepth;
DWORD dwReserved;
LPVOID lpSurface;
@ -345,123 +305,148 @@ HRESULT WINAPI Main_DirectDraw_GetDisplayMode(LPDIRECTDRAW7 iface, LPDDSURFACEDE
DDCOLORKEY ddckCKDestBlt;
DDCOLORKEY ddckCKSrcOverlay;
DDCOLORKEY ddckCKSrcBlt;
*/
*/
RtlCopyMemory(&pDDSD->ddpfPixelFormat,&This->DirectDrawGlobal.vmiData.ddpfDisplay,sizeof(DDPIXELFORMAT));
RtlCopyMemory(&pDDSD->ddsCaps,&This->DirectDrawGlobal.ddCaps,sizeof(DDCORECAPS));
/* have not check where I should get hold of this info yet
/* have not check where I should get hold of this info yet
DWORD dwTextureStage;
*/
return DD_OK;
return DD_OK;
}
HRESULT WINAPI Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes)
HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h)
{
DX_STUB;
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)
{
return Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
}
return Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
}
HRESULT WINAPI Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface,
LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface)
{
DX_STUB;
HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
LPDWORD total, LPDWORD free)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)
{
return Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
}
return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
}
HRESULT WINAPI Main_DirectDraw_GetMonitorFrequency(LPDIRECTDRAW7 iface,LPDWORD freq)
{
IDirectDrawImpl *This = (IDirectDrawImpl *)iface;
if (freq == NULL)
{
return DD_FALSE;
}
if (freq == NULL)
{
return DD_FALSE;
}
*freq = This->DirectDrawGlobal.dwMonitorFrequency;
return DD_OK;
*freq = This->DirectDrawGlobal.dwMonitorFrequency;
return DD_OK;
}
HRESULT WINAPI Main_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD lpdwScanLine)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)
{
return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine);
}
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_GETSCANLINE)
{
return Hal_DirectDraw_GetScanLine( iface, lpdwScanLine);
}
return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine);
return Hel_DirectDraw_GetScanLine( iface, lpdwScanLine);
}
/********************************** Stubs **********************************/
HRESULT WINAPI Main_DirectDraw_Compact(LPDIRECTDRAW7 iface)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_DuplicateSurface(LPDIRECTDRAW7 iface, LPDIRECTDRAWSURFACE7 src,
LPDIRECTDRAWSURFACE7* dst)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_EnumDisplayModes(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPDDSURFACEDESC2 pDDSD, LPVOID context, LPDDENUMMODESCALLBACK2 callback)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_EnumSurfaces(LPDIRECTDRAW7 iface, DWORD dwFlags,
LPDDSURFACEDESC2 lpDDSD2, LPVOID context,
LPDDENUMSURFACESCALLBACK7 callback)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_GetFourCCCodes(LPDIRECTDRAW7 iface, LPDWORD pNumCodes, LPDWORD pCodes)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_GetGDISurface(LPDIRECTDRAW7 iface,
LPDIRECTDRAWSURFACE7 *lplpGDIDDSSurface)
{
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_GetVerticalBlankStatus(LPDIRECTDRAW7 iface, LPBOOL status)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_RestoreDisplayMode(LPDIRECTDRAW7 iface)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD dwFlags,
HANDLE h)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)
{
return Hal_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
}
return Hel_DirectDraw_WaitForVerticalBlank( iface, dwFlags, h);
}
HRESULT WINAPI Main_DirectDraw_GetAvailableVidMem(LPDIRECTDRAW7 iface, LPDDSCAPS2 ddscaps,
LPDWORD total, LPDWORD free)
{
IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
if (This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags & DDHAL_MISCCB32_GETAVAILDRIVERMEMORY)
{
return Hal_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
}
return Hel_DirectDraw_GetAvailableVidMem (iface,ddscaps,total,free);
}
HRESULT WINAPI Main_DirectDraw_GetSurfaceFromDC(LPDIRECTDRAW7 iface, HDC hdc,
LPDIRECTDRAWSURFACE7 *lpDDS)
LPDIRECTDRAWSURFACE7 *lpDDS)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_RestoreAllSurfaces(LPDIRECTDRAW7 iface)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_TestCooperativeLevel(LPDIRECTDRAW7 iface)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_GetDeviceIdentifier(LPDIRECTDRAW7 iface,
LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)
LPDDDEVICEIDENTIFIER2 pDDDI, DWORD dwFlags)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_StartModeTest(LPDIRECTDRAW7 iface, LPSIZE pModes,
DWORD dwNumModes, DWORD dwFlags)
DWORD dwNumModes, DWORD dwFlags)
{
DX_STUB;
DX_STUB;
}
HRESULT WINAPI Main_DirectDraw_EvaluateMode(LPDIRECTDRAW7 iface,DWORD a,DWORD* b)
{
DX_STUB;
DX_STUB;
}
IDirectDraw7Vtbl DirectDraw7_Vtable =