VIDEOMEMORY vmList;\r
//DWORD NumFourCC = 0;\r
//DWORD FourCC = 0;\r
+ DEVMODE devmode;\r
+ HDC hdc;\r
+\r
\r
/* clear data */\r
memset(&vmList,0,sizeof(VIDEOMEMORY));\r
memset(&HalInfo,0,sizeof(DD_HALINFO));\r
memset(CallBackFlags,0,sizeof(DWORD)*3);\r
\r
- HDC hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);\r
+\r
+\r
+ /* Get currenet display mode */\r
+ EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devmode);\r
+\r
+ hdc = CreateDCW(L"DISPLAY",NULL,NULL,NULL);\r
ASSERT1(hdc != NULL);\r
\r
hDirectDraw = (HANDLE) Syscall(L"NtGdiDdCreateDirectDrawObject", 1, &hdc);\r
RTEST(puFourCC == NULL);\r
ASSERT1(pHalInfo != NULL);\r
\r
+ if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&\r
+ (pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))\r
+ {\r
+ RTEST(pHalInfo->dwSize != sizeof(DD_HALINFO));\r
+ ASSERT1(pHalInfo->dwSize != sizeof(DD_HALINFO));\r
+ }\r
+\r
+\r
+\r
+ if (pHalInfo->dwSize == sizeof(DD_HALINFO))\r
+ {\r
+ /*the offset, in bytes, to primary surface in the display memory */\r
+ RTEST(pHalInfo->vmiData.fpPrimary != 0 );\r
+\r
+ /* unsuse always 0 */\r
+ RTEST(pHalInfo->vmiData.dwFlags == 0 );\r
+\r
+ /* fixme check the res */\r
+\r
+\r
+ RTEST(pHalInfo->vmiData.dwDisplayWidth == devmode.dmPelsWidth );\r
+ RTEST(pHalInfo->vmiData.dwDisplayHeight == devmode.dmPelsHeight ); \r
+ /* FIXME \r
+ RTEST(pHalInfo->vmiData.lDisplayPitch == 0x1700;\r
+ */\r
+ RTEST(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT) ); \r
+ ASSERT1(pHalInfo->vmiData.ddpfDisplay.dwSize == sizeof(DDPIXELFORMAT));\r
+\r
+\r
+ /* No fourcc are use on primary screen */\r
+ RTEST(pHalInfo->vmiData.ddpfDisplay.dwFourCC == 0 );\r
+\r
+ /* Count RGB Bits 8/16/24/32 */\r
+ RTEST(pHalInfo->vmiData.ddpfDisplay.dwRGBBitCount == devmode.dmBitsPerPel );\r
+\r
+ /* FIXME RGB mask */\r
+ //RTEST(pHalInfo->vmiData.ddpfDisplay.dwRBitMask == 0 );\r
+ //RTEST(pHalInfo->vmiData.ddpfDisplay.dwGBitMask == 0 );\r
+ //RTEST(pHalInfo->vmiData.ddpfDisplay.dwBBitMask == 0 );\r
+ /* primary never set the alpha blend mask */\r
+ RTEST(pHalInfo->vmiData.ddpfDisplay.dwRGBAlphaBitMask == 0 );\r
+\r
+ /* FIXME do not known how test follow thing, for it is diffent for each drv */\r
+ // pHalInfo->vmiData->dwOffscreenAlign : 0x00000100\r
+ // pHalInfo->vmiData->dwOverlayAlign : 0x00000010\r
+ // pHalInfo->vmiData->dwTextureAlign : 0x00000020\r
+ // pHalInfo->vmiData->dwZBufferAlign : 0x00001000\r
+ // pHalInfo->vmiData->dwAlphaAlign : 0x00000000\r
+\r
+ /* the primary display address */\r
+ RTEST(pHalInfo->vmiData.pvPrimary != 0x00000000 );\r
+ }\r
+\r
/* Cleanup ReactX setup */\r
DeleteDC(hdc);\r
Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDraw);\r