RtlMoveMemory(puD3dCallbacks, pHalInfo->lpD3DHALCallbacks, sizeof( D3DNTHAL_CALLBACKS ) );
}
-
if (pHalInfo->lpD3DBufCallbacks)
{
DPRINT1("Found DirectDraw CallBack for 3D Hal Bufffer \n");
PDD_WAITFORVERTICALBLANKDATA puWaitForVerticalBlankData
)
{
- DWORD ddRVal;
+ DWORD ddRVal = DDHAL_DRIVER_NOTHANDLED;
PDD_DIRECTDRAW_GLOBAL lgpl;
PDD_DIRECTDRAW pDirectDraw;
-#ifdef DX_DEBUG
- DPRINT1("NtGdiDdWaitForVerticalBlank\n");
-#endif
+ DPRINT1("NtGdiDdWaitForVerticalBlank\n");
pDirectDraw = GDIOBJ_LockObj(DdHandleTable, hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
- if (pDirectDraw == NULL)
- return DDHAL_DRIVER_NOTHANDLED;
-
- /* backup the orignal PDev and info */
- lgpl = puWaitForVerticalBlankData->lpDD;
-
- /* use our cache version instead */
- puWaitForVerticalBlankData->lpDD = &pDirectDraw->Global;
-
- /* make the call */
- if (!(pDirectDraw->DD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK))
- ddRVal = DDHAL_DRIVER_NOTHANDLED;
- else
- ddRVal = pDirectDraw->DD.WaitForVerticalBlank(puWaitForVerticalBlankData);
+
+ if (pDirectDraw != NULL)
+ {
+ if (pDirectDraw->DD.dwFlags & DDHAL_CB32_WAITFORVERTICALBLANK)
+ {
+ lgpl = puWaitForVerticalBlankData->lpDD;
+ puWaitForVerticalBlankData->lpDD = &pDirectDraw->Global;
- /* But back the orignal PDev */
- puWaitForVerticalBlankData->lpDD = lgpl;
+ ddRVal = pDirectDraw->DD.WaitForVerticalBlank(puWaitForVerticalBlankData);
+
+ puWaitForVerticalBlankData->lpDD = lgpl;
+ }
+ GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
+ }
- GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
return ddRVal;
}
PDD_CANCREATESURFACEDATA puCanCreateSurfaceData
)
{
- DWORD ddRVal;
+ DWORD ddRVal = DDHAL_DRIVER_NOTHANDLED;
PDD_DIRECTDRAW_GLOBAL lgpl;
PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(DdHandleTable, hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
-#ifdef DX_DEBUG
+
DPRINT1("NtGdiDdCanCreateSurface\n");
-#endif
+
if (pDirectDraw == NULL)
return DDHAL_DRIVER_NOTHANDLED;
- /* backup the orignal PDev and info */
- lgpl = puCanCreateSurfaceData->lpDD;
+ if (pDirectDraw != NULL)
+ {
- /* use our cache version instead */
- puCanCreateSurfaceData->lpDD = &pDirectDraw->Global;
+ if (pDirectDraw->DD.dwFlags & DDHAL_CB32_CANCREATESURFACE)
+ {
+ lgpl = puCanCreateSurfaceData->lpDD;
+ puCanCreateSurfaceData->lpDD = &pDirectDraw->Global;
- /* make the call */
- if (!(pDirectDraw->DD.dwFlags & DDHAL_CB32_CANCREATESURFACE))
- ddRVal = DDHAL_DRIVER_NOTHANDLED;
- else
- ddRVal = pDirectDraw->DD.CanCreateSurface(puCanCreateSurfaceData);
+ ddRVal = pDirectDraw->DD.CanCreateSurface(puCanCreateSurfaceData);
- /* But back the orignal PDev */
- puCanCreateSurfaceData->lpDD = lgpl;
+ puCanCreateSurfaceData->lpDD = lgpl;
+ }
GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
- return ddRVal;
+ }
+
+ return ddRVal;
}
DWORD STDCALL NtGdiDdGetScanLine(
PDD_GETSCANLINEDATA puGetScanLineData
)
{
- DWORD ddRVal;
+ DWORD ddRVal = DDHAL_DRIVER_NOTHANDLED;
PDD_DIRECTDRAW_GLOBAL lgpl;
PDD_DIRECTDRAW pDirectDraw = GDIOBJ_LockObj(DdHandleTable, hDirectDrawLocal, GDI_OBJECT_TYPE_DIRECTDRAW);
-#ifdef DX_DEBUG
- DPRINT1("NtGdiDdGetScanLine\n");
-#endif
- if (pDirectDraw == NULL)
- return DDHAL_DRIVER_NOTHANDLED;
- /* backup the orignal PDev and info */
- lgpl = puGetScanLineData->lpDD;
-
- /* use our cache version instead */
- puGetScanLineData->lpDD = &pDirectDraw->Global;
+ DPRINT1("NtGdiDdGetScanLine\n");
- /* make the call */
- if (!(pDirectDraw->DD.dwFlags & DDHAL_CB32_GETSCANLINE))
- ddRVal = DDHAL_DRIVER_NOTHANDLED;
- else
- ddRVal = pDirectDraw->DD.GetScanLine(puGetScanLineData);
+ if (pDirectDraw != NULL)
+ {
+ if (pDirectDraw->DD.dwFlags & DDHAL_CB32_GETSCANLINE)
+ {
+ lgpl = puGetScanLineData->lpDD;
+ puGetScanLineData->lpDD = &pDirectDraw->Global;
+
+ ddRVal = pDirectDraw->DD.GetScanLine(puGetScanLineData);
+
+ puGetScanLineData->lpDD = lgpl;
+ }
- /* But back the orignal PDev */
- puGetScanLineData->lpDD = lgpl;
+ GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
+ }
- GDIOBJ_UnlockObjByPtr(DdHandleTable, pDirectDraw);
- return ddRVal;
+ return ddRVal;
}