DD_D3DBUFCALLBACKS oldD3dBufferCallbacks;\r
\r
DDSURFACEDESC2 D3dTextureFormats[100];\r
- //DWORD NumHeaps = 0;\r
+ DWORD NumHeaps = 0;\r
VIDEOMEMORY vmList;\r
//DWORD NumFourCC = 0;\r
//DWORD FourCC = 0;\r
}\r
\r
\r
+ /* testing NtGdiDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, NULL, */ \r
+ pHalInfo = &HalInfo;\r
+ pCallBackFlags = CallBackFlags;\r
+ puD3dCallbacks = &D3dCallbacks;\r
+ puD3dDriverData = &D3dDriverData;\r
+ puD3dBufferCallbacks = &D3dBufferCallbacks;\r
+ puNumHeaps = &NumHeaps;\r
+ \r
+ if (puD3dDriverData->dwNumTextureFormats != 0)\r
+ {\r
+ RtlZeroMemory(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2));\r
+ } \r
+ RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+ RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
+ RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+ RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_GLOBALDRIVERDATA));\r
+ RtlZeroMemory(&D3dBufferCallbacks,sizeof(DD_D3DBUFCALLBACKS));\r
+\r
+ RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,\r
+ pCallBackFlags, puD3dCallbacks,\r
+ puD3dDriverData, puD3dBufferCallbacks,\r
+ puD3dTextureFormats, puNumHeaps,\r
+ puvmList, puNumFourCC,\r
+ puFourCC)== FALSE);\r
+\r
+ RTEST(pHalInfo != NULL);\r
+ ASSERT(pHalInfo != NULL);\r
+\r
+ RTEST(pCallBackFlags != NULL);\r
+ ASSERT(pCallBackFlags != NULL);\r
+\r
+ RTEST(puD3dCallbacks != NULL);\r
+ ASSERT(puD3dCallbacks != NULL);\r
+\r
+ RTEST(puD3dDriverData != NULL);\r
+ ASSERT(puD3dDriverData != NULL);\r
+\r
+ RTEST(puD3dBufferCallbacks != NULL);\r
+ ASSERT(puD3dDriverData != NULL);\r
+\r
+ RTEST(puD3dTextureFormats != NULL);\r
+ ASSERT(puD3dTextureFormats != NULL);\r
+ \r
+ RTEST(puNumHeaps != NULL);\r
+ ASSERT(puNumHeaps != NULL);\r
+ RTEST(NumHeaps == 0);\r
+\r
+ RTEST(puNumFourCC == NULL);\r
+ RTEST(puFourCC == NULL);\r
+ \r
+ RTEST(puvmList == NULL);\r
+\r
+ /* We retesting the flags */ \r
+ RTEST(pCallBackFlags[0] != 0);\r
+ RTEST(pCallBackFlags[1] != 0);\r
+ RTEST(pCallBackFlags[2] == 0);\r
+\r
+ /* We do not retesting instead we compare it */\r
+ RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+ RTEST(memcmp(&oldD3dCallbacks, puD3dCallbacks, sizeof(D3DNTHAL_CALLBACKS)) == 0);\r
+ RTEST(memcmp(&oldD3dDriverData, puD3dDriverData, sizeof(D3DNTHAL_GLOBALDRIVERDATA)) == 0);\r
+ RTEST(memcmp(&oldD3dBufferCallbacks, puD3dBufferCallbacks, sizeof(DD_D3DBUFCALLBACKS)) == 0);\r
+ /* we skip resting texture */\r
+\r
+\r
+ /* testing NtGdiDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, puvmList, NULL, */ \r
+ pHalInfo = &HalInfo;\r
+ pCallBackFlags = CallBackFlags;\r
+ puD3dCallbacks = &D3dCallbacks;\r
+ puD3dDriverData = &D3dDriverData;\r
+ puD3dBufferCallbacks = &D3dBufferCallbacks;\r
+ puNumHeaps = &NumHeaps;\r
+ puvmList = &vmList;\r
+ \r
+ if (puD3dDriverData->dwNumTextureFormats != 0)\r
+ {\r
+ RtlZeroMemory(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2));\r
+ } \r
+ RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+ RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
+ RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+ RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_GLOBALDRIVERDATA));\r
+ RtlZeroMemory(&D3dBufferCallbacks,sizeof(DD_D3DBUFCALLBACKS));\r
+\r
+ RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,\r
+ pCallBackFlags, puD3dCallbacks,\r
+ puD3dDriverData, puD3dBufferCallbacks,\r
+ puD3dTextureFormats, puNumHeaps,\r
+ puvmList, puNumFourCC,\r
+ puFourCC)== FALSE);\r
+\r
+ RTEST(pHalInfo != NULL);\r
+ ASSERT(pHalInfo != NULL);\r
+\r
+ RTEST(pCallBackFlags != NULL);\r
+ ASSERT(pCallBackFlags != NULL);\r
+\r
+ RTEST(puD3dCallbacks != NULL);\r
+ ASSERT(puD3dCallbacks != NULL);\r
+\r
+ RTEST(puD3dDriverData != NULL);\r
+ ASSERT(puD3dDriverData != NULL);\r
+\r
+ RTEST(puD3dBufferCallbacks != NULL);\r
+ ASSERT(puD3dDriverData != NULL);\r
+\r
+ RTEST(puD3dTextureFormats != NULL);\r
+ ASSERT(puD3dTextureFormats != NULL);\r
+ \r
+ RTEST(puNumHeaps != NULL);\r
+ ASSERT(puNumHeaps != NULL);\r
+ RTEST(NumHeaps == 0);\r
+\r
+ RTEST(puvmList != NULL); \r
+\r
+ RTEST(puNumFourCC == NULL);\r
+ RTEST(puFourCC == NULL);\r
+ \r
+ \r
+\r
+ /* We retesting the flags */ \r
+ RTEST(pCallBackFlags[0] != 0);\r
+ RTEST(pCallBackFlags[1] != 0);\r
+ RTEST(pCallBackFlags[2] == 0);\r
+\r
+ /* We do not retesting instead we compare it */\r
+ RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+ RTEST(memcmp(&oldD3dCallbacks, puD3dCallbacks, sizeof(D3DNTHAL_CALLBACKS)) == 0);\r
+ RTEST(memcmp(&oldD3dDriverData, puD3dDriverData, sizeof(D3DNTHAL_GLOBALDRIVERDATA)) == 0);\r
+ RTEST(memcmp(&oldD3dBufferCallbacks, puD3dBufferCallbacks, sizeof(DD_D3DBUFCALLBACKS)) == 0);\r
+ /* we skip resting texture */\r
+\r
/* Todo\r
* adding test for \r
* puNumFourCC\r
* puFourCC\r
- * puNumHeaps\r
- * puvmList\r
*/\r
\r
/* Cleanup ReactX setup */\r