Rename files so it be more easy to wrok with them in VS
Modified: trunk/reactos/lib/ddraw/ddraw.xml
Deleted: trunk/reactos/lib/ddraw/hal/ddraw.c
Added: trunk/reactos/lib/ddraw/hal/ddraw_hal.c
Deleted: trunk/reactos/lib/ddraw/hal/surface.c
Added: trunk/reactos/lib/ddraw/hal/surface_hal.c
Deleted: trunk/reactos/lib/ddraw/main/clipper.c
Added: trunk/reactos/lib/ddraw/main/clipper_main.c
Deleted: trunk/reactos/lib/ddraw/main/color.c
Added: trunk/reactos/lib/ddraw/main/color_main.c
Deleted: trunk/reactos/lib/ddraw/main/ddraw.c
Added: trunk/reactos/lib/ddraw/main/ddraw_main.c
Deleted: trunk/reactos/lib/ddraw/main/gamma.c
Added: trunk/reactos/lib/ddraw/main/gamma_main.c
Deleted: trunk/reactos/lib/ddraw/main/kernel.c
Added: trunk/reactos/lib/ddraw/main/kernel_main.c
Deleted: trunk/reactos/lib/ddraw/main/palette.c
Added: trunk/reactos/lib/ddraw/main/palette_main.c
Deleted: trunk/reactos/lib/ddraw/main/surface.c
Added: trunk/reactos/lib/ddraw/main/surface_main.c
Deleted: trunk/reactos/lib/ddraw/main/videoport.c
Added: trunk/reactos/lib/ddraw/main/videoport_main.c
Deleted: trunk/reactos/lib/ddraw/soft/ddraw.c
Added: trunk/reactos/lib/ddraw/soft/ddraw_hel.c
Deleted: trunk/reactos/lib/ddraw/soft/surface.c
Added: trunk/reactos/lib/ddraw/soft/surface_hel.c
Deleted: trunk/reactos/lib/ddraw/thunks/ddraw.c
Added: trunk/reactos/lib/ddraw/thunks/ddraw_thunk.c
Deleted: trunk/reactos/lib/ddraw/thunks/surface.c
Added: trunk/reactos/lib/ddraw/thunks/surface_thunk.c
_____
Modified: trunk/reactos/lib/ddraw/ddraw.xml
--- trunk/reactos/lib/ddraw/ddraw.xml 2005-10-30 09:49:29 UTC (rev
18875)
+++ trunk/reactos/lib/ddraw/ddraw.xml 2005-10-30 10:43:03 UTC (rev
18876)
@@ -18,28 +18,28 @@
<file>regsvr.c</file>
<directory name="hal">
- <file>ddraw.c</file>
- <file>surface.c</file>
+ <file>ddraw_hal.c</file>
+ <file>surface_hal.c</file>
</directory>
<directory name="main">
- <file>ddraw.c</file>
- <file>surface.c</file>
- <file>clipper.c</file>
- <file>color.c</file>
- <file>gamma.c</file>
- <file>palette.c</file>
- <file>videoport.c</file>
- <file>kernel.c</file>
+ <file>ddraw_main.c</file>
+ <file>surface_main.c</file>
+ <file>clipper_main.c</file>
+ <file>color_main.c</file>
+ <file>gamma_main.c</file>
+ <file>palette_main.c</file>
+ <file>videoport_main.c</file>
+ <file>kernel_main.c</file>
</directory>
<directory name="soft">
- <file>ddraw.c</file>
- <file>surface.c</file>
+ <file>ddraw_hel.c</file>
+ <file>surface_hel.c</file>
</directory>
<directory name="thunks">
- <file>ddraw.c</file>
- <file>surface.c</file>
+ <file>ddraw_thunk.c</file>
+ <file>surface_thunk.c</file>
</directory>
</module>
_____
Deleted: trunk/reactos/lib/ddraw/hal/ddraw.c
--- trunk/reactos/lib/ddraw/hal/ddraw.c 2005-10-30 09:49:29 UTC (rev
18875)
+++ trunk/reactos/lib/ddraw/hal/ddraw.c 2005-10-30 10:43:03 UTC (rev
18876)
@@ -1,488 +0,0 @@
-/* $Id$
- *
- * COPYRIGHT: See COPYING in the top level directory
- * PROJECT: ReactOS
- * FILE: lib/ddraw/hal/ddraw.c
- * PURPOSE: DirectDraw HAL Implementation
- * PROGRAMMER: Magnus Olsen, Maarten Bosma
- *
- */
-
-#include "rosdraw.h"
-
-
-HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
-{
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
-
- /* point to it self */
- This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal;
-
- /* 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));
- 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;
-
- /* FIXME The insate is not right we need the info that the three
NULL return */
-
- /* 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 ))
- {
- OutputDebugString(L"First DdQueryDirectDrawObject
failed");
- return 1;
- }
-
- /* FIXME The insate is not right we need the info that the three
NULL return and use it here*/
-
- /* Fixme shall we selected the pixel type before we call the
DdQueryDirectDrawObject second time
- and fill in more info ?? */
-
- This->HalInfo.vmiData.pvmList = HeapAlloc(GetProcessHeap(), 0,
sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
- This->DirectDrawGlobal.lpdwFourCC = HeapAlloc(GetProcessHeap(),
0, sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
- This->DirectDrawGlobal.lpZPixelFormats =
HeapAlloc(GetProcessHeap(), 0, sizeof(DDPIXELFORMAT) *
This->DirectDrawGlobal.dwNumZPixelFormats);
-
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->lpTextureFormats = HeapAlloc(GetProcessHeap(), 0,
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
- ))
- {
- OutputDebugString(L"Second DdQueryDirectDrawObject
failed");
- return 1;
- }
-
- /* Copy HalInfo to DirectDrawGlobal (Not complete)*/
-
-
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,siz
eof(VIDMEMINFO));
-
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeo
f(DDCORECAPS));
- This->DirectDrawGlobal.dwMonitorFrequency =
This->HalInfo.dwMonitorFrequency;
-
- /* have not check where it should go into yet
- This->HalInfo.GetDriverInfo datatype LPDDHAL_GETDRIVERINFO
- */
-
- This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex;
-
- /* have not check where it should go into yet
- This->HalInfo.lpdwFourCC datatype LPDWORD
- */
-
- This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes;
- This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo;
-
- /* have not check where it should go into yet
- This->HalInfo.dwFlags data type DWORD
- */
-
- /* Unsure which of these two for lpPDevice
- This->DirectDrawGlobal.dwPDevice = This->HalInfo.lpPDevice;
- This->lpDriverHandle = This->HalInfo.lpPDevice;
- */
-
- This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance;
-
- /* have not check where it should go into yet
- This->lpD3DGlobalDriverData datatype ULONG_PTR
- This->lpD3DHALCallbacks datatype ULONG_PTR
- */
-
RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,&This->HalI
nfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS));
-
-
-
-
/***********************************************************************
*/
- /* 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
*/
-
- /* 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(), 0, 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(), 0, 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(), 0,
sizeof(D3DHAL_D3DEXTENDEDCAPS));
- DriverInfo.guidInfo = GUID_D3DExtendedCaps;
- DriverInfo.lpvData = (PVOID)
This->DirectDrawGlobal.lpD3DExtendedCaps;
- DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS);
- 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(), 0,
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(), 0,
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(), 0,
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(), 0, sizeof(DDPIXELFORMAT));
- 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 */
-
- /* FIXME do more callbacks and fill the gpl struct */
-
- DDHAL_GETAVAILDRIVERMEMORYDATA mem;
- mem.lpDD = &This->DirectDrawGlobal;
-
-
This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemor
y(&mem);
-
- This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree;
- This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal;
-
-
-
-
-
- /* Now all setup for HAL is done and we hopply do not have
forget anything */
-
- return DD_OK;
-}
-
-HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface)
-{
- return DD_OK;
-}
-
-
-VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface)
-{
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
- DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
-
- if(This->HalInfo.vmiData.pvmList)
- HeapFree(GetProcessHeap(), 0,
This->HalInfo.vmiData.pvmList);
- if(This->DirectDrawGlobal.lpdwFourCC)
- HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpdwFourCC);
- if(This->DirectDrawGlobal.lpZPixelFormats)
- HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpZPixelFormats);
-
if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverD
ata)->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)
-{
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
- DDHAL_GETAVAILDRIVERMEMORYDATA mem;
-
- if
(!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags &
DDHAL_MISCCB32_GETAVAILDRIVERMEMORY))
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- mem.lpDD = &This->DirectDrawGlobal;
- mem.ddRVal = DDERR_NOTPALETTIZED;
-
- if
(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemo
ry(&mem) != DDHAL_DRIVER_HANDLED)
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- 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;
-}
-
-HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD
dwFlags,HANDLE h)
-{
-
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
- 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.WaitForVerticalBlank(&WaitVecto
rData) != DDHAL_DRIVER_HANDLED)
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- return WaitVectorData.ddRVal;
-}
-
-HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine)
-{
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
- DDHAL_GETSCANLINEDATA GetScan;
-
- if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags &
DDHAL_CB32_GETSCANLINE))
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- GetScan.lpDD = &This->DirectDrawGlobal;
- GetScan.ddRVal = DDERR_NOTPALETTIZED;
-
- if
(This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) !=
DDHAL_DRIVER_HANDLED)
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- *lpdwScanLine = GetScan.ddRVal;
- return GetScan.ddRVal;
-}
-
-HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
-{
- IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
-
- DDHAL_FLIPTOGDISURFACEDATA FlipGdi;
-
- if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags &
DDHAL_CB32_FLIPTOGDISURFACE))
- {
- return DDERR_NODRIVERSUPPORT;
- }
-
- 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;
-}
-
-HRESULT Hal_DirectDraw_SetDisplayMode (LPDIRECTDRAW7 iface, DWORD
dwWidth, DWORD dwHeight,
-
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 */
-}
_____
Copied: trunk/reactos/lib/ddraw/hal/ddraw_hal.c (from rev 18874,
trunk/reactos/lib/ddraw/hal/ddraw.c)
--- trunk/reactos/lib/ddraw/hal/ddraw.c 2005-10-30 09:45:10 UTC (rev
18874)
+++ trunk/reactos/lib/ddraw/hal/ddraw_hal.c 2005-10-30 10:43:03 UTC
(rev 18876)
@@ -0,0 +1,487 @@
+/* $Id$
+ *
+ * COPYRIGHT: See COPYING in the top level directory
+ * PROJECT: ReactOS
+ * FILE: lib/ddraw/hal/ddraw.c
+ * PURPOSE: DirectDraw HAL Implementation
+ * PROGRAMMER: Magnus Olsen, Maarten Bosma
+ *
+ */
+
+#include "rosdraw.h"
+
+
+HRESULT Hal_DirectDraw_Initialize (LPDIRECTDRAW7 iface)
+{
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+
+ /* point to it self */
+ This->DirectDrawGlobal.lp16DD = &This->DirectDrawGlobal;
+
+ /* 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));
+ 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;
+
+ /* FIXME The insate is not right we need the info that the three
NULL return */
+
+ /* 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 ))
+ {
+ OutputDebugString(L"First DdQueryDirectDrawObject
failed");
+ return 1;
+ }
+
+ /* FIXME The insate is not right we need the info that the three
NULL return and use it here*/
+
+ /* Fixme shall we selected the pixel type before we call the
DdQueryDirectDrawObject second time
+ and fill in more info ?? */
+
+ This->HalInfo.vmiData.pvmList = HeapAlloc(GetProcessHeap(), 0,
sizeof(VIDMEM) * This->HalInfo.vmiData.dwNumHeaps);
+ This->DirectDrawGlobal.lpdwFourCC = HeapAlloc(GetProcessHeap(),
0, sizeof(DWORD) * This->HalInfo.ddCaps.dwNumFourCCCodes);
+ This->DirectDrawGlobal.lpZPixelFormats =
HeapAlloc(GetProcessHeap(), 0, sizeof(DDPIXELFORMAT) *
This->DirectDrawGlobal.dwNumZPixelFormats);
+
((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverData
)->lpTextureFormats = HeapAlloc(GetProcessHeap(), 0,
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
+ ))
+ {
+ OutputDebugString(L"Second DdQueryDirectDrawObject
failed");
+ return 1;
+ }
+
+ /* Copy HalInfo to DirectDrawGlobal (Not complete)*/
+
+
RtlCopyMemory(&This->DirectDrawGlobal.vmiData,&This->HalInfo.vmiData,siz
eof(VIDMEMINFO));
+
RtlCopyMemory(&This->DirectDrawGlobal.ddCaps,&This->HalInfo.ddCaps,sizeo
f(DDCORECAPS));
+ This->DirectDrawGlobal.dwMonitorFrequency =
This->HalInfo.dwMonitorFrequency;
+
+ /* have not check where it should go into yet
+ This->HalInfo.GetDriverInfo datatype LPDDHAL_GETDRIVERINFO
+ */
+
+ This->DirectDrawGlobal.dwModeIndex = This->HalInfo.dwModeIndex;
+
+ /* have not check where it should go into yet
+ This->HalInfo.lpdwFourCC datatype LPDWORD
+ */
+
+ This->DirectDrawGlobal.dwNumModes = This->HalInfo.dwNumModes;
+ This->DirectDrawGlobal.lpModeInfo = This->HalInfo.lpModeInfo;
+
+ /* have not check where it should go into yet
+ This->HalInfo.dwFlags data type DWORD
+ */
+
+ /* Unsure which of these two for lpPDevice
+ This->DirectDrawGlobal.dwPDevice = This->HalInfo.lpPDevice;
+ This->lpDriverHandle = This->HalInfo.lpPDevice;
+ */
+
+ This->DirectDrawGlobal.hInstance = This->HalInfo.hInstance;
+
+ /* have not check where it should go into yet
+ This->lpD3DGlobalDriverData datatype ULONG_PTR
+ This->lpD3DHALCallbacks datatype ULONG_PTR
+ */
+
RtlCopyMemory(&This->DirectDrawGlobal.lpDDCBtmp->HALDDExeBuf,&This->HalI
nfo.lpDDExeBufCallbacks,sizeof(DDHAL_DDEXEBUFCALLBACKS));
+
+
+
+
/***********************************************************************
*/
+ /* 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
*/
+
+ /* 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(), 0, 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(), 0, 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(), 0,
sizeof(D3DHAL_D3DEXTENDEDCAPS));
+ DriverInfo.guidInfo = GUID_D3DExtendedCaps;
+ DriverInfo.lpvData = (PVOID)
This->DirectDrawGlobal.lpD3DExtendedCaps;
+ DriverInfo.dwExpectedSize = sizeof(D3DHAL_D3DEXTENDEDCAPS);
+ 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(), 0,
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(), 0,
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(), 0,
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(), 0, sizeof(DDPIXELFORMAT));
+ 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 */
+
+ /* FIXME do more callbacks and fill the gpl struct */
+
+ DDHAL_GETAVAILDRIVERMEMORYDATA mem;
+ mem.lpDD = &This->DirectDrawGlobal;
+
+
This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemor
y(&mem);
+
+ This->DirectDrawGlobal.ddCaps.dwVidMemFree = mem.dwFree;
+ This->DirectDrawGlobal.ddCaps.dwVidMemTotal = mem.dwTotal;
+
+
+
+
+
+ /* Now all setup for HAL is done and we hopply do not have
forget anything */
+
+ return DD_OK;
+}
+
+HRESULT Hal_DirectDraw_SetCooperativeLevel (LPDIRECTDRAW7 iface)
+{
+ return DD_OK;
+}
+
+
+VOID Hal_DirectDraw_Release (LPDIRECTDRAW7 iface)
+{
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+ DdDeleteDirectDrawObject (&This->DirectDrawGlobal);
+
+ if(This->HalInfo.vmiData.pvmList)
+ HeapFree(GetProcessHeap(), 0,
This->HalInfo.vmiData.pvmList);
+ if(This->DirectDrawGlobal.lpdwFourCC)
+ HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpdwFourCC);
+ if(This->DirectDrawGlobal.lpZPixelFormats)
+ HeapFree(GetProcessHeap(), 0,
This->DirectDrawGlobal.lpZPixelFormats);
+
if(((LPD3DHAL_GLOBALDRIVERDATA)This->DirectDrawGlobal.lpD3DGlobalDriverD
ata)->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)
+{
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+ DDHAL_GETAVAILDRIVERMEMORYDATA mem;
+
+ if
(!(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.dwFlags &
DDHAL_MISCCB32_GETAVAILDRIVERMEMORY))
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ mem.lpDD = &This->DirectDrawGlobal;
+ mem.ddRVal = DDERR_NOTPALETTIZED;
+
+ if
(This->DirectDrawGlobal.lpDDCBtmp->HALDDMiscellaneous.GetAvailDriverMemo
ry(&mem) != DDHAL_DRIVER_HANDLED)
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ 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;
+}
+
+HRESULT Hal_DirectDraw_WaitForVerticalBlank(LPDIRECTDRAW7 iface, DWORD
dwFlags,HANDLE h)
+{
+
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+ 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.WaitForVerticalBlank(&WaitVecto
rData) != DDHAL_DRIVER_HANDLED)
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ return WaitVectorData.ddRVal;
+}
+
+HRESULT Hal_DirectDraw_GetScanLine(LPDIRECTDRAW7 iface, LPDWORD
lpdwScanLine)
+{
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+ DDHAL_GETSCANLINEDATA GetScan;
+
+ if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags &
DDHAL_CB32_GETSCANLINE))
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ GetScan.lpDD = &This->DirectDrawGlobal;
+ GetScan.ddRVal = DDERR_NOTPALETTIZED;
+
+ if
(This->DirectDrawGlobal.lpDDCBtmp->HALDD.GetScanLine(&GetScan) !=
DDHAL_DRIVER_HANDLED)
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ *lpdwScanLine = GetScan.ddRVal;
+ return GetScan.ddRVal;
+}
+
+HRESULT Hal_DirectDraw_FlipToGDISurface(LPDIRECTDRAW7 iface)
+{
+ IDirectDrawImpl* This = (IDirectDrawImpl*)iface;
+
+ DDHAL_FLIPTOGDISURFACEDATA FlipGdi;
+
+ if (!(This->DirectDrawGlobal.lpDDCBtmp->HALDD.dwFlags &
DDHAL_CB32_FLIPTOGDISURFACE))
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
+ FlipGdi.lpDD = &This->DirectDrawGlobal;
+ FlipGdi.ddRVal = DDERR_NOTPALETTIZED;
+
+ if
(This->DirectDrawGlobal.lpDDCBtmp->HALDD.FlipToGDISurface(&FlipGdi) !=
DDHAL_DRIVER_HANDLED)
+ {
+ return DDERR_NODRIVERSUPPORT;
+ }
+
[truncated at 1000 lines; 3251 more skipped]