DWORD *puFourCC = NULL;\r
\r
DD_HALINFO HalInfo;\r
+ DD_HALINFO oldHalInfo;\r
DWORD CallBackFlags[4];\r
D3DNTHAL_CALLBACKS D3dCallbacks;\r
D3DNTHAL_GLOBALDRIVERDATA D3dDriverData;\r
/* unsuse always 0 */\r
RTEST(pHalInfo->vmiData.dwFlags == 0 );\r
\r
- /* fixme check the res */\r
-\r
-\r
+ /* Check the res */\r
RTEST(pHalInfo->vmiData.dwDisplayWidth == devmode.dmPelsWidth );\r
RTEST(pHalInfo->vmiData.dwDisplayHeight == devmode.dmPelsHeight ); \r
/* FIXME \r
RTEST(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT) ); \r
ASSERT1(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));\r
\r
+ /* Fail on 8bit screen deep */\r
+ RTEST(pHalInfo->vmiData.ddpfDisplay.dwFlags == DDPF_RGB);\r
+\r
\r
/* No fourcc are use on primary screen */\r
RTEST(pHalInfo->vmiData.ddpfDisplay.dwFourCC == 0 );\r
//RTEST(pHalInfo->vmiData.ddpfDisplay.dwRBitMask == 0 );\r
//RTEST(pHalInfo->vmiData.ddpfDisplay.dwGBitMask == 0 );\r
//RTEST(pHalInfo->vmiData.ddpfDisplay.dwBBitMask == 0 );\r
+\r
/* primary never set the alpha blend mask */\r
RTEST(pHalInfo->vmiData.ddpfDisplay.dwRGBAlphaBitMask == 0 );\r
\r
// pHalInfo->vmiData->dwAlphaAlign : 0x00000000\r
\r
/* the primary display address */\r
- RTEST(pHalInfo->vmiData.pvPrimary != 0x00000000 );\r
+ /* test see if it in kmode memory or not */\r
+ RTEST(pHalInfo->vmiData.pvPrimary != 0 );\r
+ \r
+ /* Test see if we got any hardware acclartions for 2d or 3d */\r
+ //RTEST(pHalInfo->ddCaps.dwSize == sizeof(DDCORECAPS));\r
+\r
+ /* Testing see if we got any hw support for \r
+ * This test can fail on video card that does not support 2d/overlay/3d \r
+ */\r
+ RTEST( pHalInfo->ddCaps.dwCaps != 0);\r
+ RTEST( pHalInfo->ddCaps.ddsCaps.dwCaps != 0);\r
+\r
+ /* if this fail we do not have a dx driver install acodring ms, some version of windows it\r
+ * is okay this fail and drv does then only support basic dx \r
+ */\r
+ RTEST( (pHalInfo->dwFlags & (DDHALINFO_GETDRIVERINFOSET | DDHALINFO_GETDRIVERINFO2)) != 0 );\r
+\r
+ if (pHalInfo->ddCaps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE )\r
+ {\r
+ RTEST( pHalInfo->lpD3DGlobalDriverData != 0);\r
+ RTEST( pHalInfo->lpD3DHALCallbacks != 0);\r
+ RTEST( pHalInfo->lpD3DBufCallbacks != 0);\r
+ }\r
}\r
\r
+ /* FIXME DD_HALINFO_V4 test */\r
+\r
+ RtlCopyMemory(&oldHalInfo, &HalInfo, sizeof(DD_HALINFO));\r
+\r
+ pHalInfo = &HalInfo;\r
+ pCallBackFlags = CallBackFlags;\r
+ RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+ RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
+ pCallBackFlags, puD3dCallbacks, \r
+ puD3dDriverData, puD3dBufferCallbacks, \r
+ puD3dTextureFormats, puNumHeaps, \r
+ puvmList, puNumFourCC,\r
+ puFourCC)== FALSE);\r
+ RTEST(pHalInfo != NULL);\r
+ RTEST(pCallBackFlags != NULL);\r
+ RTEST(puD3dCallbacks == NULL);\r
+ RTEST(puD3dDriverData == NULL);\r
+ RTEST(puD3dBufferCallbacks == NULL);\r
+ RTEST(puD3dTextureFormats == NULL);\r
+ RTEST(puNumFourCC == NULL);\r
+ RTEST(puFourCC == NULL);\r
+ ASSERT1(pHalInfo != NULL);\r
+\r
+ /* We do not retesting DD_HALINFO, instead we compare it */\r
+ RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+\r
+\r
/* Cleanup ReactX setup */\r
DeleteDC(hdc);\r
Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDraw);\r