adding flag translations for allot different value for D3DNTHAL_CALLBACKS
authorMagnus Olsen <magnus@greatlord.com>
Sat, 12 Apr 2008 19:24:31 +0000 (19:24 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sat, 12 Apr 2008 19:24:31 +0000 (19:24 +0000)
so human brain does not need doing binary calc to known which flag are set.

svn path=/trunk/; revision=32929

rostests/dxtest/win32kdxtest/NtGdiDdQueryDirectDrawObject.c
rostests/dxtest/win32kdxtest/dump.c
rostests/dxtest/win32kdxtest/test.h

index 9a9ef72..25dbdd6 100644 (file)
@@ -285,7 +285,7 @@ test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
         dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)");
         dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)");
         dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)");
-        /* FIXME dump puD3dDriverData */
+        dump_D3dDriverData(puD3dDriverData,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...)");
     }
 
 /* testing  OsThunkDdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, D3dBufferCallbacks, NULL, */
@@ -338,7 +338,7 @@ test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
         dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)");
         dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)");
         dump_D3dCallbacks(puD3dCallbacks,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)");
-        /* FIXME dump puD3dDriverData */
+        dump_D3dDriverData(puD3dDriverData, "NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, puD3dBufferCallbacks, NULL, ...)");
         /* FIXME dump D3dBufferCallbacks */
 
     }
index 4e6f180..f914b09 100644 (file)
@@ -9,6 +9,12 @@
 
 #include "test.h"
 
+/* this flag are only set for dx5 and lower but we need check see if we getting it back from win32k or not */
+#define D3DLIGHTCAPS_GLSPOT             0x00000010
+
+/* this flag are only set for dx6 and lower but we need check see if we getting it back from win32k or not */
+#define D3DLIGHTCAPS_PARALLELPOINT      0x00000008
+
 #define checkflag(dwflag,dwvalue,text) \
         if (dwflag & dwvalue) \
         { \
@@ -191,8 +197,7 @@ dump_halinfo(DD_HALINFO *pHalInfo, char *text)
         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);
 
