Move tests from rosapps to rostests
[reactos.git] / rostests / dxtest / win32kdxtest / NtGdiDdQueryDirectDrawObject.c
1 #include <stdio.h>
2 /* SDK/DDK/NDK Headers. */
3 #include <windows.h>
4 #include <wingdi.h>
5 #include <winddi.h>
6 #include <d3dnthal.h>
7 #include <dll/directx/d3d8thk.h>
8 #include "test.h"
9
10 extern BOOL dumping_on;
11
12 /*
13 * Test see if we can setup DirectDrawObject
14 *
15 */
16 void
17 test_NtGdiDdQueryDirectDrawObject( HANDLE hDirectDrawLocal)
18 {
19 int fails=0;
20 BOOL retValue=FALSE;
21
22 DD_HALINFO *pHalInfo = NULL;
23 DWORD *pCallBackFlags = NULL;
24 LPD3DNTHAL_CALLBACKS puD3dCallbacks = NULL;
25 LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData = NULL;
26 PDD_D3DBUFCALLBACKS puD3dBufferCallbacks = NULL;
27 LPDDSURFACEDESC puD3dTextureFormats = NULL;
28 DWORD *puNumHeaps = NULL;
29 VIDEOMEMORY *puvmList = NULL;
30 DWORD *puNumFourCC = NULL;
31 DWORD *puFourCC = NULL;
32
33 DD_HALINFO HalInfo;
34 DWORD CallBackFlags[4];
35 D3DNTHAL_CALLBACKS D3dCallbacks;
36 D3DNTHAL_GLOBALDRIVERDATA D3dDriverData;
37 DD_D3DBUFCALLBACKS D3dBufferCallbacks;
38 DDSURFACEDESC2 D3dTextureFormats[100];
39 // DWORD NumHeaps = 0;
40 VIDEOMEMORY vmList;
41 // DWORD NumFourCC = 0;
42 //DWORD FourCC = 0;
43
44 /* clear data */
45 memset(&vmList,0,sizeof(VIDEOMEMORY));
46 memset(&D3dTextureFormats,0,sizeof(DDSURFACEDESC));
47 memset(&D3dBufferCallbacks,0,sizeof(DD_D3DBUFCALLBACKS));
48 memset(&D3dDriverData,0,sizeof(D3DNTHAL_GLOBALDRIVERDATA));
49 memset(&D3dCallbacks,0,sizeof(D3DNTHAL_CALLBACKS));
50 memset(&HalInfo,0,sizeof(DD_HALINFO));
51 memset(CallBackFlags,0,sizeof(DWORD)*3);
52
53 printf("Start testing of NtGdiDdQueryDirectDrawObject\n");
54
55 /* testing OsThunkDdQueryDirectDrawObject( NULL, .... */
56 printf("testing DdQueryDirectDrawObject( NULL, ....)\n");
57
58 retValue = OsThunkDdQueryDirectDrawObject( NULL, pHalInfo,
59 pCallBackFlags, puD3dCallbacks,
60 puD3dDriverData, puD3dBufferCallbacks,
61 puD3dTextureFormats, puNumHeaps,
62 puvmList, puNumFourCC,
63 puFourCC);
64 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
65 testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
66 testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
67 testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
68 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
69 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
70 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
71 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
72 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(NULL, ...);\0");
73
74 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, NULL, .... */
75 printf("testing DdQueryDirectDrawObject( hDD, NULL, ....)\n");
76
77 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
78 pCallBackFlags, puD3dCallbacks,
79 puD3dDriverData, puD3dBufferCallbacks,
80 puD3dTextureFormats, puNumHeaps,
81 puvmList, puNumFourCC,
82 puFourCC);
83
84 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
85 testing_noteq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
86 testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
87 testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
88 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
89 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
90 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
91 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
92 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, NULL, ...);\0");
93
94 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, NULL, .... */
95 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, NULL, ....)\n");
96
97 pHalInfo = &HalInfo;
98 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
99 pCallBackFlags, puD3dCallbacks,
100 puD3dDriverData, puD3dBufferCallbacks,
101 puD3dTextureFormats, puNumHeaps,
102 puvmList, puNumFourCC,
103 puFourCC);
104
105 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
106 testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
107 testing_noteq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
108 testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
109 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
110 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
111 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
112 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
113 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\0");
114
115 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
116 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
117 {
118 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...);\n");
119 fails++;
120 }
121
122 if (dumping_on == TRUE)
123 {
124 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, NULL, ...)");
125 }
126
127 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
128 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, NULL, ....)\n");
129
130 pHalInfo = &HalInfo;
131 pCallBackFlags = CallBackFlags;
132
133 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
134
135 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
136 pCallBackFlags, puD3dCallbacks,
137 puD3dDriverData, puD3dBufferCallbacks,
138 puD3dTextureFormats, puNumHeaps,
139 puvmList, puNumFourCC,
140 puFourCC);
141
142 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
143 testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
144 testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
145 testing_noteq(puD3dCallbacks,NULL,fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
146 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
147 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
148 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
149 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
150 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\0");
151 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
152 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
153 {
154 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...);\n");
155 fails++;
156 }
157
158 if (dumping_on == TRUE)
159 {
160 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
161 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
162 }
163
164 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
165 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ....)\n");
166
167 pHalInfo = &HalInfo;
168 pCallBackFlags = CallBackFlags;
169 puD3dCallbacks = &D3dCallbacks;
170
171 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
172 RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
173
174 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
175 pCallBackFlags, puD3dCallbacks,
176 puD3dDriverData, puD3dBufferCallbacks,
177 puD3dTextureFormats, puNumHeaps,
178 puvmList, puNumFourCC,
179 puFourCC);
180
181 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
182 testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
183 testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
184 testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
185
186 testing_noteq(puD3dDriverData,NULL,fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
187 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
188 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
189 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
190 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
191 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
192 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
193 {
194 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\n");
195 fails++;
196 }
197
198 if (dumping_on == TRUE)
199 {
200 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
201 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
202 /* FIXME dump puD3dCallbacks */
203 }
204
205 /* testing OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, .... */
206 printf("testing DdQueryDirectDrawObject( hDD, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ....)\n");
207
208 pHalInfo = &HalInfo;
209 pCallBackFlags = CallBackFlags;
210 puD3dCallbacks = &D3dCallbacks;
211 puD3dDriverData = &D3dDriverData;
212
213 RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
214 RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
215 RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
216
217 retValue = OsThunkDdQueryDirectDrawObject( hDirectDrawLocal, pHalInfo,
218 pCallBackFlags, puD3dCallbacks,
219 puD3dDriverData, puD3dBufferCallbacks,
220 puD3dTextureFormats, puNumHeaps,
221 puvmList, puNumFourCC,
222 puFourCC);
223
224 testing_noteq(retValue,FALSE,fails,"1. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
225 testing_eq(pHalInfo,NULL,fails,"2. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
226 testing_eq(pCallBackFlags,NULL,fails,"3. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
227 testing_noteq(puD3dCallbacks->dwSize,sizeof(D3DNTHAL_CALLBACKS),fails,"4. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
228
229 testing_noteq(puD3dDriverData->dwSize,sizeof(D3DNTHAL_GLOBALDRIVERDATA),fails,"5. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, NULL, ...);\0");
230
231 testing_noteq(puD3dBufferCallbacks,NULL,fails,"6. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
232 testing_noteq(puD3dTextureFormats,NULL,fails,"7. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
233 testing_noteq(puNumFourCC,NULL,fails,"8. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
234 testing_noteq(puFourCC,NULL,fails,"9. NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\0");
235 if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
236 (pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
237 {
238 printf("10. if this show for NT 2000/XP/2003 ignore it, NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData, NULL, ...);\n");
239 fails++;
240 }
241
242 if (dumping_on == TRUE)
243 {
244 dump_halinfo(pHalInfo,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
245 dump_CallBackFlags(pCallBackFlags,"NtGdiDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, NULL, ...)");
246 /* FIXME dump puD3dCallbacks */
247 /* FIXME dump puD3dDriverData */
248 }
249
250 show_status(fails, "NtGdiDdQueryDirectDrawObject\0");
251 }