Author: greatlrd
Date: Wed Nov 29 21:51:04 2006
New Revision: 24970
URL:
http://svn.reactos.org/svn/reactos?rev=24970&view=rev
Log:
fixing some of the mix betwin hel and hal. (still not complete)
fixing some of dections of DDCREATE_HARDWAREONLY and DDCREATE_EMULATIONONLY,
we are now swicting betwin mix HEL and HAL, only HAL, or only HEL. But this is not
complete yet
adding more comment so i do not forget in startuphal
Modified:
trunk/reactos/dll/directx/ddraw/startup.c
Modified: trunk/reactos/dll/directx/ddraw/startup.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ddraw/startup.…
==============================================================================
--- trunk/reactos/dll/directx/ddraw/startup.c (original)
+++ trunk/reactos/dll/directx/ddraw/startup.c Wed Nov 29 21:51:04 2006
@@ -170,9 +170,9 @@
This->lpLcl->hDD = This->lpLcl->lpGbl->hDD;
- /* Fixme the mix betwin hel and hal */
+ /* Mix the DDCALLBACKS */
+
This->lpLcl->lpDDCB->cbDDCallbacks.dwSize =
sizeof(This->lpLcl->lpDDCB->cbDDCallbacks);
-
if ((This->lpLcl->lpDDCB->HALDD.dwFlags & DDHAL_CB32_CANCREATESURFACE)
&& (devicetypes !=3))
{
@@ -277,7 +277,520 @@
This->lpLcl->lpDDCB->HELDD.WaitForVerticalBlank;
}
-
+ /* Mix the DDSURFACE CALLBACKS */
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwSize =
sizeof(This->lpLcl->lpDDCB->cbDDSurfaceCallbacks);
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_ADDATTACHEDSURFACE) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_ADDATTACHEDSURFACE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.AddAttachedSurface =
+ This->lpLcl->lpDDCB->HALDDSurface.AddAttachedSurface;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_ADDATTACHEDSURFACE) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_ADDATTACHEDSURFACE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.AddAttachedSurface =
+ This->lpLcl->lpDDCB->HELDDSurface.AddAttachedSurface;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_BLT)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_BLT;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Blt =
+ This->lpLcl->lpDDCB->HALDDSurface.Blt;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags & DDHAL_SURFCB32_BLT)
&& (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_BLT;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Blt =
+ This->lpLcl->lpDDCB->HELDDSurface.Blt;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_DESTROYSURFACE) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_DESTROYSURFACE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.DestroySurface =
+ This->lpLcl->lpDDCB->HALDDSurface.DestroySurface;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_DESTROYSURFACE) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_DESTROYSURFACE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.DestroySurface =
+ This->lpLcl->lpDDCB->HELDDSurface.DestroySurface;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_FLIP)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_FLIP;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Flip =
+ This->lpLcl->lpDDCB->HALDDSurface.Flip;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags & DDHAL_SURFCB32_FLIP)
&& (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_FLIP;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Flip =
+ This->lpLcl->lpDDCB->HELDDSurface.Flip;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_GETBLTSTATUS) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_GETBLTSTATUS;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.GetBltStatus =
+ This->lpLcl->lpDDCB->HALDDSurface.GetBltStatus;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_GETBLTSTATUS) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_GETBLTSTATUS;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.GetBltStatus =
+ This->lpLcl->lpDDCB->HELDDSurface.GetBltStatus;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_GETFLIPSTATUS) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_GETFLIPSTATUS;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.GetFlipStatus =
+ This->lpLcl->lpDDCB->HALDDSurface.GetFlipStatus;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_GETFLIPSTATUS) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_GETFLIPSTATUS;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.GetFlipStatus =
+ This->lpLcl->lpDDCB->HELDDSurface.GetFlipStatus;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_LOCK)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_LOCK;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Lock =
+ This->lpLcl->lpDDCB->HALDDSurface.Lock;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags & DDHAL_SURFCB32_LOCK)
&& (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_LOCK;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Lock =
+ This->lpLcl->lpDDCB->HELDDSurface.Lock;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_RESERVED4)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_RESERVED4;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.reserved4 =
+ This->lpLcl->lpDDCB->HALDDSurface.reserved4;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_RESERVED4) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_RESERVED4;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.reserved4 =
+ This->lpLcl->lpDDCB->HELDDSurface.reserved4;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_SETCLIPLIST) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETCLIPLIST;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetClipList =
+ This->lpLcl->lpDDCB->HALDDSurface.SetClipList;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_SETCLIPLIST) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETCLIPLIST;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetClipList =
+ This->lpLcl->lpDDCB->HELDDSurface.SetClipList;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_SETCOLORKEY) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETCOLORKEY;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetColorKey =
+ This->lpLcl->lpDDCB->HALDDSurface.SetColorKey;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_SETCOLORKEY) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETCOLORKEY;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetColorKey =
+ This->lpLcl->lpDDCB->HELDDSurface.SetColorKey;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_SETOVERLAYPOSITION) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETOVERLAYPOSITION;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetOverlayPosition =
+ This->lpLcl->lpDDCB->HALDDSurface.SetOverlayPosition;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_SETOVERLAYPOSITION) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETOVERLAYPOSITION;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetOverlayPosition =
+ This->lpLcl->lpDDCB->HELDDSurface.SetOverlayPosition;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_SETPALETTE)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETPALETTE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetPalette =
+ This->lpLcl->lpDDCB->HALDDSurface.SetPalette;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_SETPALETTE) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_SETPALETTE;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.SetPalette =
+ This->lpLcl->lpDDCB->HELDDSurface.SetPalette;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags & DDHAL_SURFCB32_UNLOCK)
&& (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_UNLOCK;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Unlock =
+ This->lpLcl->lpDDCB->HALDDSurface.Unlock;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_UNLOCK) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |= DDHAL_SURFCB32_UNLOCK;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.Unlock =
+ This->lpLcl->lpDDCB->HELDDSurface.Unlock;
+ }
+
+ if ((This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_SURFCB32_UPDATEOVERLAY) && (devicetypes !=3))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_UPDATEOVERLAY;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.UpdateOverlay =
+ This->lpLcl->lpDDCB->HALDDSurface.UpdateOverlay;
+ }
+ else if ((This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_SURFCB32_UPDATEOVERLAY) && (devicetypes !=2))
+ {
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.dwFlags |=
DDHAL_SURFCB32_UPDATEOVERLAY;
+
+ This->lpLcl->lpDDCB->cbDDSurfaceCallbacks.UpdateOverlay =
+ This->lpLcl->lpDDCB->HELDDSurface.UpdateOverlay;
+ }
+
+
+ /* Mix the DDPALETTE CALLBACKS
+ This->lpLcl->lpDDCB->HELDDPalette.DestroyPalette = HelDdPalDestroyPalette;
+ This->lpLcl->lpDDCB->HELDDPalette.SetEntries = HelDdPalSetEntries;
+ This->lpLcl->lpDDCB->HELDDPalette.dwSize =
sizeof(This->lpLcl->lpDDCB->HELDDPalette);
+ */
+
+ /* Mix the DDExeBuf CALLBACKS */
+
+ if (This->lpLcl->lpDDCB->HALDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_CANCREATEEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CanCreateExecuteBuffer =
+ This->lpLcl->lpDDCB->HALDDExeBuf.CanCreateExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CANCREATEEXEBUF;
+ }
+ else if (This->lpLcl->lpDDCB->HELDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_CANCREATEEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CanCreateExecuteBuffer =
+ This->lpLcl->lpDDCB->HELDDExeBuf.CanCreateExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CANCREATEEXEBUF;
+ }
+
+ if (This->lpLcl->lpDDCB->HALDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_CREATEEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CreateExecuteBuffer =
+ This->lpLcl->lpDDCB->HALDDExeBuf.CreateExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CREATEEXEBUF;
+ }
+ else if (This->lpLcl->lpDDCB->HELDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_CREATEEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CreateExecuteBuffer =
+ This->lpLcl->lpDDCB->HELDDExeBuf.CreateExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CREATEEXEBUF;
+ }
+
+ if (This->lpLcl->lpDDCB->HALDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_DESTROYEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.DestroyExecuteBuffer =
+ This->lpLcl->lpDDCB->HALDDExeBuf.DestroyExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_DESTROYEXEBUF;
+ }
+ else if (This->lpLcl->lpDDCB->HELDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_DESTROYEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.DestroyExecuteBuffer =
+ This->lpLcl->lpDDCB->HELDDExeBuf.DestroyExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_DESTROYEXEBUF;
+ }
+
+ if (This->lpLcl->lpDDCB->HALDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_LOCKEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.LockExecuteBuffer =
+ This->lpLcl->lpDDCB->HALDDExeBuf.LockExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_LOCKEXEBUF;
+ }
+ else if (This->lpLcl->lpDDCB->HELDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_LOCKEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.LockExecuteBuffer =
+ This->lpLcl->lpDDCB->HELDDExeBuf.LockExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_LOCKEXEBUF;
+ }
+
+ if (This->lpLcl->lpDDCB->HALDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_UNLOCKEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.UnlockExecuteBuffer =
+ This->lpLcl->lpDDCB->HALDDExeBuf.UnlockExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_UNLOCKEXEBUF;
+ }
+ else if (This->lpLcl->lpDDCB->HELDDExeBuf.dwFlags &
DDHAL_EXEBUFCB32_UNLOCKEXEBUF)
+ {
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.UnlockExecuteBuffer =
+ This->lpLcl->lpDDCB->HELDDExeBuf.UnlockExecuteBuffer;
+ This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_UNLOCKEXEBUF;
+ }
+
+ /* Fill some basic info for Surface */
+ ddSurfGbl.lpDD = &ddgbl;
+
+ /* FIXME
+ We need setup this also
+ This->lpLcl->lpDDCB->cbDDColorControlCallbacks
+ This->lpLcl->lpDDCB->cbDDKernelCallbacks
+ This->lpLcl->lpDDCB->cbDDMiscellaneousCallbacks
+ This->lpLcl->lpDDCB->cbDDMotionCompCallbacks
+ This->lpLcl->lpDDCB->cbDDVideoPortCallbacks
+ */
+
+ return DD_OK;
+}
+
+
+HRESULT WINAPI
+StartDirectDrawHal(LPDIRECTDRAW* iface)
+{
+ LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT)iface;
+ DDHAL_GETDRIVERINFODATA DriverInfo;
+
+ DDHALINFO mHALInfo;
+ DDHAL_CALLBACKS mCallbacks;
+ DDHAL_DDEXEBUFCALLBACKS mD3dBufferCallbacks;
+ D3DHAL_CALLBACKS mD3dCallbacks;
+ D3DHAL_GLOBALDRIVERDATA mD3dDriverData;
+ UINT mcvmList;
+ VIDMEM *mpvmList;
+
+ UINT mcFourCC;
+ DWORD *mpFourCC;
+ UINT mcTextures;
+ DDSURFACEDESC *mpTextures;
+
+ /* HAL Startup process */
+ BOOL newmode = FALSE;
+
+
+ RtlZeroMemory(&mHALInfo, sizeof(DDHALINFO));
+ RtlZeroMemory(&mCallbacks, sizeof(DDHAL_CALLBACKS));
+
+ /*
+ Startup DX HAL step one of three
+ */
+ if (!DdCreateDirectDrawObject(This->lpLcl->lpGbl, (HDC)This->lpLcl->hDC))
+ {
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ return DD_FALSE;
+ }
+
+ // Do not relase HDC it have been map in kernel mode
+ // DeleteDC(hdc);
+
+ if (!DdReenableDirectDrawObject(This->lpLcl->lpGbl, &newmode))
+ {
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ return DD_FALSE;
+ }
+
+
+ /*
+ Startup DX HAL step two of three
+ */
+
+ if (!DdQueryDirectDrawObject(This->lpLcl->lpGbl,
+ &mHALInfo,
+ &mCallbacks.HALDD,
+ &mCallbacks.HALDDSurface,
+ &mCallbacks.HALDDPalette,
+ &mD3dCallbacks,
+ &mD3dDriverData,
+ &mD3dBufferCallbacks,
+ NULL,
+ NULL,
+ NULL))
+ {
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ // FIXME Close DX fristcall and second call
+ return DD_FALSE;
+ }
+
+ mcvmList = mHALInfo.vmiData.dwNumHeaps;
+ mpvmList = (VIDMEM*) DxHeapMemAlloc(sizeof(VIDMEM) * mcvmList);
+ if (mpvmList == NULL)
+ {
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ // FIXME Close DX fristcall and second call
+ return DD_FALSE;
+ }
+
+ mcFourCC = mHALInfo.ddCaps.dwNumFourCCCodes;
+ mpFourCC = (DWORD *) DxHeapMemAlloc(sizeof(DWORD) * mcFourCC);
+ if (mpFourCC == NULL)
+ {
+ DxHeapMemFree(mpvmList);
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ // FIXME Close DX fristcall and second call
+ return DD_FALSE;
+ }
+
+ mcTextures = mD3dDriverData.dwNumTextureFormats;
+ mpTextures = (DDSURFACEDESC*) DxHeapMemAlloc(sizeof(DDSURFACEDESC) * mcTextures);
+ if (mpTextures == NULL)
+ {
+ DxHeapMemFree( mpFourCC);
+ DxHeapMemFree( mpvmList);
+ DxHeapMemFree( This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ // FIXME Close DX fristcall and second call
+ return DD_FALSE;
+ }
+
+ mHALInfo.vmiData.pvmList = mpvmList;
+ mHALInfo.lpdwFourCC = mpFourCC;
+ mD3dDriverData.lpTextureFormats = (DDSURFACEDESC*) mpTextures;
+
+ if (!DdQueryDirectDrawObject(
+ This->lpLcl->lpGbl,
+ &mHALInfo,
+ &mCallbacks.HALDD,
+ &mCallbacks.HALDDSurface,
+ &mCallbacks.HALDDPalette,
+ &mD3dCallbacks,
+ &mD3dDriverData,
+ &mCallbacks.HALDDExeBuf,
+ (DDSURFACEDESC*)mpTextures,
+ mpFourCC,
+ mpvmList))
+
+ {
+ DxHeapMemFree(mpTextures);
+ DxHeapMemFree(mpFourCC);
+ DxHeapMemFree(mpvmList);
+ DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
+ DeleteDC((HDC)This->lpLcl->hDC);
+ // FIXME Close DX fristcall and second call
+ return DD_FALSE;
+ }
+
+ /*
+ Copy over from HalInfo to DirectDrawGlobal
+ */
+
+ // this is wrong, cDriverName need be in ASC code not UNICODE
+ //memcpy(mDDrawGlobal.cDriverName, mDisplayAdapter, sizeof(wchar)*MAX_DRIVER_NAME);
+
+ memcpy(&ddgbl.vmiData, &mHALInfo.vmiData,sizeof(VIDMEMINFO));
+ memcpy(&ddgbl.ddCaps, &mHALInfo.ddCaps,sizeof(DDCORECAPS));
+
+ mHALInfo.dwNumModes = 1;
+ mHALInfo.lpModeInfo = This->lpLcl->lpGbl->lpModeInfo;
+ mHALInfo.dwMonitorFrequency = This->lpLcl->lpGbl->lpModeInfo[0].wRefreshRate;
+
+ This->lpLcl->lpGbl->dwMonitorFrequency = mHALInfo.dwMonitorFrequency;
+ This->lpLcl->lpGbl->dwModeIndex = mHALInfo.dwModeIndex;
+ This->lpLcl->lpGbl->dwNumModes = mHALInfo.dwNumModes;
+ This->lpLcl->lpGbl->lpModeInfo = mHALInfo.lpModeInfo;
+ This->lpLcl->lpGbl->hInstance = mHALInfo.hInstance;
+
+ This->lpLcl->lpGbl->lp16DD = This->lpLcl->lpGbl;
+
+
+ memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA));
+ DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA);
+ DriverInfo.dwContext = This->lpLcl->lpGbl->hDD;
+
+ /* Get the MiscellaneousCallbacks */
+ DriverInfo.guidInfo = GUID_MiscellaneousCallbacks;
+ DriverInfo.lpvData = &ddgbl.lpDDCBtmp->HALDDMiscellaneous;
+ DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
+ mHALInfo.GetDriverInfo(&DriverInfo);
+
+
+ /* FIXME
+ The 3d and private data are not save at moment
+
+ we need lest the private data being setup
+ for some driver are puting kmode memory there
+ the memory often contain the private struct +
+ surface, see MS DDK how MS example driver using
+ it
+
+ the 3d interface are not so improten if u do not
+ want the 3d, and we are not writing 3d code yet
+ so we be okay for now.
+ */
+
+
+ return DD_OK;
+}
+
+HRESULT WINAPI
+StartDirectDrawHel(LPDIRECTDRAW* iface)
+{
+ LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT)iface;
+
+ This->lpLcl->lpDDCB->HELDD.CanCreateSurface = HelDdCanCreateSurface;
+ This->lpLcl->lpDDCB->HELDD.CreateSurface = HelDdCreateSurface;
+ This->lpLcl->lpDDCB->HELDD.CreatePalette = HelDdCreatePalette;
+ This->lpLcl->lpDDCB->HELDD.DestroyDriver = HelDdDestroyDriver;
+ //This->lpLcl->lpDDCB->HELDD.FlipToGDISurface = HelDdFlipToGDISurface
+ This->lpLcl->lpDDCB->HELDD.GetScanLine = HelDdGetScanLine;
+ // This->lpLcl->lpDDCB->HELDD.SetColorKey = HelDdSetColorKey;
+ This->lpLcl->lpDDCB->HELDD.SetExclusiveMode = HelDdSetExclusiveMode;
+ This->lpLcl->lpDDCB->HELDD.SetMode = HelDdSetMode;
+ This->lpLcl->lpDDCB->HELDD.WaitForVerticalBlank = HelDdWaitForVerticalBlank;
+
+ This->lpLcl->lpDDCB->HELDD.dwFlags = DDHAL_CB32_CANCREATESURFACE |
+ DDHAL_CB32_CREATESURFACE |
+ DDHAL_CB32_CREATEPALETTE |
+ DDHAL_CB32_DESTROYDRIVER |
+ // DDHAL_CB32_FLIPTOGDISURFACE |
+ DDHAL_CB32_GETSCANLINE |
+ // DDHAL_CB32_SETCOLORKEY |
+ DDHAL_CB32_SETEXCLUSIVEMODE |
+ DDHAL_CB32_SETMODE |
+ DDHAL_CB32_WAITFORVERTICALBLANK ;
+
+
+ This->lpLcl->lpDDCB->HELDD.dwSize =
sizeof(This->lpLcl->lpDDCB->HELDD);
+
/*
This->lpLcl->lpDDCB->HELDDSurface.AddAttachedSurface =
HelDdSurfAddAttachedSurface;
This->lpLcl->lpDDCB->HELDDSurface.Blt = HelDdSurfBlt;
@@ -301,298 +814,6 @@
This->lpLcl->lpDDCB->HELDDPalette.dwSize =
sizeof(This->lpLcl->lpDDCB->HELDDPalette);
*/
- if (This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_EXEBUFCB32_CANCREATEEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CanCreateExecuteBuffer =
- This->lpLcl->lpDDCB->HALDDExeBuf.CanCreateExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CANCREATEEXEBUF;
- }
- else if (This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_EXEBUFCB32_CANCREATEEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CanCreateExecuteBuffer =
- This->lpLcl->lpDDCB->HELDDExeBuf.CanCreateExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CANCREATEEXEBUF;
- }
-
- if (This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_EXEBUFCB32_CREATEEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CreateExecuteBuffer =
- This->lpLcl->lpDDCB->HALDDExeBuf.CreateExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CREATEEXEBUF;
- }
- else if (This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_EXEBUFCB32_CREATEEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.CreateExecuteBuffer =
- This->lpLcl->lpDDCB->HELDDExeBuf.CreateExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_CREATEEXEBUF;
- }
-
- if (This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_EXEBUFCB32_DESTROYEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.DestroyExecuteBuffer =
- This->lpLcl->lpDDCB->HALDDExeBuf.DestroyExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_DESTROYEXEBUF;
- }
- else if (This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_EXEBUFCB32_DESTROYEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.DestroyExecuteBuffer =
- This->lpLcl->lpDDCB->HELDDExeBuf.DestroyExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_DESTROYEXEBUF;
- }
-
- if (This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_EXEBUFCB32_LOCKEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.LockExecuteBuffer =
- This->lpLcl->lpDDCB->HALDDExeBuf.LockExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_LOCKEXEBUF;
- }
- else if (This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_EXEBUFCB32_LOCKEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.LockExecuteBuffer =
- This->lpLcl->lpDDCB->HELDDExeBuf.LockExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_LOCKEXEBUF;
- }
-
- if (This->lpLcl->lpDDCB->HALDDSurface.dwFlags &
DDHAL_EXEBUFCB32_UNLOCKEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.UnlockExecuteBuffer =
- This->lpLcl->lpDDCB->HALDDExeBuf.UnlockExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_UNLOCKEXEBUF;
- }
- else if (This->lpLcl->lpDDCB->HELDDSurface.dwFlags &
DDHAL_EXEBUFCB32_UNLOCKEXEBUF)
- {
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.UnlockExecuteBuffer =
- This->lpLcl->lpDDCB->HELDDExeBuf.UnlockExecuteBuffer;
- This->lpLcl->lpDDCB->cbDDExeBufCallbacks.dwFlags |=
DDHAL_EXEBUFCB32_UNLOCKEXEBUF;
- }
-
- /* Fill some basic info for Surface */
- ddSurfGbl.lpDD = &ddgbl;
-
-
- return DD_OK;
-}
-
-
-HRESULT WINAPI
-StartDirectDrawHal(LPDIRECTDRAW* iface)
-{
- LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT)iface;
- DDHAL_GETDRIVERINFODATA DriverInfo;
-
- DDHALINFO mHALInfo;
- DDHAL_CALLBACKS mCallbacks;
- DDHAL_DDEXEBUFCALLBACKS mD3dBufferCallbacks;
- D3DHAL_CALLBACKS mD3dCallbacks;
- D3DHAL_GLOBALDRIVERDATA mD3dDriverData;
- UINT mcvmList;
- VIDMEM *mpvmList;
-
- UINT mcFourCC;
- DWORD *mpFourCC;
- UINT mcTextures;
- DDSURFACEDESC *mpTextures;
-
- /* HAL Startup process */
- BOOL newmode = FALSE;
-
-
- RtlZeroMemory(&mHALInfo, sizeof(DDHALINFO));
- RtlZeroMemory(&mCallbacks, sizeof(DDHAL_CALLBACKS));
-
- /*
- Startup DX HAL step one of three
- */
- if (!DdCreateDirectDrawObject(This->lpLcl->lpGbl, (HDC)This->lpLcl->hDC))
- {
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- return DD_FALSE;
- }
-
- // Do not relase HDC it have been map in kernel mode
- // DeleteDC(hdc);
-
- if (!DdReenableDirectDrawObject(This->lpLcl->lpGbl, &newmode))
- {
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- return DD_FALSE;
- }
-
-
- /*
- Startup DX HAL step two of three
- */
-
- if (!DdQueryDirectDrawObject(This->lpLcl->lpGbl,
- &mHALInfo,
- &mCallbacks.HALDD,
- &mCallbacks.HALDDSurface,
- &mCallbacks.HALDDPalette,
- &mD3dCallbacks,
- &mD3dDriverData,
- &mD3dBufferCallbacks,
- NULL,
- NULL,
- NULL))
- {
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- // FIXME Close DX fristcall and second call
- return DD_FALSE;
- }
-
- mcvmList = mHALInfo.vmiData.dwNumHeaps;
- mpvmList = (VIDMEM*) DxHeapMemAlloc(sizeof(VIDMEM) * mcvmList);
- if (mpvmList == NULL)
- {
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- // FIXME Close DX fristcall and second call
- return DD_FALSE;
- }
-
- mcFourCC = mHALInfo.ddCaps.dwNumFourCCCodes;
- mpFourCC = (DWORD *) DxHeapMemAlloc(sizeof(DWORD) * mcFourCC);
- if (mpFourCC == NULL)
- {
- DxHeapMemFree(mpvmList);
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- // FIXME Close DX fristcall and second call
- return DD_FALSE;
- }
-
- mcTextures = mD3dDriverData.dwNumTextureFormats;
- mpTextures = (DDSURFACEDESC*) DxHeapMemAlloc(sizeof(DDSURFACEDESC) * mcTextures);
- if (mpTextures == NULL)
- {
- DxHeapMemFree( mpFourCC);
- DxHeapMemFree( mpvmList);
- DxHeapMemFree( This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- // FIXME Close DX fristcall and second call
- return DD_FALSE;
- }
-
- mHALInfo.vmiData.pvmList = mpvmList;
- mHALInfo.lpdwFourCC = mpFourCC;
- mD3dDriverData.lpTextureFormats = (DDSURFACEDESC*) mpTextures;
-
- if (!DdQueryDirectDrawObject(
- This->lpLcl->lpGbl,
- &mHALInfo,
- &mCallbacks.HALDD,
- &mCallbacks.HALDDSurface,
- &mCallbacks.HALDDPalette,
- &mD3dCallbacks,
- &mD3dDriverData,
- &mCallbacks.HALDDExeBuf,
- (DDSURFACEDESC*)mpTextures,
- mpFourCC,
- mpvmList))
-
- {
- DxHeapMemFree(mpTextures);
- DxHeapMemFree(mpFourCC);
- DxHeapMemFree(mpvmList);
- DxHeapMemFree(This->lpLcl->lpGbl->lpModeInfo);
- DeleteDC((HDC)This->lpLcl->hDC);
- // FIXME Close DX fristcall and second call
- return DD_FALSE;
- }
-
- /*
- Copy over from HalInfo to DirectDrawGlobal
- */
-
- // this is wrong, cDriverName need be in ASC code not UNICODE
- //memcpy(mDDrawGlobal.cDriverName, mDisplayAdapter, sizeof(wchar)*MAX_DRIVER_NAME);
-
- memcpy(&ddgbl.vmiData, &mHALInfo.vmiData,sizeof(VIDMEMINFO));
- memcpy(&ddgbl.ddCaps, &mHALInfo.ddCaps,sizeof(DDCORECAPS));
-
- mHALInfo.dwNumModes = 1;
- mHALInfo.lpModeInfo = This->lpLcl->lpGbl->lpModeInfo;
- mHALInfo.dwMonitorFrequency = This->lpLcl->lpGbl->lpModeInfo[0].wRefreshRate;
-
- This->lpLcl->lpGbl->dwMonitorFrequency = mHALInfo.dwMonitorFrequency;
- This->lpLcl->lpGbl->dwModeIndex = mHALInfo.dwModeIndex;
- This->lpLcl->lpGbl->dwNumModes = mHALInfo.dwNumModes;
- This->lpLcl->lpGbl->lpModeInfo = mHALInfo.lpModeInfo;
- This->lpLcl->lpGbl->hInstance = mHALInfo.hInstance;
-
- This->lpLcl->lpGbl->lp16DD = This->lpLcl->lpGbl;
-
-
- memset(&DriverInfo,0, sizeof(DDHAL_GETDRIVERINFODATA));
- DriverInfo.dwSize = sizeof(DDHAL_GETDRIVERINFODATA);
- DriverInfo.dwContext = This->lpLcl->lpGbl->hDD;
-
- /* Get the MiscellaneousCallbacks */
- DriverInfo.guidInfo = GUID_MiscellaneousCallbacks;
- DriverInfo.lpvData = &ddgbl.lpDDCBtmp->HALDDMiscellaneous;
- DriverInfo.dwExpectedSize = sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS);
- mHALInfo.GetDriverInfo(&DriverInfo);
-
-
- return DD_OK;
-}
-
-HRESULT WINAPI
-StartDirectDrawHel(LPDIRECTDRAW* iface)
-{
- LPDDRAWI_DIRECTDRAW_INT This = (LPDDRAWI_DIRECTDRAW_INT)iface;
-
- This->lpLcl->lpDDCB->HELDD.CanCreateSurface = HelDdCanCreateSurface;
- This->lpLcl->lpDDCB->HELDD.CreateSurface = HelDdCreateSurface;
- This->lpLcl->lpDDCB->HELDD.CreatePalette = HelDdCreatePalette;
- This->lpLcl->lpDDCB->HELDD.DestroyDriver = HelDdDestroyDriver;
- //This->lpLcl->lpDDCB->HELDD.FlipToGDISurface = HelDdFlipToGDISurface
- This->lpLcl->lpDDCB->HELDD.GetScanLine = HelDdGetScanLine;
- // This->lpLcl->lpDDCB->HELDD.SetColorKey = HelDdSetColorKey;
- This->lpLcl->lpDDCB->HELDD.SetExclusiveMode = HelDdSetExclusiveMode;
- This->lpLcl->lpDDCB->HELDD.SetMode = HelDdSetMode;
- This->lpLcl->lpDDCB->HELDD.WaitForVerticalBlank = HelDdWaitForVerticalBlank;
-
- This->lpLcl->lpDDCB->HELDD.dwFlags = DDHAL_CB32_CANCREATESURFACE |
- DDHAL_CB32_CREATESURFACE |
- DDHAL_CB32_CREATEPALETTE |
- DDHAL_CB32_DESTROYDRIVER |
- // DDHAL_CB32_FLIPTOGDISURFACE |
- DDHAL_CB32_GETSCANLINE |
- // DDHAL_CB32_SETCOLORKEY |
- DDHAL_CB32_SETEXCLUSIVEMODE |
- DDHAL_CB32_SETMODE |
- DDHAL_CB32_WAITFORVERTICALBLANK ;
-
-
- This->lpLcl->lpDDCB->HELDD.dwSize =
sizeof(This->lpLcl->lpDDCB->HELDD);
-
- /*
- This->lpLcl->lpDDCB->HELDDSurface.AddAttachedSurface =
HelDdSurfAddAttachedSurface;
- This->lpLcl->lpDDCB->HELDDSurface.Blt = HelDdSurfBlt;
- This->lpLcl->lpDDCB->HELDDSurface.DestroySurface = HelDdSurfDestroySurface;
- This->lpLcl->lpDDCB->HELDDSurface.Flip = HelDdSurfFlip;
- This->lpLcl->lpDDCB->HELDDSurface.GetBltStatus = HelDdSurfGetBltStatus;
- This->lpLcl->lpDDCB->HELDDSurface.GetFlipStatus = HelDdSurfGetFlipStatus;
- This->lpLcl->lpDDCB->HELDDSurface.Lock = HelDdSurfLock;
- This->lpLcl->lpDDCB->HELDDSurface.reserved4 = HelDdSurfreserved4;
- This->lpLcl->lpDDCB->HELDDSurface.SetClipList = HelDdSurfSetClipList;
- This->lpLcl->lpDDCB->HELDDSurface.SetColorKey = HelDdSurfSetColorKey;
- This->lpLcl->lpDDCB->HELDDSurface.SetOverlayPosition =
HelDdSurfSetOverlayPosition;
- This->lpLcl->lpDDCB->HELDDSurface.SetPalette = HelDdSurfSetPalette;
- This->lpLcl->lpDDCB->HELDDSurface.Unlock = HelDdSurfUnlock;
- This->lpLcl->lpDDCB->HELDDSurface.UpdateOverlay = HelDdSurfUpdateOverlay;
- */
-
- /*
- This->lpLcl->lpDDCB->HELDDPalette.DestroyPalette = HelDdPalDestroyPalette;
- This->lpLcl->lpDDCB->HELDDPalette.SetEntries = HelDdPalSetEntries;
- This->lpLcl->lpDDCB->HELDDPalette.dwSize =
sizeof(This->lpLcl->lpDDCB->HELDDPalette);
- */
-
/*
This->lpLcl->lpDDCB->HELDDExeBuf.CanCreateExecuteBuffer =
HelDdExeCanCreateExecuteBuffer;
This->lpLcl->lpDDCB->HELDDExeBuf.CreateExecuteBuffer =
HelDdExeCreateExecuteBuffer;