@@ -467,41 +472,41 @@ dump_D3dCallbacks(D3DNTHAL_CALLBACKS *puD3dCallbacks, char *text)
     printf("dumping the D3DNTHAL_CALLBACKS from %s\n",text);
     if (puD3dCallbacks->dwSize ==  sizeof(D3DNTHAL_CALLBACKS))
     {
-        printf(" puD3dCallbacks->dwSize                            : 0x%08lx\n",(long)puD3dCallbacks->dwSize);
-        printf(" puD3dCallbacks->ContextCreate                     : 0x%08lx\n",(long)puD3dCallbacks->ContextCreate);
-        printf(" puD3dCallbacks->ContextDestroy                    : 0x%08lx\n",(long)puD3dCallbacks->ContextDestroy);
-        printf(" puD3dCallbacks->ContextDestroyAll                 : 0x%08lx\n",(long)puD3dCallbacks->ContextDestroyAll);
-        printf(" puD3dCallbacks->SceneCapture                      : 0x%08lx\n",(long)puD3dCallbacks->SceneCapture);
-        printf(" puD3dCallbacks->dwReserved10                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved10);
-        printf(" puD3dCallbacks->dwReserved11                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved11);
-        printf(" puD3dCallbacks->dwReserved22                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved22);
-        printf(" puD3dCallbacks->dwReserved23                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved23);
-        printf(" puD3dCallbacks->dwReserved                        : 0x%08lx\n",(long)puD3dCallbacks->dwReserved);
-        printf(" puD3dCallbacks->TextureCreate                     : 0x%08lx\n",(long)puD3dCallbacks->TextureCreate);
-        printf(" puD3dCallbacks->TextureDestroy                    : 0x%08lx\n",(long)puD3dCallbacks->TextureDestroy);
-        printf(" puD3dCallbacks->TextureSwap                       : 0x%08lx\n",(long)puD3dCallbacks->TextureSwap);
-        printf(" puD3dCallbacks->TextureGetSurf                    : 0x%08lx\n",(long)puD3dCallbacks->TextureGetSurf);
-        printf(" puD3dCallbacks->dwReserved12                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved12);
-        printf(" puD3dCallbacks->dwReserved13                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved13);
-        printf(" puD3dCallbacks->dwReserved14                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved14);
-        printf(" puD3dCallbacks->dwReserved15                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved15);
-        printf(" puD3dCallbacks->dwReserved16                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved16);
-        printf(" puD3dCallbacks->dwReserved17                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved17);
-        printf(" puD3dCallbacks->dwReserved18                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved18);
-        printf(" puD3dCallbacks->dwReserved19                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved19);
-        printf(" puD3dCallbacks->dwReserved20                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved20);
-        printf(" puD3dCallbacks->dwReserved21                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved21);
-        printf(" puD3dCallbacks->dwReserved24                      : 0x%08lx\n",(long)puD3dCallbacks->dwReserved24);
-        printf(" puD3dCallbacks->dwReserved0                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved0);
-        printf(" puD3dCallbacks->dwReserved1                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved1);
-        printf(" puD3dCallbacks->dwReserved2                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved2);
-        printf(" puD3dCallbacks->dwReserved3                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved3);
-        printf(" puD3dCallbacks->dwReserved4                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved4);
-        printf(" puD3dCallbacks->dwReserved5                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved5);
-        printf(" puD3dCallbacks->dwReserved6                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved6);
-        printf(" puD3dCallbacks->dwReserved7                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved7);
-        printf(" puD3dCallbacks->dwReserved8                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved8);
-        printf(" puD3dCallbacks->dwReserved9                       : 0x%08lx\n",(long)puD3dCallbacks->dwReserved9);
+        printf(" puD3dCallbacks->dwSize                                         : 0x%08lx\n",(long)puD3dCallbacks->dwSize);
+        printf(" puD3dCallbacks->ContextCreate                                  : 0x%08lx\n",(long)puD3dCallbacks->ContextCreate);
+        printf(" puD3dCallbacks->ContextDestroy                                 : 0x%08lx\n",(long)puD3dCallbacks->ContextDestroy);
+        printf(" puD3dCallbacks->ContextDestroyAll                              : 0x%08lx\n",(long)puD3dCallbacks->ContextDestroyAll);
+        printf(" puD3dCallbacks->SceneCapture                                   : 0x%08lx\n",(long)puD3dCallbacks->SceneCapture);
+        printf(" puD3dCallbacks->dwReserved10                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved10);
+        printf(" puD3dCallbacks->dwReserved11                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved11);
+        printf(" puD3dCallbacks->dwReserved22                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved22);
+        printf(" puD3dCallbacks->dwReserved23                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved23);
+        printf(" puD3dCallbacks->dwReserved                                     : 0x%08lx\n",(long)puD3dCallbacks->dwReserved);
+        printf(" puD3dCallbacks->TextureCreate                                  : 0x%08lx\n",(long)puD3dCallbacks->TextureCreate);
+        printf(" puD3dCallbacks->TextureDestroy                                 : 0x%08lx\n",(long)puD3dCallbacks->TextureDestroy);
+        printf(" puD3dCallbacks->TextureSwap                                    : 0x%08lx\n",(long)puD3dCallbacks->TextureSwap);
+        printf(" puD3dCallbacks->TextureGetSurf                                 : 0x%08lx\n",(long)puD3dCallbacks->TextureGetSurf);
+        printf(" puD3dCallbacks->dwReserved12                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved12);
+        printf(" puD3dCallbacks->dwReserved13                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved13);
+        printf(" puD3dCallbacks->dwReserved14                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved14);
+        printf(" puD3dCallbacks->dwReserved15                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved15);
+        printf(" puD3dCallbacks->dwReserved16                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved16);
+        printf(" puD3dCallbacks->dwReserved17                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved17);
+        printf(" puD3dCallbacks->dwReserved18                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved18);
+        printf(" puD3dCallbacks->dwReserved19                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved19);
+        printf(" puD3dCallbacks->dwReserved20                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved20);
+        printf(" puD3dCallbacks->dwReserved21                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved21);
+        printf(" puD3dCallbacks->dwReserved24                                   : 0x%08lx\n",(long)puD3dCallbacks->dwReserved24);
+        printf(" puD3dCallbacks->dwReserved0                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved0);
+        printf(" puD3dCallbacks->dwReserved1                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved1);
+        printf(" puD3dCallbacks->dwReserved2                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved2);
+        printf(" puD3dCallbacks->dwReserved3                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved3);
+        printf(" puD3dCallbacks->dwReserved4                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved4);
+        printf(" puD3dCallbacks->dwReserved5                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved5);
+        printf(" puD3dCallbacks->dwReserved6                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved6);
+        printf(" puD3dCallbacks->dwReserved7                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved7);
+        printf(" puD3dCallbacks->dwReserved8                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved8);
+        printf(" puD3dCallbacks->dwReserved9                                    : 0x%08lx\n",(long)puD3dCallbacks->dwReserved9);
     }
      else
     {
@@ -510,4 +515,207 @@ dump_D3dCallbacks(D3DNTHAL_CALLBACKS *puD3dCallbacks, char *text)
 }
 
 
+void
+dump_D3dDriverData(D3DNTHAL_GLOBALDRIVERDATA *puD3dDriverData, char *text)
+{
+    UINT flag = 0;
+    INT count = 0;
 
+    printf("dumping the D3DNTHAL_GLOBALDRIVERDATA from %s\n",text);
+    if (puD3dDriverData->dwSize ==  sizeof(D3DNTHAL_GLOBALDRIVERDATA))
+    {
+        printf(" puD3dDriverData->dwSize                                        : 0x%08lx\n",(long)puD3dDriverData->dwSize);
+        if (puD3dDriverData->hwCaps.dwSize == sizeof(D3DNTHALDEVICEDESC_V1))
+        {
+            printf(" puD3dDriverData->hwCaps.dwSize                                 : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dwSize);
+            printf(" puD3dDriverData->hwCaps.dwFlags                                : ");
+
+            flag = puD3dDriverData->hwCaps.dwFlags;
+            checkflag(flag,D3DDD_BCLIPPING,"D3DDD_BCLIPPING");
+            checkflag(flag,D3DDD_COLORMODEL,"D3DDD_COLORMODEL");
+            checkflag(flag,D3DDD_DEVCAPS,"D3DDD_DEVCAPS");
+            checkflag(flag,D3DDD_DEVICERENDERBITDEPTH,"D3DDD_DEVICERENDERBITDEPTH");
+            checkflag(flag,D3DDD_DEVICEZBUFFERBITDEPTH,"D3DDD_DEVICEZBUFFERBITDEPTH");
+            checkflag(flag,D3DDD_LIGHTINGCAPS,"D3DDD_LIGHTINGCAPS");
+            checkflag(flag,D3DDD_LINECAPS,"D3DDD_LINECAPS");
+            checkflag(flag,D3DDD_MAXBUFFERSIZE,"D3DDD_MAXBUFFERSIZE");
+            checkflag(flag,D3DDD_MAXVERTEXCOUNT,"D3DDD_MAXVERTEXCOUNT");
+            checkflag(flag,D3DDD_TRANSFORMCAPS,"D3DDD_TRANSFORMCAPS");
+            checkflag(flag,D3DDD_TRICAPS,"D3DDD_TRICAPS");
+            endcheckflag(flag,"puD3dDriverData->hwCaps.dwFlags ");
+             
+            printf(" puD3dDriverData->hwCaps.dcmColorModel                          : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dcmColorModel);
+            printf(" puD3dDriverData->hwCaps.dwDevCaps                              : ");
+
+            count = 0;
+            flag = puD3dDriverData->hwCaps.dwDevCaps;
+            checkflag(flag,D3DDEVCAPS_CANBLTSYSTONONLOCAL,"D3DDEVCAPS_CANBLTSYSTONONLOCAL");
+            checkflag(flag,D3DDEVCAPS_CANRENDERAFTERFLIP,"D3DDEVCAPS_CANRENDERAFTERFLIP");
+            checkflag(flag,D3DDEVCAPS_DRAWPRIMITIVES2,"D3DDEVCAPS_DRAWPRIMITIVES2");
+            checkflag(flag,D3DDEVCAPS_DRAWPRIMITIVES2EX,"D3DDEVCAPS_DRAWPRIMITIVES2EX");
+            checkflag(flag,D3DDEVCAPS_DRAWPRIMTLVERTEX,"D3DDEVCAPS_DRAWPRIMTLVERTEX");
+            checkflag(flag,D3DDEVCAPS_EXECUTESYSTEMMEMORY,"D3DDEVCAPS_EXECUTESYSTEMMEMORY");
+            checkflag(flag,D3DDEVCAPS_EXECUTEVIDEOMEMORY,"D3DDEVCAPS_EXECUTEVIDEOMEMORY");
+            checkflag(flag,D3DDEVCAPS_FLOATTLVERTEX,"D3DDEVCAPS_FLOATTLVERTEX");
+            checkflag(flag,D3DDEVCAPS_HWRASTERIZATION,"D3DDEVCAPS_HWRASTERIZATION");
+            checkflag(flag,D3DDEVCAPS_HWTRANSFORMANDLIGHT,"D3DDEVCAPS_HWTRANSFORMANDLIGHT");
+            checkflag(flag,D3DDEVCAPS_SEPARATETEXTUREMEMORIES,"D3DDEVCAPS_SEPARATETEXTUREMEMORIES");
+            checkflag(flag,D3DDEVCAPS_SORTDECREASINGZ,"D3DDEVCAPS_SORTDECREASINGZ");
+            checkflag(flag,D3DDEVCAPS_SORTEXACT,"D3DDEVCAPS_SORTEXACT");
+            checkflag(flag,D3DDEVCAPS_SORTINCREASINGZ,"D3DDEVCAPS_SORTINCREASINGZ");
+            // not in ddk or dxsdk I have but it is msdn checkflag(flag,D3DDEVCAPS_TEXTURENONLOCALVIDEOMEMORY,"D3DDEVCAPS_TEXTURENONLOCALVIDEOMEMORY");
+            checkflag(flag,D3DDEVCAPS_TLVERTEXSYSTEMMEMORY,"D3DDEVCAPS_TLVERTEXSYSTEMMEMORY");
+            checkflag(flag,D3DDEVCAPS_TLVERTEXVIDEOMEMORY,"D3DDEVCAPS_TLVERTEXVIDEOMEMORY");
+            checkflag(flag,D3DDEVCAPS_TEXTURESYSTEMMEMORY,"D3DDEVCAPS_TEXTURESYSTEMMEMORY");
+            checkflag(flag,D3DDEVCAPS_TEXTUREVIDEOMEMORY,"D3DDEVCAPS_TEXTUREVIDEOMEMORY");
+            endcheckflag(flag,"puD3dDriverData->hwCaps.dwDevCaps");
+            
+            if (puD3dDriverData->hwCaps.dtcTransformCaps.dwSize == sizeof(D3DTRANSFORMCAPS))
+            {
+                printf(" puD3dDriverData->hwCaps.dtcTransformCaps.dwSize                : 0x%08lx\n",(long) puD3dDriverData->hwCaps.dtcTransformCaps.dwSize);
+                printf(" puD3dDriverData->hwCaps.dtcTransformCaps.dwCaps                : ");
+
+                count = 0;
+                flag = puD3dDriverData->hwCaps.dtcTransformCaps.dwCaps;
+                checkflag(flag,D3DTRANSFORMCAPS_CLIP,"D3DTRANSFORMCAPS_CLIP");
+                endcheckflag(flag,"puD3dDriverData->hwCaps.dtcTransformCaps.dwCaps");                 
+            }
+            else
+            {
+                printf("none puD3dDriverData->hwCaps.dtcTransformCaps.dwSize from the driver 0x%08lx\n",puD3dDriverData->hwCaps.dtcTransformCaps.dwSize);
+            }
+
+            if (puD3dDriverData->hwCaps.dlcLightingCaps.dwSize == sizeof(D3DLIGHTINGCAPS))
+            {
+                printf(" puD3dDriverData->hwCaps.dlcLightingCaps.dwSize                 : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dlcLightingCaps.dwSize);
+                printf(" puD3dDriverData->hwCaps.dlcLightingCaps.dwCaps                 : ");
+
+                count = 0;
+                flag = puD3dDriverData->hwCaps.dlcLightingCaps.dwCaps;
+
+                checkflag(flag,D3DLIGHTCAPS_DIRECTIONAL,"D3DLIGHTCAPS_DIRECTIONAL");
+                checkflag(flag,D3DLIGHTCAPS_GLSPOT,"D3DLIGHTCAPS_GLSPOT");
+                checkflag(flag,D3DLIGHTCAPS_PARALLELPOINT,"D3DLIGHTCAPS_PARALLELPOINT");
+                checkflag(flag,D3DLIGHTCAPS_POINT,"D3DLIGHTCAPS_POINT");
+                checkflag(flag,D3DLIGHTCAPS_SPOT,"D3DLIGHTCAPS_SPOT");
+                endcheckflag(flag,"puD3dDriverData->hwCaps.dlcLightingCaps.dwCaps");         
+                
+                printf(" puD3dDriverData->hwCaps.dlcLightingCaps.dwLightingModel        : ");
+
+                count = 0;
+                flag = puD3dDriverData->hwCaps.dlcLightingCaps.dwLightingModel;
+
+                checkflag(flag,D3DLIGHTINGMODEL_MONO,"D3DLIGHTINGMODEL_MONO");
+                checkflag(flag,D3DLIGHTINGMODEL_RGB,"D3DLIGHTINGMODEL_RGB");
+                endcheckflag(flag,"puD3dDriverData->hwCaps.dlcLightingCaps.dwLightingModel"); 
+               
+                printf(" puD3dDriverData->hwCaps.dlcLightingCaps.dwNumLights            : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dlcLightingCaps.dwNumLights);
+            }
+            else
+            {
+                printf("none puD3dDriverData->hwCaps.dlcLightingCaps.dwSize from the driver 0x%08lx\n",puD3dDriverData->hwCaps.dlcLightingCaps.dwSize);
+            }
+
+
+            if (puD3dDriverData->hwCaps.dpcLineCaps.dwSize == sizeof(D3DPRIMCAPS))
+            {
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwSize                     : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwSize);
+
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwMiscCaps                 : ");
+                count = 0;
+                flag = puD3dDriverData->hwCaps.dpcLineCaps.dwMiscCaps;
+                checkflag(flag,D3DPMISCCAPS_CONFORMANT,"D3DPMISCCAPS_CONFORMANT");
+                checkflag(flag,D3DPMISCCAPS_CULLCCW,"D3DPMISCCAPS_CULLCCW");
+                checkflag(flag,D3DPMISCCAPS_CULLCW,"D3DPMISCCAPS_CULLCW");
+                checkflag(flag,D3DPMISCCAPS_CULLNONE,"D3DPMISCCAPS_CULLNONE");
+                checkflag(flag,D3DPMISCCAPS_LINEPATTERNREP,"D3DPMISCCAPS_LINEPATTERNREP");
+                checkflag(flag,D3DPMISCCAPS_MASKPLANES,"D3DPMISCCAPS_MASKPLANES");
+                checkflag(flag,D3DPMISCCAPS_MASKZ,"D3DPMISCCAPS_MASKZ");
+                endcheckflag(flag,"puD3dDriverData->hwCaps.dpcLineCaps.dwMiscCaps"); 
+
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwRasterCaps               : ");
+                count = 0;
+                flag = puD3dDriverData->hwCaps.dpcLineCaps.dwRasterCaps;
+                checkflag(flag,D3DPRASTERCAPS_ANISOTROPY,"D3DPRASTERCAPS_ANISOTROPY");
+                checkflag(flag,D3DPRASTERCAPS_ANTIALIASEDGES,"D3DPRASTERCAPS_ANTIALIASEDGES");
+                checkflag(flag,D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT,"D3DPRASTERCAPS_ANTIALIASSORTDEPENDENT");
+                checkflag(flag,D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT,"D3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT");
+                checkflag(flag,D3DPRASTERCAPS_DITHER,"D3DPRASTERCAPS_DITHER");
+                checkflag(flag,D3DPRASTERCAPS_FOGRANGE,"D3DPRASTERCAPS_FOGRANGE");
+                checkflag(flag,D3DPRASTERCAPS_FOGTABLE,"D3DPRASTERCAPS_FOGTABLE");
+                checkflag(flag,D3DPRASTERCAPS_FOGVERTEX,"D3DPRASTERCAPS_FOGVERTEX");
+                checkflag(flag,D3DPRASTERCAPS_PAT,"D3DPRASTERCAPS_PAT");
+                checkflag(flag,D3DPRASTERCAPS_ROP2,"D3DPRASTERCAPS_ROP2");
+                checkflag(flag,D3DPRASTERCAPS_STIPPLE,"D3DPRASTERCAPS_STIPPLE");
+                checkflag(flag,D3DPRASTERCAPS_SUBPIXEL,"D3DPRASTERCAPS_SUBPIXEL");
+                checkflag(flag,D3DPRASTERCAPS_SUBPIXELX,"D3DPRASTERCAPS_SUBPIXELX");
+                checkflag(flag,D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT,"D3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT");
+                checkflag(flag,D3DPRASTERCAPS_WBUFFER,"D3DPRASTERCAPS_WBUFFER");
+                checkflag(flag,D3DPRASTERCAPS_WFOG,"D3DPRASTERCAPS_WFOG");
+                checkflag(flag,D3DPRASTERCAPS_XOR,"D3DPRASTERCAPS_XOR");
+                checkflag(flag,D3DPRASTERCAPS_ZBIAS,"D3DPRASTERCAPS_ZBIAS");
+                checkflag(flag,D3DPRASTERCAPS_ZBUFFERLESSHSR,"D3DPRASTERCAPS_ZBUFFERLESSHSR");
+                checkflag(flag,D3DPRASTERCAPS_ZFOG,"D3DPRASTERCAPS_ZFOG");
+                checkflag(flag,D3DPRASTERCAPS_ZTEST,"D3DPRASTERCAPS_ZTEST");               
+                endcheckflag(flag,"puD3dDriverData->hwCaps.dpcLineCaps.dwRasterCaps"); 
+
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwZCmpCaps                 : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwZCmpCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwSrcBlendCaps             : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwSrcBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwDestBlendCaps            : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwDestBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwAlphaCmpCaps             : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwAlphaCmpCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwShadeCaps                : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwShadeCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwTextureCaps              : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwTextureCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwTextureFilterCaps        : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwTextureFilterCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwTextureBlendCaps         : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwTextureBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwTextureAddressCaps       : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwTextureAddressCaps);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwStippleWidth             : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwStippleWidth);
+                printf(" puD3dDriverData->hwCaps.dpcLineCaps.dwStippleHeight            : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcLineCaps.dwStippleHeight);
+            }
+            else
+            {
+                printf("none puD3dDriverData->hwCaps.dpcLineCaps.dwSize from the driver 0x%08lx\n",puD3dDriverData->hwCaps.dpcLineCaps.dwSize);
+            }
+
+            if (puD3dDriverData->hwCaps.dpcTriCaps.dwSize == sizeof(D3DPRIMCAPS))
+            {
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwSize                      : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwSize);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwMiscCaps                  : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwMiscCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwRasterCaps                : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwRasterCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwZCmpCaps                  : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwZCmpCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwSrcBlendCaps              : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwSrcBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwDestBlendCaps             : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwDestBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwAlphaCmpCaps              : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwAlphaCmpCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwShadeCaps                 : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwShadeCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwTextureCaps               : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwTextureCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwTextureFilterCaps         : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwTextureFilterCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwTextureBlendCaps          : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwTextureBlendCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwTextureAddressCaps        : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwTextureAddressCaps);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwStippleWidth              : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwStippleWidth);
+                printf(" puD3dDriverData->hwCaps.dpcTriCaps.dwStippleHeight             : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dpcTriCaps.dwStippleHeight);
+            }
+            else
+            {
+                printf("none puD3dDriverData->hwCaps.dpcTriCaps.dwSize from the driver 0x%08lx\n",puD3dDriverData->hwCaps.dpcTriCaps.dwSize);
+            }
+
+            printf(" puD3dDriverData->hwCaps.dwDeviceRenderBitDepth                 : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dwDeviceRenderBitDepth);
+            printf(" puD3dDriverData->hwCaps.dwDeviceZBufferBitDepth                : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dwDeviceZBufferBitDepth);
+            printf(" puD3dDriverData->hwCaps.dwMaxBufferSize                        : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dwMaxBufferSize);
+            printf(" puD3dDriverData->hwCaps.dwMaxVertexCount                       : 0x%08lx\n",(long)puD3dDriverData->hwCaps.dwMaxVertexCount);
+        }
+        else
+        {
+            printf("none puD3dDriverData->hwCaps.dwSize from the driver 0x%08lx\n",puD3dDriverData->hwCaps.dwSize);
+        }
+
+        printf(" puD3dDriverData->dwNumVertices                                 : 0x%08lx\n",(long)puD3dDriverData->dwNumVertices);
+        printf(" puD3dDriverData->dwNumClipVertices                             : 0x%08lx\n",(long)puD3dDriverData->dwNumClipVertices);
+        printf(" puD3dDriverData->dwNumTextureFormats                           : 0x%08lx\n",(long)puD3dDriverData->dwNumTextureFormats);
+        printf(" puD3dDriverData->lpTextureFormats                              : 0x%08lx\n",(long)puD3dDriverData->lpTextureFormats);
+        printf(" puD3dDriverData->lpTextureFormats                              : 0x%08lx\n",(long)puD3dDriverData->lpTextureFormats);
+    }
+    else
+    {
+        printf("none puD3dDriverData from the driver 0x%08lx\n",puD3dDriverData->dwSize);
+    }
+}
index e6314f4..651ae6d 100644 (file)
@@ -11,6 +11,7 @@ void test_NtGdiDdCanCreateSurface(HANDLE hDirectDrawLocal);
 void dump_halinfo(DD_HALINFO *pHalInfo, char *text);
 void dump_CallBackFlags(DWORD *pCallBackFlags, char *text);
 void dump_D3dCallbacks(D3DNTHAL_CALLBACKS *puD3dCallbacks, char *text);
+void dump_D3dDriverData(D3DNTHAL_GLOBALDRIVERDATA *puD3dDriverData, char *text);