Author: greatlrd Date: Sat May 12 14:14:22 2007 New Revision: 26718
URL: http://svn.reactos.org/svn/reactos?rev=26718&view=rev Log: update dxhaltest with some new test, Thuse test are not 100% correct in all case. some error should be supress when it been run in vmware with windows or reactos
Added: trunk/rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c trunk/rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c trunk/rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c Modified: trunk/rostests/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c trunk/rostests/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c trunk/rostests/dxtest/win32kdxtest/dump.c trunk/rostests/dxtest/win32kdxtest/main.c trunk/rostests/dxtest/win32kdxtest/test.h trunk/rostests/dxtest/win32kdxtest/win32kdxtest.rbuild
Added: trunk/rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/NtGdiD... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c (added) +++ trunk/rostests/dxtest/win32kdxtest/NtGdiDdCanCreateSurface.c Sat May 12 14:14:22 2007 @@ -1,0 +1,44 @@ + +#include <stdio.h> +/* SDK/DDK/NDK Headers. */ +#include <windows.h> +#include <wingdi.h> +#include <winddi.h> +#include <d3dnthal.h> +#include <dll/directx/d3d8thk.h> +#include "test.h" + +/* + * Test see if we can delete a DirectDrawObject from win32k + * + */ +void +test_NtGdiDdCanCreateSurface(HANDLE hDirectDrawLocal) +{ + int fails=0; + BOOL retValue=FALSE; + DDHAL_CANCREATESURFACEDATA pCanCreateSurface; + DDSURFACEDESC2 desc; + + RtlZeroMemory(&pCanCreateSurface,sizeof(DDHAL_CANCREATESURFACEDATA)); + RtlZeroMemory(&desc,sizeof(DDSURFACEDESC2)); + + /* crash in windows 2000 */ + retValue = OsThunkDdCanCreateSurface(NULL,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdCanCreateSurface(NULL,NULL);\0"); + + retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdCanCreateSurface(hDirectDrawLocal,NULL);\0"); + + retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,(PDD_CANCREATESURFACEDATA)&pCanCreateSurface); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"3. NtGdiDdCanCreateSurface(hDirectDrawLocal,pCanCreateSurface);\0"); + + pCanCreateSurface.lpDDSurfaceDesc = &desc; + desc.dwSize = sizeof(DDSURFACEDESC2); + + retValue = OsThunkDdCanCreateSurface(hDirectDrawLocal,(PDD_CANCREATESURFACEDATA)&pCanCreateSurface); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"4. NtGdiDdCanCreateSurface(hDirectDrawLocal,pCanCreateSurface);\0"); + +} + +
Modified: trunk/rostests/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/NtGdiD... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c (original) +++ trunk/rostests/dxtest/win32kdxtest/NtGdiDdCreateDirectDrawObject.c Sat May 12 14:14:22 2007 @@ -19,6 +19,23 @@ int fails=0; HDC hdc=CreateDCW(L"Display",NULL,NULL,NULL);
+ if (hdc == NULL) + { + printf("No hdc was created with Display, trying now with DISPLAY\n"); + hdc=CreateDCW(L"DISPLAY",NULL,NULL,NULL); + if (hdc == NULL) + { + printf("No hdc was created with DISPLAY, trying now with NULL\n"); + hdc=CreateDCW(NULL,NULL,NULL,NULL); + } + } + + if (hdc == NULL) + { + printf("No hdc was created at all perpare all test will fail\n"); + return NULL; + } + printf("Start testing of NtGdiDdCreateDirectDrawObject\n");
retValue = OsThunkDdCreateDirectDrawObject(NULL);
Added: trunk/rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/NtGdiD... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c (added) +++ trunk/rostests/dxtest/win32kdxtest/NtGdiDdGetScanLine.c Sat May 12 14:14:22 2007 @@ -1,0 +1,40 @@ +#include <stdio.h> +/* SDK/DDK/NDK Headers. */ +#include <windows.h> +#include <wingdi.h> +#include <winddi.h> +#include <d3dnthal.h> +#include <dll/directx/d3d8thk.h> +#include "test.h" + +/* + * Test see if we can delete a DirectDrawObject from win32k + * + */ +void +test_NtGdiDdGetScanLine(HANDLE hDirectDrawLocal) +{ + int fails=0; + BOOL retValue=FALSE; + DD_GETSCANLINEDATA puGetScanLineData; + + printf("Start testing of NtGdiDdGetScanLine\n"); + RtlZeroMemory(&puGetScanLineData,sizeof(DD_GETSCANLINEDATA)); + + retValue = OsThunkDdGetScanLine(NULL,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdGetScanLine(NULL,NULL);\0"); + + retValue = OsThunkDdGetScanLine(hDirectDrawLocal,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdGetScanLine(hDirectDrawLocal,NULL);\0"); + + puGetScanLineData.ddRVal = DDERR_GENERIC; + retValue = OsThunkDdGetScanLine(hDirectDrawLocal,&puGetScanLineData); + testing_eq(retValue,DDHAL_DRIVER_NOTHANDLED,fails,"3. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0"); + testing_noteq(puGetScanLineData.ddRVal,DD_OK,fails,"4. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0"); + testing_eq(puGetScanLineData.dwScanLine,0,fails,"4. NtGdiDdGetScanLine(hDirectDrawLocal,puGetScanLineData);\0"); + + + /* FIXME DDERR_VERTICALBLANKINPROGRESS test */ + + show_status(fails, "NtGdiDdGetScanLine\0"); +}
Modified: trunk/rostests/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/NtGdiD... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c (original) +++ trunk/rostests/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c Sat May 12 14:14:22 2007 @@ -9,10 +9,28 @@
extern BOOL dumping_on;
+/* my struct */ +struct +{ + DWORD pos; +} *mytest; + /* * Test see if we can setup DirectDrawObject * */ + +/* + * ToDO + * 1. add more testcase it is only some, but we do not test for all case + * that happen only some + * + * 2.Fixed the false alaret for drivers only support 2d dx interface + * + * 3. fixed the dumping of d3d struct. + * + */ + void test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal) { @@ -36,10 +54,10 @@ D3DNTHAL_GLOBALDRIVERDATA D3dDriverData; DD_D3DBUFCALLBACKS D3dBufferCallbacks; DDSURFACEDESC2 D3dTextureFormats[100]; - // DWORD NumHeaps = 0; + DWORD NumHeaps = 0; VIDEOMEMORY vmList; - // DWORD NumFourCC = 0; - //DWORD FourCC = 0; + DWORD NumFourCC = 0; + DWORD FourCC = 0;
/* clear data */ memset(&vmList,0,sizeof(VIDEOMEMORY)); @@ -202,7 +220,7 @@ /* FIXME dump puD3dCallbacks */ }
- /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */ + /* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, */ printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n");
pHalInfo = &HalInfo; @@ -247,5 +265,131 @@ /* FIXME dump puD3dDriverData */ }
+/* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, ....)\n"); + + pHalInfo = &HalInfo; + pCallBackFlags = CallBackFlags; + puD3dCallbacks = &D3dCallbacks; + puD3dDriverData = &D3dDriverData; + puD3dBufferCallbacks = &D3dBufferCallbacks; + + RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); + RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); + RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); + RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS)); + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + + testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, NULL, ...);\0"); + + testing_noteq(puD3dTextureFormats,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + testing_noteq(puNumFourCC,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\0"); + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("9. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...);\n"); + fails++; + } + + if (puD3dBufferCallbacks) + { + testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"11. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL...);\0"); + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + /* FIXME dump puD3dCallbacks */ + /* FIXME dump puD3dDriverData */ + /* FIXME dump D3dBufferCallbacks */ + + } + +/* testing OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, */ + printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, puD3dTextureFormats, NULL, ....)\n"); + + pHalInfo = &HalInfo; + pCallBackFlags = CallBackFlags; + puD3dCallbacks = &D3dCallbacks; + puD3dDriverData = &D3dDriverData; + puD3dBufferCallbacks = &D3dBufferCallbacks; + + RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO)); + RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3); + RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS)); + //RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS)); + RtlZeroMemory(&D3dBufferCallbacks,sizeof(D3DNTHAL_CALLBACKS)); + + if (puD3dDriverData) + { + puD3dTextureFormats = malloc (puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2)); + if (!puD3dTextureFormats) + printf("Waring Out of memory\n"); + + RtlZeroMemory(puD3dTextureFormats, puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2)); + } + + retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, + pCallBackFlags, puD3dCallbacks, + puD3dDriverData, puD3dBufferCallbacks, + puD3dTextureFormats, puNumHeaps, + puvmList, puNumFourCC, + puFourCC); + + testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + + testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + + testing_noteq(puNumFourCC,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + testing_noteq(puFourCC,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\0"); + if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) && + (pHalInfo->dwSize != sizeof(DD_HALINFO_V4))) + { + printf("8. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL, ...);\n"); + fails++; + } + + if (puD3dBufferCallbacks) + { + testing_noteq(puD3dBufferCallbacks->dwSize,sizeof(DD_D3DBUFCALLBACKS),fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, puD3dTextureFormats, NULL...);\0"); + } + + if (puD3dTextureFormats) + { + /* fixme test case for it */ + } + + if (dumping_on == TRUE) + { + dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)"); + /* FIXME dump puD3dCallbacks */ + /* FIXME dump puD3dDriverData */ + /* FIXME dump D3dBufferCallbacks */ + /* FIXME dump puD3dTextureFormats */ + } + + + + + + if (puD3dTextureFormats) + free (puD3dTextureFormats); show_status(fails, "NtGdiDdQueryDirectDrawObject\0"); }
Added: trunk/rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/NtGdiD... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c (added) +++ trunk/rostests/dxtest/win32kdxtest/NtGdiDdWaitForVerticalBlank.c Sat May 12 14:14:22 2007 @@ -1,0 +1,44 @@ +#include <stdio.h> +/* SDK/DDK/NDK Headers. */ +#include <windows.h> +#include <wingdi.h> +#include <winddi.h> +#include <d3dnthal.h> +#include <dll/directx/d3d8thk.h> +#include "test.h" + +/* + * Test see if we can delete a DirectDrawObject from win32k + * + */ +void +test_NtGdiDdWaitForVerticalBlank(HANDLE hDirectDrawLocal) +{ + int fails=0; + BOOL retValue=FALSE; + DDHAL_WAITFORVERTICALBLANKDATA pDdWaitForVerticalBlankData; + + RtlZeroMemory(&pDdWaitForVerticalBlankData,sizeof(DDHAL_WAITFORVERTICALBLANKDATA)); + + retValue = OsThunkDdWaitForVerticalBlank(NULL,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"1. NtGdiDdWaitForVerticalBlank(NULL,NULL);\0"); + + retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,NULL); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"2. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0"); + + retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData); + testing_eq(retValue, DDHAL_DRIVER_HANDLED,fails,"3. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0"); + testing_eq(pDdWaitForVerticalBlankData.ddRVal, DD_OK,fails,"4. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0"); + + RtlZeroMemory(&pDdWaitForVerticalBlankData,sizeof(DDHAL_WAITFORVERTICALBLANKDATA)); + pDdWaitForVerticalBlankData.dwFlags = DDWAITVB_I_TESTVB; + retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData); + + testing_eq(retValue, DDHAL_DRIVER_NOTHANDLED,fails,"5. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0"); + testing_noteq(pDdWaitForVerticalBlankData.ddRVal, DD_OK,fails,"6. NtGdiDdWaitForVerticalBlank(hDirectDrawLocal,NULL);\0"); + + retValue = OsThunkDdWaitForVerticalBlank(hDirectDrawLocal,(PDD_WAITFORVERTICALBLANKDATA)&pDdWaitForVerticalBlankData); + + show_status(fails, "NtGdiDdWaitForVerticalBlank\0"); +} +
Modified: trunk/rostests/dxtest/win32kdxtest/dump.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/dump.c... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/dump.c (original) +++ trunk/rostests/dxtest/win32kdxtest/dump.c Sat May 12 14:14:22 2007 @@ -9,113 +9,77 @@
#include "test.h"
+#define checkflag(dwflag,dwvalue,text) \ + if (dwflag & dwvalue) \ + { \ + if (count!=0) \ + { \ + printf("| "); \ + } \ + dwflag = dwflag - dwvalue; \ + printf("%s ",text); \ + count++; \ + } + +#define endcheckflag(dwflag,text) \ + if (count==0) \ + printf("0x%08lx\n",dwflag);\ + else \ + printf("\n");\ + if (flag != 0) \ + printf("undoc value in %s flags value %04lx\n",text,dwflag); + +
void dump_CallBackFlags(DWORD *pCallBackFlags, char *text) { - UINT flag=pCallBackFlags[0]; - INT count=0; + UINT flag; + INT count;
printf("dumping the CallBackFlags from %s\n",text); printf("pCallBackFlags[0] : "); - if (flag & DDHAL_CB32_CANCREATESURFACE) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_CANCREATESURFACE; - printf("DDHAL_CB32_CANCREATESURFACE "); - count++; - } - if (flag & DDHAL_CB32_CREATEPALETTE) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_CREATEPALETTE; - printf("DDHAL_CB32_CREATEPALETTE "); - count++; - } - if (flag & DDHAL_CB32_CREATESURFACE) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_CREATESURFACE; - printf("DDHAL_CB32_CREATESURFACE "); - count++; - } - if (flag & DDHAL_CB32_GETSCANLINE) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_GETSCANLINE; - printf("DDHAL_CB32_GETSCANLINE "); - count++; - } - if (flag & DDHAL_CB32_MAPMEMORY) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_MAPMEMORY; - printf("DDHAL_CB32_MAPMEMORY "); - count++; - } - if (flag & DDHAL_CB32_SETCOLORKEY) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_SETCOLORKEY; - printf("DDHAL_CB32_SETCOLORKEY "); - count++; - } - if (flag & DDHAL_CB32_SETMODE) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_SETMODE; - printf("DDHAL_CB32_SETMODE "); - count++; - } - if (flag & DDHAL_CB32_WAITFORVERTICALBLANK) - { - if (count!=0) - { - printf("| "); - } - flag = flag - DDHAL_CB32_WAITFORVERTICALBLANK; - printf("DDHAL_CB32_WAITFORVERTICALBLANK "); - count++; - } - - if (count==0) - { - printf("0x%04lx\n",pCallBackFlags[0]); - } - else - { - printf("\n"); - } - - - if (flag != 0) - { - printf("undoc value in DD_CALLBACKS flags value %04lx\n",flag); - } - - printf("pCallBackFlags[1] : 0x%04lx\n",pCallBackFlags[1]); - printf("pCallBackFlags[2] : 0x%04lx\n",pCallBackFlags[2]); + + flag=pCallBackFlags[0]; + count=0; + checkflag(flag,DDHAL_CB32_CANCREATESURFACE,"DDHAL_CB32_CANCREATESURFACE"); + checkflag(flag,DDHAL_CB32_CREATEPALETTE,"DDHAL_CB32_CREATEPALETTE"); + checkflag(flag,DDHAL_CB32_CREATESURFACE,"DDHAL_CB32_CREATESURFACE"); + checkflag(flag,DDHAL_CB32_GETSCANLINE,"DDHAL_CB32_GETSCANLINE"); + checkflag(flag,DDHAL_CB32_MAPMEMORY,"DDHAL_CB32_MAPMEMORY"); + checkflag(flag,DDHAL_CB32_SETCOLORKEY,"DDHAL_CB32_SETCOLORKEY"); + checkflag(flag,DDHAL_CB32_SETMODE,"DDHAL_CB32_SETMODE"); + checkflag(flag,DDHAL_CB32_WAITFORVERTICALBLANK,"DDHAL_CB32_WAITFORVERTICALBLANK"); + endcheckflag(flag,"pCallBackFlags[0]"); + + /* SURFACE callback */ + printf("pCallBackFlags[1] : "); + flag = pCallBackFlags[1]; + count = 0; + checkflag(flag,DDHAL_SURFCB32_ADDATTACHEDSURFACE,"DDHAL_SURFCB32_ADDATTACHEDSURFACE"); + checkflag(flag,DDHAL_SURFCB32_BLT,"DDHAL_SURFCB32_BLT"); + checkflag(flag,DDHAL_SURFCB32_DESTROYSURFACE,"DDHAL_SURFCB32_DESTROYSURFACE"); + checkflag(flag,DDHAL_SURFCB32_FLIP,"DDHAL_SURFCB32_FLIP"); + checkflag(flag,DDHAL_SURFCB32_GETBLTSTATUS,"DDHAL_SURFCB32_GETBLTSTATUS"); + checkflag(flag,DDHAL_SURFCB32_GETFLIPSTATUS,"DDHAL_SURFCB32_GETFLIPSTATUS"); + checkflag(flag,DDHAL_SURFCB32_LOCK,"DDHAL_SURFCB32_LOCK"); + checkflag(flag,DDHAL_SURFCB32_RESERVED4,"DDHAL_SURFCB32_RESERVED4"); + checkflag(flag,DDHAL_SURFCB32_SETCLIPLIST,"DDHAL_SURFCB32_SETCLIPLIST"); + checkflag(flag,DDHAL_SURFCB32_SETCOLORKEY,"DDHAL_SURFCB32_SETCOLORKEY"); + checkflag(flag,DDHAL_SURFCB32_SETOVERLAYPOSITION,"DDHAL_SURFCB32_SETOVERLAYPOSITION"); + checkflag(flag,DDHAL_SURFCB32_SETPALETTE,"DDHAL_SURFCB32_SETPALETTE"); + checkflag(flag,DDHAL_SURFCB32_UNLOCK,"DDHAL_SURFCB32_UNLOCK"); + checkflag(flag,DDHAL_SURFCB32_UPDATEOVERLAY,"DDHAL_SURFCB32_UPDATEOVERLAY"); + endcheckflag(flag,"pCallBackFlags[1]"); + + + /* palleted */ + printf("pCallBackFlags[2] : "); + flag = pCallBackFlags[2]; + count = 0; + checkflag(flag,DDHAL_PALCB32_DESTROYPALETTE,"DDHAL_PALCB32_DESTROYPALETTE"); + checkflag(flag,DDHAL_PALCB32_SETENTRIES,"DDHAL_PALCB32_SETENTRIES"); + endcheckflag(flag,"pCallBackFlags[2]"); }
void @@ -225,6 +189,9 @@ else if (pHalInfo->dwSize == sizeof(DD_HALINFO)) { int t; + UINT flag; + INT count=0; + LPD3DNTHAL_GLOBALDRIVERDATA lpD3DGlobalDriverData = pHalInfo->lpD3DGlobalDriverData;
printf("DD_HALINFO Version NT 2000/XP/2003 found \n"); printf(" pHalInfo->dwSize : 0x%08lx\n",(long)pHalInfo->dwSize); @@ -253,10 +220,129 @@ printf(" pHalInfo->vmiData->pvPrimary : 0x%08lx\n",(long)pHalInfo->vmiData.pvPrimary);
printf(" pHalInfo->ddCaps.dwSize : 0x%08lx\n",pHalInfo->ddCaps.dwSize); - printf(" pHalInfo->ddCaps.dwCaps : 0x%08lx\n",pHalInfo->ddCaps.dwCaps); - printf(" pHalInfo->ddCaps.dwCaps2 : 0x%08lx\n",pHalInfo->ddCaps.dwCaps2); - printf(" pHalInfo->ddCaps.dwCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwCKeyCaps); - printf(" pHalInfo->ddCaps.dwFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXCaps); + printf(" pHalInfo->ddCaps.dwCaps : "); + flag = pHalInfo->ddCaps.dwCaps; + count = 0; + checkflag(flag,DDCAPS_3D,"DDCAPS_3D"); + checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST"); + checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC"); + checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST"); + checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC"); + checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE"); + checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA"); + checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED"); + checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT"); + checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL"); + checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL"); + checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC"); + checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE"); + checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH"); + checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM"); + checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP"); + checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED"); + checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY"); + checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST"); + checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI"); + checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE"); + checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY"); + checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP"); + checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC"); + checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH"); + checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE"); + checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC"); + checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE"); +/* FIXME */ +// checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW"); + checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI"); + checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS"); + checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS"); + endcheckflag(flag,"pHalInfo->ddCaps.dwCaps"); + + printf(" pHalInfo->ddCaps.dwCaps2 : "); + flag = pHalInfo->ddCaps.dwCaps2; + count = 0; + checkflag(flag,DDCAPS2_AUTOFLIPOVERLAY,"DDCAPS2_AUTOFLIPOVERLAY"); + checkflag(flag,DDCAPS2_CANAUTOGENMIPMAP,"DDCAPS2_CANAUTOGENMIPMAP"); + checkflag(flag,DDCAPS2_CANBOBHARDWARE,"DDCAPS2_CANBOBHARDWARE"); + checkflag(flag,DDCAPS2_CANBOBINTERLEAVED,"DDCAPS2_CANBOBINTERLEAVED"); + checkflag(flag,DDCAPS2_CANBOBNONINTERLEAVED,"DDCAPS2_CANBOBNONINTERLEAVED"); + checkflag(flag,DDCAPS2_CANCALIBRATEGAMMA,"DDCAPS2_CANCALIBRATEGAMMA"); + checkflag(flag,DDCAPS2_CANDROPZ16BIT,"DDCAPS2_CANDROPZ16BIT"); + checkflag(flag,DDCAPS2_CANFLIPODDEVEN,"DDCAPS2_CANFLIPODDEVEN"); + checkflag(flag,DDCAPS2_CANMANAGERESOURCE,"DDCAPS2_CANMANAGERESOURCE"); + checkflag(flag,DDCAPS2_CANMANAGETEXTURE,"DDCAPS2_CANMANAGETEXTURE"); +/* FIXME */ +// checkflag(flagDDCAPS2_CANRENDERWINDOWED,"DDCAPS2_CANRENDERWINDOWED"); + checkflag(flag,DDCAPS2_CERTIFIED,"DDCAPS2_CERTIFIED"); + checkflag(flag,DDCAPS2_COLORCONTROLOVERLAY,"DDCAPS2_COLORCONTROLOVERLAY"); + checkflag(flag,DDCAPS2_COLORCONTROLPRIMARY,"DDCAPS2_COLORCONTROLPRIMARY"); + checkflag(flag,DDCAPS2_COPYFOURCC,"DDCAPS2_COPYFOURCC"); + checkflag(flag,DDCAPS2_FLIPINTERVAL,"DDCAPS2_FLIPINTERVAL"); + checkflag(flag,DDCAPS2_FLIPNOVSYNC,"DDCAPS2_FLIPNOVSYNC"); + checkflag(flag,DDCAPS2_NO2DDURING3DSCENE,"DDCAPS2_NO2DDURING3DSCENE"); + checkflag(flag,DDCAPS2_NONLOCALVIDMEM,"DDCAPS2_NONLOCALVIDMEM"); + checkflag(flag,DDCAPS2_NONLOCALVIDMEMCAPS,"DDCAPS2_NONLOCALVIDMEMCAPS"); + checkflag(flag,DDCAPS2_NOPAGELOCKREQUIRED,"DDCAPS2_NOPAGELOCKREQUIRED"); + checkflag(flag,DDCAPS2_PRIMARYGAMMA,"DDCAPS2_PRIMARYGAMMA"); + checkflag(flag,DDCAPS2_VIDEOPORT,"DDCAPS2_VIDEOPORT"); + checkflag(flag,DDCAPS2_WIDESURFACES,"DDCAPS2_WIDESURFACES"); + endcheckflag(flag,"pHalInfo->ddCaps.dwCaps2"); + + printf(" pHalInfo->ddCaps.dwCKeyCaps : "); + flag = pHalInfo->ddCaps.dwCKeyCaps; + count = 0; + checkflag(flag,DDCKEYCAPS_DESTBLT,"DDCKEYCAPS_DESTBLT"); + checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACE,"DDCKEYCAPS_DESTBLTCLRSPACE"); + checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACEYUV,"DDCKEYCAPS_DESTBLTCLRSPACEYUV"); + checkflag(flag,DDCKEYCAPS_DESTBLTYUV,"DDCKEYCAPS_DESTBLTYUV"); + checkflag(flag,DDCKEYCAPS_DESTOVERLAY,"DDCKEYCAPS_DESTOVERLAY"); + checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACE,"DDCKEYCAPS_DESTOVERLAYCLRSPACE"); + checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV,"DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV"); + checkflag(flag,DDCKEYCAPS_DESTOVERLAYONEACTIVE,"DDCKEYCAPS_DESTOVERLAYONEACTIVE"); + checkflag(flag,DDCKEYCAPS_DESTOVERLAYYUV,"DDCKEYCAPS_DESTOVERLAYYUV"); + checkflag(flag,DDCKEYCAPS_NOCOSTOVERLAY,"DDCKEYCAPS_NOCOSTOVERLAY"); + checkflag(flag,DDCKEYCAPS_SRCBLT,"DDCKEYCAPS_SRCBLT"); + checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACE,"DDCKEYCAPS_SRCBLTCLRSPACE"); + checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACEYUV,"DDCKEYCAPS_SRCBLTCLRSPACEYUV"); + checkflag(flag,DDCKEYCAPS_SRCBLTYUV,"DDCKEYCAPS_SRCBLTYUV"); + checkflag(flag,DDCKEYCAPS_SRCOVERLAY,"DDCKEYCAPS_SRCOVERLAY"); + checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACE,"DDCKEYCAPS_SRCOVERLAYCLRSPACE"); + checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV,"DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV"); + checkflag(flag,DDCKEYCAPS_SRCOVERLAYONEACTIVE,"DDCKEYCAPS_SRCOVERLAYONEACTIVE"); + checkflag(flag,DDCKEYCAPS_SRCOVERLAYYUV,"DDCKEYCAPS_SRCOVERLAYYUV"); + endcheckflag(flag,"pHalInfo->ddCaps.dwCKeyCaps"); + + printf(" pHalInfo->ddCaps.dwFXCaps : "); + flag = pHalInfo->ddCaps.dwFXCaps; + count = 0; + checkflag(flag,DDFXCAPS_BLTARITHSTRETCHY,"DDFXCAPS_BLTARITHSTRETCHY"); + checkflag(flag,DDFXCAPS_BLTARITHSTRETCHYN,"DDFXCAPS_BLTARITHSTRETCHYN"); + checkflag(flag,DDFXCAPS_BLTMIRRORLEFTRIGHT,"DDFXCAPS_BLTMIRRORLEFTRIGHT"); + checkflag(flag,DDFXCAPS_BLTMIRRORUPDOWN,"DDFXCAPS_BLTMIRRORUPDOWN"); + checkflag(flag,DDFXCAPS_BLTROTATION,"DDFXCAPS_BLTROTATION"); + checkflag(flag,DDFXCAPS_BLTROTATION90,"DDFXCAPS_BLTROTATION90"); + checkflag(flag,DDFXCAPS_BLTSHRINKX,"DDFXCAPS_BLTSHRINKX"); + checkflag(flag,DDFXCAPS_BLTSHRINKXN,"DDFXCAPS_BLTSHRINKXN"); + checkflag(flag,DDFXCAPS_BLTSHRINKY,"DDFXCAPS_BLTSHRINKY"); + checkflag(flag,DDFXCAPS_BLTSHRINKYN,"DDFXCAPS_BLTSHRINKYN"); + checkflag(flag,DDFXCAPS_BLTSTRETCHX,"DDFXCAPS_BLTSTRETCHX"); + checkflag(flag,DDFXCAPS_BLTSTRETCHXN,"DDFXCAPS_BLTSTRETCHXN"); + checkflag(flag,DDFXCAPS_BLTSTRETCHY,"DDFXCAPS_BLTSTRETCHY"); + checkflag(flag,DDFXCAPS_BLTSTRETCHYN,"DDFXCAPS_BLTSTRETCHYN"); + checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHY,"DDFXCAPS_OVERLAYARITHSTRETCHY"); + checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHYN,"DDFXCAPS_OVERLAYARITHSTRETCHYN"); + checkflag(flag,DDFXCAPS_OVERLAYMIRRORLEFTRIGHT,"DDFXCAPS_OVERLAYMIRRORLEFTRIGHT"); + checkflag(flag,DDFXCAPS_OVERLAYMIRRORUPDOWN,"DDFXCAPS_OVERLAYMIRRORUPDOWN"); + checkflag(flag,DDFXCAPS_OVERLAYSHRINKX,"DDFXCAPS_OVERLAYSHRINKX"); + checkflag(flag,DDFXCAPS_OVERLAYSHRINKXN,"DDFXCAPS_OVERLAYSHRINKXN"); + checkflag(flag,DDFXCAPS_OVERLAYSHRINKY,"DDFXCAPS_OVERLAYSHRINKY"); + checkflag(flag,DDFXCAPS_OVERLAYSHRINKYN,"DDFXCAPS_OVERLAYSHRINKYN"); + checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX"); + checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX"); + checkflag(flag,DDFXCAPS_OVERLAYSTRETCHY,"DDFXCAPS_OVERLAYSTRETCHY"); + checkflag(flag,DDFXCAPS_OVERLAYSTRETCHYN,"DDFXCAPS_OVERLAYSTRETCHYN"); + endcheckflag(flag,"pHalInfo->ddCaps.dwFXCaps"); + printf(" pHalInfo->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXAlphaCaps); printf(" pHalInfo->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo->ddCaps.dwPalCaps); printf(" pHalInfo->ddCaps.dwSVCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVCaps); @@ -281,7 +367,41 @@ { printf(" pHalInfo->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwRops[t]); } - printf(" pHalInfo->ddCaps.ddsCaps.dwCaps : 0x%08lx\n",pHalInfo->ddCaps.ddsCaps.dwCaps); + printf(" pHalInfo->ddCaps.ddsCaps.dwCaps : "); + flag = pHalInfo->ddCaps.ddsCaps.dwCaps; + count = 0; + checkflag(flag,DDSCAPS_3DDEVICE,"DDSCAPS_3DDEVICE"); + checkflag(flag,DDSCAPS_ALLOCONLOAD,"DDSCAPS_ALLOCONLOAD"); + checkflag(flag,DDSCAPS_ALPHA,"DDSCAPS_ALPHA"); + checkflag(flag,DDSCAPS_BACKBUFFER,"DDSCAPS_BACKBUFFER"); + checkflag(flag,DDSCAPS_COMPLEX,"DDSCAPS_COMPLEX"); + checkflag(flag,DDSCAPS_EXECUTEBUFFER,"DDSCAPS_EXECUTEBUFFER"); + checkflag(flag,DDSCAPS_FLIP,"DDSCAPS_FLIP"); + checkflag(flag,DDSCAPS_FRONTBUFFER,"DDSCAPS_FRONTBUFFER"); + checkflag(flag,DDSCAPS_HWCODEC,"DDSCAPS_HWCODEC"); + checkflag(flag,DDSCAPS_LIVEVIDEO,"DDSCAPS_LIVEVIDEO"); + checkflag(flag,DDSCAPS_LOCALVIDMEM,"DDSCAPS_LOCALVIDMEM"); + checkflag(flag,DDSCAPS_MIPMAP,"DDSCAPS_MIPMAP"); + checkflag(flag,DDSCAPS_MODEX,"DDSCAPS_MODEX"); + checkflag(flag,DDSCAPS_NONLOCALVIDMEM,"DDSCAPS_NONLOCALVIDMEM"); + checkflag(flag,DDSCAPS_OFFSCREENPLAIN,"DDSCAPS_OFFSCREENPLAIN"); + checkflag(flag,DDSCAPS_OVERLAY,"DDSCAPS_OVERLAY"); + checkflag(flag,DDSCAPS_OPTIMIZED,"DDSCAPS_OPTIMIZED"); + checkflag(flag,DDSCAPS_OWNDC,"DDSCAPS_OWNDC"); + checkflag(flag,DDSCAPS_PALETTE,"DDSCAPS_PALETTE"); + checkflag(flag,DDSCAPS_PRIMARYSURFACE,"DDSCAPS_PRIMARYSURFACE"); + checkflag(flag,DDSCAPS_PRIMARYSURFACELEFT,"DDSCAPS_PRIMARYSURFACELEFT"); + checkflag(flag,DDSCAPS_STANDARDVGAMODE,"DDSCAPS_STANDARDVGAMODE"); + checkflag(flag,DDSCAPS_SYSTEMMEMORY,"DDSCAPS_SYSTEMMEMORY"); + checkflag(flag,DDSCAPS_TEXTURE,"DDSCAPS_TEXTURE"); + checkflag(flag,DDSCAPS_VIDEOMEMORY,"DDSCAPS_VIDEOMEMORY"); + checkflag(flag,DDSCAPS_VIDEOPORT,"DDSCAPS_VIDEOPORT"); + checkflag(flag,DDSCAPS_VISIBLE,"DDSCAPS_VISIBLE"); + checkflag(flag,DDSCAPS_WRITEONLY,"DDSCAPS_WRITEONLY"); + checkflag(flag,DDSCAPS_ZBUFFER,"DDSCAPS_ZBUFFER"); + endcheckflag(flag,"pHalInfo->ddCaps.ddsCaps.dwCaps"); + + printf(" pHalInfo->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinOverlayStretch); printf(" pHalInfo->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxOverlayStretch); printf(" pHalInfo->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinLiveVideoStretch); @@ -313,10 +433,16 @@ printf(" pHalInfo->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSSBRops[t]); }
- - printf(" pHalInfo->GetDriverInfo : 0x%08lx\n",(long)pHalInfo->GetDriverInfo); - printf(" pHalInfo->dwFlags : 0x%08lx\n",(long)pHalInfo->dwFlags); + printf(" pHalInfo->dwFlags : "); + + flag = pHalInfo->dwFlags; + count = 0; + checkflag(flag,DDHALINFO_ISPRIMARYDISPLAY,"DDHALINFO_ISPRIMARYDISPLAY"); + checkflag(flag,DDHALINFO_MODEXILLEGAL,"DDHALINFO_MODEXILLEGAL"); + checkflag(flag,DDHALINFO_GETDRIVERINFOSET,"DDHALINFO_GETDRIVERINFOSET"); + checkflag(flag,DDHALINFO_GETDRIVERINFO2,"DDHALINFO_GETDRIVERINFO2"); + endcheckflag(flag,"pHalInfo->dwFlags");
printf(" pHalInfo->lpD3DGlobalDriverData : 0x%08lx\n",(long)pHalInfo->lpD3DGlobalDriverData); printf(" pHalInfo->lpD3DHALCallbacks : 0x%08lx\n",(long)pHalInfo->lpD3DHALCallbacks); @@ -335,3 +461,5 @@ } }
+ +
Modified: trunk/rostests/dxtest/win32kdxtest/main.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/main.c... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/main.c (original) +++ trunk/rostests/dxtest/win32kdxtest/main.c Sat May 12 14:14:22 2007 @@ -38,6 +38,12 @@
test_NtGdiDdQueryDirectDrawObject(hDirectDrawLocal);
+ test_NtGdiDdGetScanLine(hDirectDrawLocal); + + test_NtGdiDdWaitForVerticalBlank(hDirectDrawLocal); + + test_NtGdiDdCanCreateSurface(hDirectDrawLocal); + test_NtGdiDdDeleteDirectDrawObject(hDirectDrawLocal); return 0; }
Modified: trunk/rostests/dxtest/win32kdxtest/test.h URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/test.h... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/test.h (original) +++ trunk/rostests/dxtest/win32kdxtest/test.h Sat May 12 14:14:22 2007 @@ -3,14 +3,13 @@ HANDLE test_NtGdiDdCreateDirectDrawObject(); void test_NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal); void test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal); +void test_NtGdiDdGetScanLine(HANDLE hDirectDrawLocal); +void test_NtGdiDdWaitForVerticalBlank(HANDLE hDirectDrawLocal); +void test_NtGdiDdCanCreateSurface(HANDLE hDirectDrawLocal); +
void dump_halinfo(DD_HALINFO *pHalInfo, char *text); void dump_CallBackFlags(DWORD *pCallBackFlags, char *text); - - - - -
Modified: trunk/rostests/dxtest/win32kdxtest/win32kdxtest.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/rostests/dxtest/win32kdxtest/win32k... ============================================================================== --- trunk/rostests/dxtest/win32kdxtest/win32kdxtest.rbuild (original) +++ trunk/rostests/dxtest/win32kdxtest/win32kdxtest.rbuild Sat May 12 14:14:22 2007 @@ -12,5 +12,8 @@ <file>NtGdiDdCreateDirectDrawObject.c</file> <file>NtGdiDdDeleteDirectDrawObject.c</file> <file>NtGdiDdQueryDirectDrawObject.c</file> + <file>NtGdiDdGetScanLine.c</file> + <file>NtGdiDdWaitForVerticalBlank.c</file> + <file>NtGdiDdCanCreateSurface.c</file> <file>dump.c</file> </module>