fixing minior bugs in DdQueryDirectDrawObject

some data was not fill in

svn path=/trunk/; revision=26035
This commit is contained in:
Magnus Olsen 2007-03-08 19:18:06 +00:00
parent 038309c488
commit 619c975c6a

View file

@ -412,7 +412,7 @@ DdCreateDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc); ghDirectDraw = NtGdiDdCreateDirectDrawObject(hdc);
/* Delete our DC */ /* Delete our DC */
NtGdiDeleteObjectApp(hdc); NtGdiDeleteObjectApp(hdc);
} }
} }
@ -465,9 +465,15 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; D3DNTHAL_GLOBALDRIVERDATA D3dDriverData;
DD_D3DBUFCALLBACKS D3dBufferCallbacks; DD_D3DBUFCALLBACKS D3dBufferCallbacks;
DWORD CallbackFlags[3]; DWORD CallbackFlags[3];
DWORD dwNumHeaps=0, FourCCs; DWORD dwNumHeaps=0, FourCCs=0;
DWORD Flags; DWORD Flags;
/* Clear the structures */
RtlZeroMemory(&HalInfo, sizeof(DD_HALINFO));
RtlZeroMemory(&D3dCallbacks, sizeof(D3DNTHAL_CALLBACKS));
RtlZeroMemory(&D3dDriverData, sizeof(D3DNTHAL_GLOBALDRIVERDATA));
RtlZeroMemory(&D3dBufferCallbacks, sizeof(DD_D3DBUFCALLBACKS));
/* Check if we got a list pointer */ /* Check if we got a list pointer */
if (pvmList) if (pvmList)
{ {
@ -477,13 +483,7 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
pHalInfo->vmiData.dwNumHeaps); pHalInfo->vmiData.dwNumHeaps);
} }
/* Clear the structures */ /* Do the query */
RtlZeroMemory(&HalInfo, sizeof(DD_HALINFO));
RtlZeroMemory(&D3dCallbacks, sizeof(D3DNTHAL_CALLBACKS));
RtlZeroMemory(&D3dDriverData, sizeof(D3DNTHAL_GLOBALDRIVERDATA));
RtlZeroMemory(&D3dBufferCallbacks, sizeof(DD_D3DBUFCALLBACKS));
//* Do the query */
if (!NtGdiDdQueryDirectDrawObject(GetDdHandle(pDirectDrawGlobal->hDD), if (!NtGdiDdQueryDirectDrawObject(GetDdHandle(pDirectDrawGlobal->hDD),
&HalInfo, &HalInfo,
CallbackFlags, CallbackFlags,
@ -531,7 +531,11 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
pHalInfo->vmiData.dwDisplayHeight = HalInfo.vmiData.dwDisplayHeight; pHalInfo->vmiData.dwDisplayHeight = HalInfo.vmiData.dwDisplayHeight;
pHalInfo->vmiData.lDisplayPitch = HalInfo.vmiData.lDisplayPitch; pHalInfo->vmiData.lDisplayPitch = HalInfo.vmiData.lDisplayPitch;
pHalInfo->vmiData.fpPrimary = 0; pHalInfo->vmiData.fpPrimary = 0;
pHalInfo->vmiData.ddpfDisplay = HalInfo.vmiData.ddpfDisplay;
RtlCopyMemory( &pHalInfo->vmiData.ddpfDisplay,
&HalInfo.vmiData.ddpfDisplay,
sizeof(DDPIXELFORMAT));
pHalInfo->vmiData.dwOffscreenAlign = HalInfo.vmiData.dwOffscreenAlign; pHalInfo->vmiData.dwOffscreenAlign = HalInfo.vmiData.dwOffscreenAlign;
pHalInfo->vmiData.dwOverlayAlign = HalInfo.vmiData.dwOverlayAlign; pHalInfo->vmiData.dwOverlayAlign = HalInfo.vmiData.dwOverlayAlign;
pHalInfo->vmiData.dwTextureAlign = HalInfo.vmiData.dwTextureAlign; pHalInfo->vmiData.dwTextureAlign = HalInfo.vmiData.dwTextureAlign;
@ -539,11 +543,15 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
pHalInfo->vmiData.dwAlphaAlign = HalInfo.vmiData.dwAlphaAlign; pHalInfo->vmiData.dwAlphaAlign = HalInfo.vmiData.dwAlphaAlign;
pHalInfo->vmiData.dwNumHeaps = dwNumHeaps; pHalInfo->vmiData.dwNumHeaps = dwNumHeaps;
pHalInfo->vmiData.pvmList = pvmList; pHalInfo->vmiData.pvmList = pvmList;
// pHalInfo->ddCaps = HalInfo.ddCaps;
// pHalInfo->ddCaps.dwNumFourCCCodes = FourCCs; RtlCopyMemory( &pHalInfo->ddCaps, &HalInfo.ddCaps,sizeof(DDCORECAPS ));
pHalInfo->ddCaps.dwNumFourCCCodes = FourCCs;
pHalInfo->lpdwFourCC = pdwFourCC; pHalInfo->lpdwFourCC = pdwFourCC;
pHalInfo->ddCaps.dwRops[6] = 0x1000; pHalInfo->ddCaps.dwRops[6] = 0x1000;
pHalInfo->dwFlags = HalInfo.dwFlags | DDHALINFO_GETDRIVERINFOSET;
/* FIXME implement DdGetDriverInfo */
// pHalInfo->dwFlags = HalInfo.dwFlags | DDHALINFO_GETDRIVERINFOSET;
// pHalInfo->GetDriverInfo = DdGetDriverInfo; // pHalInfo->GetDriverInfo = DdGetDriverInfo;
/* Now check if we got any DD callbacks */ /* Now check if we got any DD callbacks */
@ -557,8 +565,8 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
/* Write the header */ /* Write the header */
pDDCallbacks->dwSize = sizeof(DDHAL_DDCALLBACKS); pDDCallbacks->dwSize = sizeof(DDHAL_DDCALLBACKS);
pDDCallbacks->dwFlags = Flags; pDDCallbacks->dwFlags = Flags;
/* Now write the pointers, if applicable */ /* Now write the pointers, if applicable */
if (Flags & DDHAL_CB32_CREATESURFACE) if (Flags & DDHAL_CB32_CREATESURFACE)
{ {
@ -586,13 +594,12 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
/* Set the flags for this one */ /* Set the flags for this one */
Flags = CallbackFlags[1]; Flags = CallbackFlags[1];
/* Write the header, note that some functions are always exposed */ /* Write the header, note that some functions are always exposed */
pDDSurfaceCallbacks->dwSize = sizeof(DDHAL_DDSURFACECALLBACKS); pDDSurfaceCallbacks->dwSize = sizeof(DDHAL_DDSURFACECALLBACKS);
pDDSurfaceCallbacks->dwFlags = Flags; pDDSurfaceCallbacks->dwFlags = Flags;
/* /*
pDDSurfaceCallBacks->dwFlags = (DDHAL_SURFCB32_LOCK | pDDSurfaceCallBacks->dwFlags = (DDHAL_SURFCB32_LOCK |
DDHAL_SURFCB32_UNLOCK | DDHAL_SURFCB32_UNLOCK |
DDHAL_SURFCB32_SETCOLORKEY | DDHAL_SURFCB32_SETCOLORKEY |
@ -652,7 +659,7 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
/* Check for D3D Callbacks */ /* Check for D3D Callbacks */
if (pD3dCallbacks) if (pD3dCallbacks)
{ {
/* Zero the struct */ /* Zero the struct */
RtlZeroMemory(pD3dCallbacks, sizeof(D3DHAL_CALLBACKS)); RtlZeroMemory(pD3dCallbacks, sizeof(D3DHAL_CALLBACKS));
@ -665,9 +672,9 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
/* Now check for each callback */ /* Now check for each callback */
if (D3dCallbacks.ContextCreate) if (D3dCallbacks.ContextCreate)
{ {
/* FIXME /* FIXME
pD3dCallbacks->ContextCreate = D3dContextCreate; pD3dCallbacks->ContextCreate = D3dContextCreate;
*/ */
} }
if (D3dCallbacks.ContextDestroy) if (D3dCallbacks.ContextDestroy)
{ {
@ -675,9 +682,9 @@ DdQueryDirectDrawObject(LPDDRAWI_DIRECTDRAW_GBL pDirectDrawGlobal,
} }
if (D3dCallbacks.ContextDestroyAll) if (D3dCallbacks.ContextDestroyAll)
{ {
/* FIXME /* FIXME
pD3dCallbacks->ContextDestroyAll = (LPD3DHAL_CONTEXTDESTROYALLCB) NtGdiD3dContextDestroyAll; pD3dCallbacks->ContextDestroyAll = (LPD3DHAL_CONTEXTDESTROYALLCB) NtGdiD3dContextDestroyAll;
*/ */
} }
} }
} }