[DXG] Implement DxDdCreateDirectDrawObject and update DdHmgAlloc CORE-4490
[reactos.git] / reactos / win32ss / reactx / ntddraw / ddraw.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: Native DirectDraw implementation
5 * FILE: win32ss/reactx/ntddraw/ddraw.c
6 * PROGRAMER: Magnus olsen (magnus@greatlord.com)
7 * REVISION HISTORY:
8 * 19/1-2006 Magnus Olsen
9 */
10
11 #include <win32k.h>
12 #include <debug.h>
13
14 PGD_DXDDSTARTUPDXGRAPHICS gpfnStartupDxGraphics = NULL;
15 PGD_DXDDCLEANUPDXGRAPHICS gpfnCleanupDxGraphics = NULL;
16
17 /* export from dxeng.c */
18 extern DRVFN gaEngFuncs[];
19 extern ULONG gcEngFuncs;
20 extern EDD_DIRECTDRAW_GLOBAL edd_DdirectDraw_Global;
21
22
23 DRVFN gpDxFuncs[DXG_INDEX_DxDdIoctl + 1];
24 HANDLE ghDxGraphics = NULL;
25 ULONG gdwDirectDrawContext = 0;
26
27 #define DXDBG 1
28
29 /************************************************************************/
30 /* DirectX graphic/video driver enable start here */
31 /************************************************************************/
32 BOOL
33 intEnableReactXDriver(HDC hdc)
34 {
35 NTSTATUS Status;
36 PEPROCESS Proc = NULL;
37 PDC pDC = NULL;
38 PPDEVOBJ pDev = NULL;
39 PGD_DXDDENABLEDIRECTDRAW pfnDdEnableDirectDraw = NULL;
40 BOOL success = FALSE;
41
42 /* FIXME: Get the process data */
43
44 /* Do not try load dxg.sys when it have already been load once */
45 if (gpfnStartupDxGraphics == NULL)
46 {
47 Status = DxDdStartupDxGraphics(0,NULL,0,NULL,NULL, Proc);
48 if (!NT_SUCCESS(Status))
49 {
50 DPRINT1("Warning: Failed to create the directx interface\n");
51 return FALSE;
52 }
53 }
54
55 pDC = DC_LockDc(hdc);
56 if (pDC == NULL)
57 {
58 DPRINT1("Warning: Failed to lock hdc\n");
59 return FALSE;
60 }
61
62 pDev = pDC->ppdev;
63
64 /* Test and see if drv got a DX interface or not */
65 if ( ( pDev->DriverFunctions.DisableDirectDraw == NULL) ||
66 ( pDev->DriverFunctions.EnableDirectDraw == NULL))
67 {
68 DPRINT1("Warning : DisableDirectDraw and EnableDirectDraw are NULL, no dx driver \n");
69 }
70 else
71 {
72
73 /* Check and see if DX has been enabled or not */
74 if ( pDev->pEDDgpl->pvmList == NULL)
75 {
76 pDev->pEDDgpl->ddCallbacks.dwSize = sizeof(DD_CALLBACKS);
77 pDev->pEDDgpl->ddSurfaceCallbacks.dwSize = sizeof(DD_SURFACECALLBACKS);
78 pDev->pEDDgpl->ddPaletteCallbacks.dwSize = sizeof(DD_PALETTECALLBACKS);
79
80 pfnDdEnableDirectDraw = (PGD_DXDDENABLEDIRECTDRAW)gpDxFuncs[DXG_INDEX_DxDdEnableDirectDraw].pfn;
81 if (pfnDdEnableDirectDraw == NULL)
82 {
83 DPRINT1("Warning: no pfnDdEnableDirectDraw\n");
84 }
85 else
86 {
87 DPRINT1(" call to pfnDdEnableDirectDraw \n ");
88
89 /* Note: it is the hdev struct it wants, not the drv hPDev aka pdc->PDev */
90 success = pfnDdEnableDirectDraw(pDC->ppdev, TRUE);
91
92 dump_edd_directdraw_global(pDev->pEDDgpl);
93 dump_halinfo(&pDev->pEDDgpl->ddHalInfo);
94 }
95 }
96 else
97 {
98 DPRINT1(" The dxg.sys and graphic card driver interface is enabled \n ");
99 success = TRUE;
100 }
101 }
102
103
104 DPRINT1("Return value : 0x%08x\n",success);
105 DC_UnlockDc(pDC);
106 DPRINT1(" end call to pfnDdEnableDirectDraw \n ");
107 return success;
108 }
109
110 /************************************************************************/
111 /* DirectX graphic/video driver enable ends here */
112 /************************************************************************/
113
114 /************************************************************************/
115 /* DirectX graphic/video driver loading and cleanup starts here */
116 /************************************************************************/
117 NTSTATUS
118 APIENTRY
119 DxDdStartupDxGraphics( ULONG ulc1,
120 PDRVENABLEDATA DxEngDrvOld,
121 ULONG ulc2,
122 PDRVENABLEDATA DxgDrvOld,
123 PULONG DirectDrawContext,
124 PEPROCESS Proc)
125 {
126 DRVENABLEDATA DxEngDrv;
127 DRVENABLEDATA DxgDrv;
128
129 NTSTATUS Status = STATUS_PROCEDURE_NOT_FOUND;
130
131 /* FIXME: Setup of gaEngFuncs driver export list
132 * but not in this api, we can add it here tempary until we figout where
133 * no code have been writen for it yet
134 */
135
136
137 /* FIXME: ReactOS does not loading the dxapi.sys or import functions from it yet */
138 // DxApiGetVersion()
139
140 /* Loading the kernel interface of DirectX for win32k */
141
142 DPRINT1("Warning: trying loading xp/2003/windows7/reactos dxg.sys\n");
143 ghDxGraphics = EngLoadImage(L"\\SystemRoot\\System32\\drivers\\dxg.sys");
144 if ( ghDxGraphics == NULL)
145 {
146 Status = STATUS_DLL_NOT_FOUND;
147 DPRINT1("Warning: no ReactX or DirectX kernel driver found\n");
148 }
149 else
150 {
151 /* Import DxDdStartupDxGraphics and DxDdCleanupDxGraphics */
152 gpfnStartupDxGraphics = EngFindImageProcAddress(ghDxGraphics,"DxDdStartupDxGraphics");
153 gpfnCleanupDxGraphics = EngFindImageProcAddress(ghDxGraphics,"DxDdCleanupDxGraphics");
154
155 if ((gpfnStartupDxGraphics) &&
156 (gpfnCleanupDxGraphics))
157 {
158 /* Setup driver data for activate the dx interface */
159 DxEngDrv.iDriverVersion = DDI_DRIVER_VERSION_NT5_01;
160 DxEngDrv.pdrvfn = gaEngFuncs;
161 DxEngDrv.c = gcEngFuncs;
162
163 Status = gpfnStartupDxGraphics ( sizeof(DRVENABLEDATA),
164 &DxEngDrv,
165 sizeof(DRVENABLEDATA),
166 &DxgDrv,
167 &gdwDirectDrawContext,
168 Proc );
169 }
170
171 /* Check if we manage loading the data and execute the dxStartupDxGraphics if it is successful */
172 if (!NT_SUCCESS(Status))
173 {
174 gpfnStartupDxGraphics = NULL;
175 gpfnCleanupDxGraphics = NULL;
176 if (ghDxGraphics != NULL)
177 {
178 EngUnloadImage( ghDxGraphics);
179 ghDxGraphics = NULL;
180 }
181 DPRINT1("Warning: DirectX graphics interface can not be initialized\n");
182 }
183 else
184 {
185 /* Sort the drv functions list in index order, this allows us doing, smaller optimize
186 * in API that are redirect to dx.sys
187 */
188
189 PDRVFN lstDrvFN = DxgDrv.pdrvfn;
190 INT t;
191 for (t=0;t<=DXG_INDEX_DxDdIoctl;t++)
192 {
193 gpDxFuncs[lstDrvFN[t].iFunc].iFunc =lstDrvFN[t].iFunc;
194 gpDxFuncs[lstDrvFN[t].iFunc].pfn =lstDrvFN[t].pfn;
195 }
196
197 DPRINT1("DirectX interface is activated\n");
198
199 }
200 /* Return the status */
201 }
202
203 return Status;
204 }
205
206 /************************************************************************/
207 /* DirectX graphic/video driver loading cleanup ends here */
208 /************************************************************************/
209
210 /************************************************************************/
211 /* NtGdiDdCreateDirectDrawObject */
212 /************************************************************************/
213 HANDLE
214 APIENTRY
215 NtGdiDdCreateDirectDrawObject(HDC hdc)
216 {
217 PGD_DDCREATEDIRECTDRAWOBJECT pfnDdCreateDirectDrawObject;
218
219 if (hdc == NULL)
220 {
221 DPRINT1("Warning: hdc is NULL\n");
222 return 0;
223 }
224
225 /* FIXME: This should be alloc for each drv and use it from each drv, not global for whole win32k */
226 if (intEnableReactXDriver(hdc) == FALSE)
227 {
228 DPRINT1("Warning: Failed to start the DirectX interface from the graphic driver\n");
229 return DDHAL_DRIVER_NOTHANDLED;
230 }
231
232 /* Get the pfnDdCreateDirectDrawObject after we load the drv */
233 pfnDdCreateDirectDrawObject = (PGD_DDCREATEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateDirectDrawObject].pfn;
234
235 if (pfnDdCreateDirectDrawObject == NULL)
236 {
237 DPRINT1("Warning: no pfnDdCreateDirectDrawObject\n");
238 return DDHAL_DRIVER_NOTHANDLED;
239 }
240
241 DPRINT1("Calling dxg.sys DdCreateDirectDrawObject\n");
242
243 return pfnDdCreateDirectDrawObject(hdc);
244 }
245
246 /*++
247 * @name NtGdiDxgGenericThunk
248 * @implemented
249 *
250 * The function NtGdiDxgGenericThunk redirects DirectX calls to another function.
251 * It redirects to dxg.sys in Windows XP/2003, dxkrnl.sys in Vista and is fully implemented in win32k.sys in Windows 2000 and below
252 *
253 * @param ULONG_PTR ulIndex
254 * The functions we want to redirect
255 *
256 * @param ULONG_PTR ulHandle
257 * Unknown
258 *
259 * @param SIZE_T *pdwSizeOfPtr1
260 * Unknown
261 *
262 * @param PVOID pvPtr1
263 * Unknown
264 *
265 * @param SIZE_T *pdwSizeOfPtr2
266 * Unknown
267 *
268 * @param PVOID pvPtr2
269 * Unknown
270 *
271 * @return
272 * Always returns DDHAL_DRIVER_NOTHANDLED
273 *
274 * @remarks.
275 * dxg.sys NtGdiDxgGenericThunk calls are redirected to dxg.sys
276 * This function is no longer used but is still present in Windows NT 2000/XP/2003.
277 *
278 *--*/
279 DWORD
280 APIENTRY
281 NtGdiDxgGenericThunk(ULONG_PTR ulIndex,
282 ULONG_PTR ulHandle,
283 SIZE_T *pdwSizeOfPtr1,
284 PVOID pvPtr1,
285 SIZE_T *pdwSizeOfPtr2,
286 PVOID pvPtr2)
287 {
288 PGD_DXGENERICTRUNK pfnDxgGenericThunk = (PGD_DXGENERICTRUNK)gpDxFuncs[DXG_INDEX_DxDxgGenericThunk].pfn;
289
290 if (pfnDxgGenericThunk == NULL)
291 {
292 DPRINT1("Warning: no pfnDxgGenericThunk\n");
293 return DDHAL_DRIVER_NOTHANDLED;
294 }
295
296 DPRINT1("Calling dxg.sys pfnDxgGenericThunk\n");
297 return pfnDxgGenericThunk(ulIndex, ulHandle, pdwSizeOfPtr1, pvPtr1, pdwSizeOfPtr2, pvPtr2);
298 }
299
300 /************************************************************************/
301 /* NtGdiDdGetDriverState */
302 /************************************************************************/
303 DWORD
304 APIENTRY
305 NtGdiDdGetDriverState(PDD_GETDRIVERSTATEDATA pdata)
306 {
307 PGD_DDGETDRIVERSTATE pfnDdGetDriverState = (PGD_DDGETDRIVERSTATE)gpDxFuncs[DXG_INDEX_DxDdGetDriverState].pfn;
308
309 if (pfnDdGetDriverState == NULL)
310 {
311 DPRINT1("Warning: no pfnDdGetDriverState\n");
312 return DDHAL_DRIVER_NOTHANDLED;
313 }
314
315 DPRINT1("Calling dxg.sys DdGetDriverState\n");
316 return pfnDdGetDriverState(pdata);
317 }
318
319 /************************************************************************/
320 /* NtGdiDdColorControl */
321 /************************************************************************/
322 DWORD
323 APIENTRY
324 NtGdiDdColorControl(HANDLE hSurface,
325 PDD_COLORCONTROLDATA puColorControlData)
326 {
327 PGD_DDCOLORCONTROL pfnDdColorControl = (PGD_DDCOLORCONTROL)gpDxFuncs[DXG_INDEX_DxDdColorControl].pfn;
328
329 if (pfnDdColorControl == NULL)
330 {
331 DPRINT1("Warning: no pfnDdColorControl\n");
332 return DDHAL_DRIVER_NOTHANDLED;
333 }
334
335 DPRINT1("Calling dxg.sys DdColorControl\n");
336 return pfnDdColorControl(hSurface,puColorControlData);
337 }
338
339 /************************************************************************/
340 /* NtGdiDdCreateSurfaceObject */
341 /************************************************************************/
342 HANDLE
343 APIENTRY
344 NtGdiDdCreateSurfaceObject(HANDLE hDirectDrawLocal,
345 HANDLE hSurface,
346 PDD_SURFACE_LOCAL puSurfaceLocal,
347 PDD_SURFACE_MORE puSurfaceMore,
348 PDD_SURFACE_GLOBAL puSurfaceGlobal,
349 BOOL bComplete
350 )
351 {
352 PGD_DXDDCREATESURFACEOBJECT pfnDdCreateSurfaceObject = (PGD_DXDDCREATESURFACEOBJECT)gpDxFuncs[DXG_INDEX_DxDdCreateSurfaceObject].pfn;
353
354 if (pfnDdCreateSurfaceObject == NULL)
355 {
356 DPRINT1("Warning: no pfnDdCreateSurfaceObject\n");
357 return DDHAL_DRIVER_NOTHANDLED;
358 }
359
360 DPRINT1("Calling dxg.sys pfnDdCreateSurfaceObject\n");
361 return pfnDdCreateSurfaceObject(hDirectDrawLocal, hSurface, puSurfaceLocal, puSurfaceMore, puSurfaceGlobal, bComplete);
362 }
363
364 /************************************************************************/
365 /* NtGdiDdDeleteDirectDrawObject */
366 /************************************************************************/
367 BOOL
368 APIENTRY
369 NtGdiDdDeleteDirectDrawObject(HANDLE hDirectDrawLocal)
370 {
371 PGD_DXDDDELETEDIRECTDRAWOBJECT pfnDdDeleteDirectDrawObject = (PGD_DXDDDELETEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdDeleteDirectDrawObject].pfn;
372
373 if (pfnDdDeleteDirectDrawObject == NULL)
374 {
375 DPRINT1("Warning: no pfnDdDeleteDirectDrawObject\n");
376 return FALSE;
377 }
378
379 if (hDirectDrawLocal == NULL)
380 {
381 DPRINT1("Warning: hDirectDrawLocal is NULL\n");
382 return FALSE;
383 }
384
385 DPRINT1("hDirectDrawLocal = %p \n", hDirectDrawLocal);
386 DPRINT1("Calling dxg.sys pfnDdDeleteDirectDrawObject\n");
387
388 return pfnDdDeleteDirectDrawObject(hDirectDrawLocal);
389 }
390
391 /************************************************************************/
392 /* NtGdiDdDeleteSurfaceObject */
393 /************************************************************************/
394 BOOL
395 APIENTRY
396 NtGdiDdDeleteSurfaceObject(HANDLE hSurface)
397 {
398 PGD_DXDDDELETESURFACEOBJECT pfnDdDeleteSurfaceObject = (PGD_DXDDDELETESURFACEOBJECT)gpDxFuncs[DXG_INDEX_DxDdDeleteSurfaceObject].pfn;
399
400 if (pfnDdDeleteSurfaceObject == NULL)
401 {
402 DPRINT1("Warning: no pfnDdDeleteSurfaceObject\n");
403 return DDHAL_DRIVER_NOTHANDLED;
404 }
405 /* Try and see if the handle is valid */
406
407 DPRINT1("Calling dxg.sys DdDeleteSurfaceObject\n");
408 return pfnDdDeleteSurfaceObject(hSurface);
409 }
410
411 /************************************************************************/
412 /* NtGdiDdQueryDirectDrawObject */
413 /************************************************************************/
414 BOOL
415 APIENTRY
416 NtGdiDdQueryDirectDrawObject(HANDLE hDirectDrawLocal,
417 DD_HALINFO *pHalInfo,
418 DWORD *pCallBackFlags,
419 LPD3DNTHAL_CALLBACKS puD3dCallbacks,
420 LPD3DNTHAL_GLOBALDRIVERDATA puD3dDriverData,
421 PDD_D3DBUFCALLBACKS puD3dBufferCallbacks,
422 LPDDSURFACEDESC puD3dTextureFormats,
423 DWORD *puNumHeaps,
424 VIDEOMEMORY *puvmList,
425 DWORD *puNumFourCC,
426 DWORD *puFourCC)
427 {
428 PGD_DXDDQUERYDIRECTDRAWOBJECT pfnDdQueryDirectDrawObject = (PGD_DXDDQUERYDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdQueryDirectDrawObject].pfn;
429
430 if (pfnDdQueryDirectDrawObject == NULL)
431 {
432 DPRINT1("Warning: no pfnDdQueryDirectDrawObject\n");
433 return DDHAL_DRIVER_NOTHANDLED;
434 }
435
436 DPRINT1("Calling dxg.sys pfnDdQueryDirectDrawObject\n");
437
438
439 return pfnDdQueryDirectDrawObject(hDirectDrawLocal, pHalInfo, pCallBackFlags, puD3dCallbacks, puD3dDriverData,
440 puD3dBufferCallbacks, puD3dTextureFormats, puNumHeaps, puvmList, puNumFourCC, puFourCC);
441
442 }
443
444
445 /************************************************************************/
446 /* NtGdiDdReenableDirectDrawObject */
447 /************************************************************************/
448 BOOL
449 APIENTRY
450 NtGdiDdReenableDirectDrawObject(HANDLE hDirectDrawLocal,
451 BOOL *pubNewMode)
452 {
453 #if DXDBG
454 BOOL status = FALSE;
455 #endif
456 PGD_DXDDREENABLEDIRECTDRAWOBJECT pfnDdReenableDirectDrawObject = (PGD_DXDDREENABLEDIRECTDRAWOBJECT)gpDxFuncs[DXG_INDEX_DxDdReenableDirectDrawObject].pfn;
457
458 if (pfnDdReenableDirectDrawObject == NULL)
459 {
460 DPRINT1("Warning: no pfnDdReenableDirectDrawObject\n");
461 return DDHAL_DRIVER_NOTHANDLED;
462 }
463
464 DPRINT1("Calling dxg.sys pfnDdReenableDirectDrawObject\n");
465
466 #if DXDBG
467 status = pfnDdReenableDirectDrawObject(hDirectDrawLocal, pubNewMode);
468 DPRINT1("end Calling dxg.sys pfnDdReenableDirectDrawObject\n");
469 DPRINT1("return value : 0x%08x\n", status);
470 return status;
471 #else
472 return pfnDdReenableDirectDrawObject(hDirectDrawLocal, pubNewMode);
473 #endif
474 }
475
476
477 /************************************************************************/
478 /* NtGdiDdGetDriverInfo */
479 /************************************************************************/
480 DWORD
481 APIENTRY
482 NtGdiDdGetDriverInfo(HANDLE hDirectDrawLocal,
483 PDD_GETDRIVERINFODATA puGetDriverInfoData)
484
485 {
486 PGD_DXDDGETDRIVERINFO pfnDdGetDriverInfo = (PGD_DXDDGETDRIVERINFO)gpDxFuncs[DXG_INDEX_DxDdGetDriverInfo].pfn;
487
488 if (pfnDdGetDriverInfo == NULL)
489 {
490 DPRINT1("Warning: no pfnDdGetDriverInfo\n");
491 return DDHAL_DRIVER_NOTHANDLED;
492 }
493
494 DPRINT1("Calling dxg.sys pfnDdGetDriverInfo\n");
495 return pfnDdGetDriverInfo(hDirectDrawLocal, puGetDriverInfoData);
496 }
497
498
499 /************************************************************************/
500 /* NtGdiDdGetAvailDriverMemory */
501 /************************************************************************/
502 DWORD
503 APIENTRY
504 NtGdiDdGetAvailDriverMemory(HANDLE hDirectDrawLocal,
505 PDD_GETAVAILDRIVERMEMORYDATA puGetAvailDriverMemoryData)
506 {
507 PGD_DXDDGETAVAILDRIVERMEMORY pfnDdGetAvailDriverMemory = (PGD_DXDDGETAVAILDRIVERMEMORY)gpDxFuncs[DXG_INDEX_DxDdGetAvailDriverMemory].pfn;
508
509 if (pfnDdGetAvailDriverMemory == NULL)
510 {
511 DPRINT1("Warning: no pfnDdGetAvailDriverMemory\n");
512 return DDHAL_DRIVER_NOTHANDLED;
513 }
514
515 DPRINT1("Calling dxg.sys pfnDdGetAvailDriverMemory\n");
516 return pfnDdGetAvailDriverMemory(hDirectDrawLocal, puGetAvailDriverMemoryData);
517 }
518
519
520 /************************************************************************/
521 /* NtGdiDdSetExclusiveMode */
522 /************************************************************************/
523
524 DWORD
525 APIENTRY
526 NtGdiDdSetExclusiveMode(HANDLE hDirectDraw,
527 PDD_SETEXCLUSIVEMODEDATA puSetExclusiveModeData)
528 {
529 PGD_DXDDSETEXCLUSIVEMODE pfnDdSetExclusiveMode = (PGD_DXDDSETEXCLUSIVEMODE)gpDxFuncs[DXG_INDEX_DxDdSetExclusiveMode].pfn;
530
531 if (pfnDdSetExclusiveMode == NULL)
532 {
533 DPRINT1("Warning: no pfnDdSetExclusiveMode\n");
534 return DDHAL_DRIVER_NOTHANDLED;
535 }
536
537 DPRINT1("Calling dxg.sys pfnDdSetExclusiveMode\n");
538 return pfnDdSetExclusiveMode(hDirectDraw, puSetExclusiveModeData);
539
540 }
541
542
543 /************************************************************************/
544 /* NtGdiDdFlipToGDISurface */
545 /************************************************************************/
546 DWORD
547 APIENTRY
548 NtGdiDdFlipToGDISurface(HANDLE hDirectDraw,
549 PDD_FLIPTOGDISURFACEDATA puFlipToGDISurfaceData)
550 {
551 PGD_DXDDFLIPTOGDISURFACE pfnDdFlipToGDISurface = (PGD_DXDDFLIPTOGDISURFACE)gpDxFuncs[DXG_INDEX_DxDdFlipToGDISurface].pfn;
552
553 if (pfnDdFlipToGDISurface == NULL)
554 {
555 DPRINT1("Warning: no pfnDdFlipToGDISurface\n");
556 return DDHAL_DRIVER_NOTHANDLED;
557 }
558
559 DPRINT1("Calling dxg.sys pfnDdFlipToGDISurface\n");
560 return pfnDdFlipToGDISurface(hDirectDraw, puFlipToGDISurfaceData);
561
562 }
563
564 /************************************************************************/
565 /* NtGdiDdGetDC */
566 /************************************************************************/
567 HDC
568 APIENTRY
569 NtGdiDdGetDC(HANDLE hSurface,
570 PALETTEENTRY *puColorTable)
571 {
572 PGD_DDGETDC pfnDdGetDC = (PGD_DDGETDC)gpDxFuncs[DXG_INDEX_DxDdGetDC].pfn;
573
574 if (pfnDdGetDC == NULL)
575 {
576 DPRINT1("Warning: no pfnDdGetDC\n");
577 return DDHAL_DRIVER_NOTHANDLED;
578 }
579
580 DPRINT1("Calling dxg.sys pfnDdGetDC\n");
581 return pfnDdGetDC(hSurface, puColorTable);
582 }
583
584 /************************************************************************/
585 /* NtGdiDdGetDxHandle */
586 /************************************************************************/
587 HANDLE
588 APIENTRY
589 NtGdiDdGetDxHandle(HANDLE hDirectDraw,
590 HANDLE hSurface,
591 BOOL bRelease)
592 {
593 PGD_DDGETDXHANDLE pfnDdGetDxHandle = (PGD_DDGETDXHANDLE)gpDxFuncs[DXG_INDEX_DxDdGetDxHandle].pfn;
594
595 if (pfnDdGetDxHandle == NULL)
596 {
597 DPRINT1("Warning: no pfnDdGetDxHandle\n");
598 return DDHAL_DRIVER_NOTHANDLED;
599 }
600
601 DPRINT1("Calling dxg.sys pfnDdGetDxHandle\n");
602 return pfnDdGetDxHandle(hDirectDraw, hSurface, bRelease);
603 }
604
605
606 /************************************************************************/
607 /* NtGdiDdReleaseDC */
608 /************************************************************************/
609 BOOL
610 APIENTRY
611 NtGdiDdReleaseDC(HANDLE hSurface)
612 {
613 PGD_DDRELEASEDC pfnDdReleaseDC = (PGD_DDRELEASEDC)gpDxFuncs[DXG_INDEX_DxDdReleaseDC].pfn;
614
615 if (pfnDdReleaseDC == NULL)
616 {
617 DPRINT1("Warning: no pfnDdReleaseDC\n");
618 return DDHAL_DRIVER_NOTHANDLED;
619 }
620
621 DPRINT1("Calling dxg.sys pfnDdReleaseDC\n");
622 return pfnDdReleaseDC(hSurface);
623 }
624
625 /************************************************************************/
626 /* NtGdiDdResetVisrgn */
627 /************************************************************************/
628 BOOL
629 APIENTRY
630 NtGdiDdResetVisrgn(HANDLE hSurface,
631 HWND hwnd)
632 {
633
634 PGD_DDRESTVISRGN pfnDdResetVisrgn = (PGD_DDRESTVISRGN)gpDxFuncs[DXG_INDEX_DxDdResetVisrgn].pfn;
635
636 if (pfnDdResetVisrgn == NULL)
637 {
638 DPRINT1("Warning: no pfnDdResetVisrgn\n");
639 return DDHAL_DRIVER_NOTHANDLED;
640 }
641
642 DPRINT1("Calling dxg.sys pfnDdResetVisrgn\n");
643 return pfnDdResetVisrgn(hSurface, hwnd);
644 }
645
646 /************************************************************************/
647 /* NtGdiDdSetGammaRamp */
648 /************************************************************************/
649 BOOL
650 APIENTRY
651 NtGdiDdSetGammaRamp(HANDLE hDirectDraw,
652 HDC hdc,
653 LPVOID lpGammaRamp)
654 {
655 PGD_DDSETGAMMARAMP pfnDdSetGammaRamp = (PGD_DDSETGAMMARAMP)gpDxFuncs[DXG_INDEX_DxDdSetGammaRamp].pfn;
656
657 if (pfnDdSetGammaRamp == NULL)
658 {
659 DPRINT1("Warning: no pfnDdSetGammaRamp\n");
660 return DDHAL_DRIVER_NOTHANDLED;
661 }
662
663 DPRINT1("Calling dxg.sys pfnDdSetGammaRamp\n");
664 return pfnDdSetGammaRamp(hDirectDraw, hdc, lpGammaRamp);
665 }
666
667
668 /* Internal debug API */
669 void dump_edd_directdraw_global(EDD_DIRECTDRAW_GLOBAL *pEddgbl)
670 {
671 DPRINT1("0x%08lx 0x000 PEDD_DIRECTDRAW_GLOBAL->dhpdev : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dhpdev), pEddgbl->dhpdev);
672 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->dwReserved1 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dwReserved1),pEddgbl->dwReserved1);
673 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->dwReserved2 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dwReserved2),pEddgbl->dwReserved2);
674 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_000c[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_000c[0]),pEddgbl->unk_000c[0]);
675 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_000c[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_000c[1]),pEddgbl->unk_000c[1]);
676 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_000c[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_000c[2]),pEddgbl->unk_000c[2]);
677 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->cDriverReferences : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, cDriverReferences),pEddgbl->cDriverReferences);
678 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_01c : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_01c),pEddgbl->unk_01c);
679
680 DPRINT1("0x%08lx 0x020 PEDD_DIRECTDRAW_GLOBAL->dwCallbackFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dwCallbackFlags),pEddgbl->dwCallbackFlags);
681
682 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_024 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_024),pEddgbl->unk_024);
683
684 DPRINT1("0x%08lx 0x028 PEDD_DIRECTDRAW_GLOBAL->llAssertModeTimeout : 0x%llx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, llAssertModeTimeout),pEddgbl->llAssertModeTimeout.QuadPart);
685 DPRINT1("0x%08lx 0x030 PEDD_DIRECTDRAW_GLOBAL->dwNumHeaps : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dwNumHeaps),pEddgbl->dwNumHeaps);
686 // VIDEOMEMORY *pvmList;
687 DPRINT1("0x%08lx 0x034 PEDD_DIRECTDRAW_GLOBAL->pvmList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, pvmList),pEddgbl->pvmList);
688
689 DPRINT1("0x%08lx 0x038 PEDD_DIRECTDRAW_GLOBAL->dwNumFourCC : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, dwNumFourCC),pEddgbl->dwNumFourCC);
690 DPRINT1("0x%08lx 0x03C PEDD_DIRECTDRAW_GLOBAL->pdwFourCC : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, pdwFourCC),pEddgbl->pdwFourCC);
691
692 // DD_HALINFO ddHalInfo;
693 DPRINT1("0x%08lx 0x040 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.dwSize),pEddgbl->ddHalInfo.dwSize);
694 DPRINT1("0x%08lx 0x044 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.fpPrimary : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.fpPrimary),pEddgbl->ddHalInfo.vmiData.fpPrimary);
695 DPRINT1("0x%08lx 0x048 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwFlags),pEddgbl->ddHalInfo.vmiData.dwFlags);
696 DPRINT1("0x%08lx 0x04C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwDisplayWidth : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwDisplayWidth),pEddgbl->ddHalInfo.vmiData.dwDisplayWidth);
697 DPRINT1("0x%08lx 0x050 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwDisplayHeight : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwDisplayHeight),pEddgbl->ddHalInfo.vmiData.dwDisplayHeight);
698 DPRINT1("0x%08lx 0x054 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.lDisplayPitch : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.lDisplayPitch),pEddgbl->ddHalInfo.vmiData.lDisplayPitch);
699 DPRINT1("0x%08lx 0x058 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwSize),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwSize);
700 DPRINT1("0x%08lx 0x05C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwFlags),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwFlags);
701 DPRINT1("0x%08lx 0x060 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwFourCC : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwFourCC),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwFourCC);
702 DPRINT1("0x%08lx 0x064 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwRGBBitCount : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwRGBBitCount),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwRGBBitCount);
703 DPRINT1("0x%08lx 0x068 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwRBitMask : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwRBitMask),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwRBitMask);
704 DPRINT1("0x%08lx 0x06C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwGBitMask : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwGBitMask),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwGBitMask);
705 DPRINT1("0x%08lx 0x070 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwBBitMask : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwBBitMask),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwGBitMask);
706 DPRINT1("0x%08lx 0x074 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.ddpfDisplay.dwRGBAlphaBitMask : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.ddpfDisplay.dwRGBAlphaBitMask),pEddgbl->ddHalInfo.vmiData.ddpfDisplay.dwRGBAlphaBitMask);
707
708 DPRINT1("0x%08lx 0x078 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwOffscreenAlign : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwOffscreenAlign),pEddgbl->ddHalInfo.vmiData.dwOffscreenAlign);
709 DPRINT1("0x%08lx 0x07C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwOverlayAlign : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwOverlayAlign ),pEddgbl->ddHalInfo.vmiData.dwOverlayAlign);
710 DPRINT1("0x%08lx 0x080 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwTextureAlign : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwTextureAlign),pEddgbl->ddHalInfo.vmiData.dwTextureAlign);
711 DPRINT1("0x%08lx 0x084 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwZBufferAlign : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwZBufferAlign),pEddgbl->ddHalInfo.vmiData.dwZBufferAlign);
712 DPRINT1("0x%08lx 0x088 PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.dwAlphaAlign : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.dwAlphaAlign),pEddgbl->ddHalInfo.vmiData.dwAlphaAlign);
713 DPRINT1("0x%08lx 0x08C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.vmiData.pvPrimary : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.vmiData.pvPrimary),pEddgbl->ddHalInfo.vmiData.pvPrimary);
714 DPRINT1("0x%08lx 0x08C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.ddCaps.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.ddCaps.dwSize),pEddgbl->ddHalInfo.ddCaps.dwSize);
715 DPRINT1("0x%08lx 0x08C PEDD_DIRECTDRAW_GLOBAL->ddHalInfo.ddCaps.dwCaps : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddHalInfo.ddCaps.dwCaps),pEddgbl->ddHalInfo.ddCaps.dwCaps);
716
717 DPRINT1("0x%08lx 0x298 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.dwSize),pEddgbl->ddCallbacks.dwSize);
718 DPRINT1("0x%08lx 0x29C PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.dwFlags),pEddgbl->ddCallbacks.dwFlags);
719 DPRINT1("0x%08lx 0x2A0 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.DestroyDriver : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.DestroyDriver),pEddgbl->ddCallbacks.DestroyDriver);
720 DPRINT1("0x%08lx 0x2A4 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.CreateSurface : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.CreateSurface),pEddgbl->ddCallbacks.CreateSurface);
721 DPRINT1("0x%08lx 0x2A8 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.SetColorKey : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.SetColorKey),pEddgbl->ddCallbacks.SetColorKey);
722 DPRINT1("0x%08lx 0x2AC PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.SetMode : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.SetMode),pEddgbl->ddCallbacks.SetMode);
723 DPRINT1("0x%08lx 0x2B0 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.WaitForVerticalBlank : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.WaitForVerticalBlank),pEddgbl->ddCallbacks.WaitForVerticalBlank);
724 DPRINT1("0x%08lx 0x2B4 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.CanCreateSurface : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.CanCreateSurface),pEddgbl->ddCallbacks.CanCreateSurface);
725 DPRINT1("0x%08lx 0x2B8 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.CreatePalette : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.CreatePalette),pEddgbl->ddCallbacks.CreatePalette);
726 DPRINT1("0x%08lx 0x2BC PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.GetScanLine : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.GetScanLine),pEddgbl->ddCallbacks.GetScanLine);
727 DPRINT1("0x%08lx 0x2C0 PEDD_DIRECTDRAW_GLOBAL->ddCallbacks.MapMemory : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddCallbacks.MapMemory),pEddgbl->ddCallbacks.MapMemory);
728
729
730 DPRINT1("0x%08lx 0x2C4 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.dwSize),pEddgbl->ddSurfaceCallbacks.dwSize);
731 DPRINT1("0x%08lx 0x2C8 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.dwFlags),pEddgbl->ddSurfaceCallbacks.dwFlags);
732 DPRINT1("0x%08lx 0x2CC PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.DestroySurface : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.DestroySurface),pEddgbl->ddSurfaceCallbacks.DestroySurface);
733 DPRINT1("0x%08lx 0x2D0 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.Flip : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.Flip),pEddgbl->ddSurfaceCallbacks.Flip);
734 DPRINT1("0x%08lx 0x2D4 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.SetClipList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.SetClipList),pEddgbl->ddSurfaceCallbacks.SetClipList);
735 DPRINT1("0x%08lx 0x2D8 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.Lock : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.Lock),pEddgbl->ddSurfaceCallbacks.Lock);
736 DPRINT1("0x%08lx 0x2DC PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.Unlock : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.Unlock),pEddgbl->ddSurfaceCallbacks.Unlock);
737 DPRINT1("0x%08lx 0x2E0 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.Blt : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.Blt),pEddgbl->ddSurfaceCallbacks.Blt);
738 DPRINT1("0x%08lx 0x2E4 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.SetColorKey : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.SetColorKey),pEddgbl->ddSurfaceCallbacks.SetColorKey);
739 DPRINT1("0x%08lx 0x2E8 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.AddAttachedSurface : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.AddAttachedSurface),pEddgbl->ddSurfaceCallbacks.AddAttachedSurface);
740 DPRINT1("0x%08lx 0x2EC PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.GetBltStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.GetBltStatus),pEddgbl->ddSurfaceCallbacks.GetBltStatus);
741 DPRINT1("0x%08lx 0x2F0 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.GetFlipStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.GetFlipStatus),pEddgbl->ddSurfaceCallbacks.GetFlipStatus);
742 DPRINT1("0x%08lx 0x2F4 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.UpdateOverlay : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.UpdateOverlay),pEddgbl->ddSurfaceCallbacks.UpdateOverlay);
743 DPRINT1("0x%08lx 0x2F8 PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.SetOverlayPosition : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.SetOverlayPosition),pEddgbl->ddSurfaceCallbacks.SetOverlayPosition);
744 DPRINT1("0x%08lx 0x2FC PEDD_DIRECTDRAW_GLOBAL->ddSurfaceCallbacks.reserved4 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddSurfaceCallbacks.reserved4),pEddgbl->ddSurfaceCallbacks.reserved4);
745
746 DPRINT1("0x%08lx 0x300 PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.dwSize),pEddgbl->ddPaletteCallbacks.dwSize);
747 DPRINT1("0x%08lx 0x304 PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.dwFlags),pEddgbl->ddPaletteCallbacks.dwFlags);
748 DPRINT1("0x%08lx 0x308 PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.DestroyPalette : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.DestroyPalette),pEddgbl->ddPaletteCallbacks.DestroyPalette);
749 DPRINT1("0x%08lx 0x30C PEDD_DIRECTDRAW_GLOBAL->ddPaletteCallbacks.SetEntries : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddPaletteCallbacks.SetEntries),pEddgbl->ddPaletteCallbacks.SetEntries);
750
751 DPRINT1("0x%08lx 0x314 PEDD_DIRECTDRAW_GLOBAL->d3dNtGlobalDriverData.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtGlobalDriverData.dwSize),pEddgbl->d3dNtGlobalDriverData.dwSize);
752 DPRINT1("0x%08lx 0x3D4 PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks.dwSize),pEddgbl->d3dNtHalCallbacks.dwSize);
753 DPRINT1("0x%08lx 0x460 PEDD_DIRECTDRAW_GLOBAL->d3dBufCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dBufCallbacks.dwSize),pEddgbl->d3dBufCallbacks.dwSize);
754 DPRINT1("0x%08lx 0x47C PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks2.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks2.dwSize),pEddgbl->d3dNtHalCallbacks2.dwSize);
755
756 DPRINT1("0x%08lx 0x498 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.dwSize),pEddgbl->ddVideoPortCallback.dwSize);
757 DPRINT1("0x%08lx 0x49C PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.dwFlags),pEddgbl->ddVideoPortCallback.dwFlags);
758 DPRINT1("0x%08lx 0x4A0 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.CanCreateVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.CanCreateVideoPort),pEddgbl->ddVideoPortCallback.CanCreateVideoPort);
759 DPRINT1("0x%08lx 0x4A4 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.CreateVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.CreateVideoPort),pEddgbl->ddVideoPortCallback.CreateVideoPort);
760 DPRINT1("0x%08lx 0x4A8 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.FlipVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.FlipVideoPort),pEddgbl->ddVideoPortCallback.FlipVideoPort);
761 DPRINT1("0x%08lx 0x4AC PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortBandwidth : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortBandwidth),pEddgbl->ddVideoPortCallback.GetVideoPortBandwidth);
762 DPRINT1("0x%08lx 0x4B0 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortInputFormats : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortInputFormats),pEddgbl->ddVideoPortCallback.GetVideoPortInputFormats);
763 DPRINT1("0x%08lx 0x4B4 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortOutputFormats : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortOutputFormats),pEddgbl->ddVideoPortCallback.GetVideoPortOutputFormats);
764 DPRINT1("0x%08lx 0x4B8 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.lpReserved1 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.lpReserved1),pEddgbl->ddVideoPortCallback.lpReserved1);
765 DPRINT1("0x%08lx 0x4BC PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortField : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortField),pEddgbl->ddVideoPortCallback.GetVideoPortField);
766 DPRINT1("0x%08lx 0x4C0 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortLine : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortLine),pEddgbl->ddVideoPortCallback.GetVideoPortLine);
767 DPRINT1("0x%08lx 0x4C4 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortConnectInfo : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortConnectInfo),pEddgbl->ddVideoPortCallback.GetVideoPortConnectInfo);
768 DPRINT1("0x%08lx 0x4C8 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.DestroyVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.DestroyVideoPort),pEddgbl->ddVideoPortCallback.DestroyVideoPort);
769 DPRINT1("0x%08lx 0x4CC PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoPortFlipStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoPortFlipStatus),pEddgbl->ddVideoPortCallback.GetVideoPortFlipStatus);
770 DPRINT1("0x%08lx 0x4D0 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.UpdateVideoPort : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.UpdateVideoPort),pEddgbl->ddVideoPortCallback.UpdateVideoPort);
771 DPRINT1("0x%08lx 0x4D4 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.WaitForVideoPortSync : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.WaitForVideoPortSync),pEddgbl->ddVideoPortCallback.WaitForVideoPortSync);
772 DPRINT1("0x%08lx 0x4D8 PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.GetVideoSignalStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.GetVideoSignalStatus),pEddgbl->ddVideoPortCallback.GetVideoSignalStatus);
773 DPRINT1("0x%08lx 0x4DC PEDD_DIRECTDRAW_GLOBAL->ddVideoPortCallback.ColorControl : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddVideoPortCallback.ColorControl),pEddgbl->ddVideoPortCallback.ColorControl);
774
775 DPRINT1("0x%08lx 0x4E0 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanousCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanousCallbacks.dwSize),pEddgbl->ddMiscellanousCallbacks.dwSize);
776 DPRINT1("0x%08lx 0x4E4 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanousCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanousCallbacks.dwFlags),pEddgbl->ddMiscellanousCallbacks.dwFlags);
777 DPRINT1("0x%08lx 0x4E8 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanousCallbacks.GetAvailDriverMemory : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanousCallbacks.GetAvailDriverMemory),pEddgbl->ddMiscellanousCallbacks.GetAvailDriverMemory);
778
779 DPRINT1("0x%08lx 0x4EC PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.dwSize),pEddgbl->ddMiscellanous2Callbacks.dwSize);
780 DPRINT1("0x%08lx 0x4F0 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.dwFlags),pEddgbl->ddMiscellanous2Callbacks.dwFlags);
781 DPRINT1("0x%08lx 0x4F4 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.AlphaBlt : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.AlphaBlt),pEddgbl->ddMiscellanous2Callbacks.AlphaBlt);
782 DPRINT1("0x%08lx 0x4F8 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.CreateSurfaceEx : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.CreateSurfaceEx),pEddgbl->ddMiscellanous2Callbacks.CreateSurfaceEx);
783 DPRINT1("0x%08lx 0x4FC PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.GetDriverState : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.GetDriverState),pEddgbl->ddMiscellanous2Callbacks.GetDriverState);
784 DPRINT1("0x%08lx 0x500 PEDD_DIRECTDRAW_GLOBAL->ddMiscellanous2Callbacks.DestroyDDLocal : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMiscellanous2Callbacks.DestroyDDLocal),pEddgbl->ddMiscellanous2Callbacks.DestroyDDLocal);
785
786 DPRINT1("0x%08lx 0x504 PEDD_DIRECTDRAW_GLOBAL->ddNtCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddNtCallbacks.dwSize),pEddgbl->ddNtCallbacks.dwSize);
787 DPRINT1("0x%08lx 0x518 PEDD_DIRECTDRAW_GLOBAL->ddColorControlCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddColorControlCallbacks.dwSize),pEddgbl->ddColorControlCallbacks.dwSize);
788 DPRINT1("0x%08lx 0x524 PEDD_DIRECTDRAW_GLOBAL->ddKernelCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddKernelCallbacks.dwSize),pEddgbl->ddKernelCallbacks.dwSize);
789 DPRINT1("0x%08lx 0x534 PEDD_DIRECTDRAW_GLOBAL->d3dNtHalCallbacks3.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, d3dNtHalCallbacks3.dwSize),pEddgbl->d3dNtHalCallbacks3.dwSize);
790
791 DPRINT1("0x%08lx 0x54C PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.dwSize),pEddgbl->ddMotionCompCallbacks.dwSize);
792 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.dwFlags : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.dwFlags),pEddgbl->ddMotionCompCallbacks.dwSize);
793 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompGuids : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompGuids),pEddgbl->ddMotionCompCallbacks.GetMoCompGuids);
794 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompFormats : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompFormats),pEddgbl->ddMotionCompCallbacks.GetMoCompFormats);
795 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.CreateMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.CreateMoComp),pEddgbl->ddMotionCompCallbacks.CreateMoComp);
796 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetMoCompBuffInfo : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetMoCompBuffInfo),pEddgbl->ddMotionCompCallbacks.GetMoCompBuffInfo);
797 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.GetInternalMoCompInfo : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.GetInternalMoCompInfo),pEddgbl->ddMotionCompCallbacks.GetInternalMoCompInfo);
798 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.BeginMoCompFrame : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.BeginMoCompFrame),pEddgbl->ddMotionCompCallbacks.BeginMoCompFrame);
799 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.EndMoCompFrame : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.EndMoCompFrame),pEddgbl->ddMotionCompCallbacks.EndMoCompFrame);
800 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.RenderMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.RenderMoComp),pEddgbl->ddMotionCompCallbacks.RenderMoComp);
801 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.QueryMoCompStatus : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.QueryMoCompStatus),pEddgbl->ddMotionCompCallbacks.QueryMoCompStatus);
802 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMotionCompCallbacks.DestroyMoComp : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMotionCompCallbacks.DestroyMoComp),pEddgbl->ddMotionCompCallbacks.DestroyMoComp);
803
804 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->ddMoreSurfaceCaps.dwSize : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, ddMoreSurfaceCaps.dwSize),pEddgbl->ddMoreSurfaceCaps.dwSize);
805
806 // EDD_DIRECTDRAW_LOCAL* peDirectDrawLocalList;
807 DPRINT1("0x%08lx 0x5A8 PEDD_DIRECTDRAW_GLOBAL->peDirectDrawLocalList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, peDirectDrawLocalList), pEddgbl->peDirectDrawLocalList);
808 // EDD_SURFACE* peSurface_LockList;
809 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->peSurface_LockList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, peSurface_LockList), pEddgbl->peSurface_LockList);
810 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->fl : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, fl), pEddgbl->fl);
811 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->cSurfaceLocks : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, cSurfaceLocks), pEddgbl->cSurfaceLocks);
812 // PKEVENT pAssertModeEvent;
813 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->pAssertModeEvent : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, pAssertModeEvent), pEddgbl->pAssertModeEvent);
814 // EDD_SURFACE *peSurfaceCurrent;
815 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->peSurfaceCurrent : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, peSurfaceCurrent), pEddgbl->peSurfaceCurrent);
816 // EDD_SURFACE *peSurfacePrimary;
817 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->peSurfacePrimary : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, peSurfacePrimary),pEddgbl->peSurfacePrimary);
818 DPRINT1("0x%08lx 0x5C4 PEDD_DIRECTDRAW_GLOBAL->bSuspended : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, bSuspended),pEddgbl->bSuspended);
819 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[0]),pEddgbl->unk_5c8[0]);
820 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[1]),pEddgbl->unk_5c8[1]);
821 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[2]),pEddgbl->unk_5c8[2]);
822 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[3]),pEddgbl->unk_5c8[3]);
823 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[4]),pEddgbl->unk_5c8[4]);
824 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[5]),pEddgbl->unk_5c8[5]);
825 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[6]),pEddgbl->unk_5c8[6]);
826 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[7]),pEddgbl->unk_5c8[7]);
827 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[8]),pEddgbl->unk_5c8[8]);
828 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[9]),pEddgbl->unk_5c8[9]);
829 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[10] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[10]),pEddgbl->unk_5c8[10]);
830 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_5c8[11] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_5c8[11]),pEddgbl->unk_5c8[11]);
831 // RECTL rcbounds;
832 //DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->rcbounds : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, rcbounds),pEddgbl->rcbounds);
833 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_608 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_608), pEddgbl->unk_608);
834 DPRINT1("0x%08lx 0x60C PEDD_DIRECTDRAW_GLOBAL->hDev : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, hDev), pEddgbl->hDev);
835
836 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[0] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[0]), pEddgbl->unk_610[0]);
837 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[1] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[1]), pEddgbl->unk_610[1]);
838 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[2] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[2]), pEddgbl->unk_610[2]);
839 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[3] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[3]), pEddgbl->unk_610[3]);
840 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[4] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[4]), pEddgbl->unk_610[4]);
841 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[5] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[5]), pEddgbl->unk_610[5]);
842 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[6] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[6]), pEddgbl->unk_610[6]);
843 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[7] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[7]), pEddgbl->unk_610[7]);
844 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[8] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[8]), pEddgbl->unk_610[8]);
845 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[9] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[9]), pEddgbl->unk_610[9]);
846 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[10] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[10]), pEddgbl->unk_610[10]);
847 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[11] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[11]), pEddgbl->unk_610[11]);
848 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[12] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[12]), pEddgbl->unk_610[12]);
849 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[13] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[13]), pEddgbl->unk_610[13]);
850 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[14] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[14]), pEddgbl->unk_610[14]);
851 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[15] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[15]), pEddgbl->unk_610[15]);
852 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[16] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[16]), pEddgbl->unk_610[16]);
853 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[17] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[17]), pEddgbl->unk_610[17]);
854 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[18] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[18]), pEddgbl->unk_610[18]);
855 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[19] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[19]), pEddgbl->unk_610[19]);
856 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[20] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[20]), pEddgbl->unk_610[20]);
857 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[21] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[21]), pEddgbl->unk_610[21]);
858 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[22] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[22]), pEddgbl->unk_610[22]);
859 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[23] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[23]), pEddgbl->unk_610[23]);
860 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[24] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[24]), pEddgbl->unk_610[24]);
861 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[25] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[25]), pEddgbl->unk_610[25]);
862 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[26] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[26]), pEddgbl->unk_610[26]);
863 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[27] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[27]), pEddgbl->unk_610[27]);
864 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[28] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[28]), pEddgbl->unk_610[28]);
865 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[29] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[29]), pEddgbl->unk_610[29]);
866 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[30] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[30]), pEddgbl->unk_610[30]);
867 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[31] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[31]), pEddgbl->unk_610[31]);
868 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[32] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[32]), pEddgbl->unk_610[32]);
869 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[33] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[33]), pEddgbl->unk_610[33]);
870 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[34] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[34]), pEddgbl->unk_610[34]);
871 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[35] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[35]), pEddgbl->unk_610[35]);
872 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[36] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[36]), pEddgbl->unk_610[36]);
873 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[37] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[37]), pEddgbl->unk_610[37]);
874 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[38] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[38]), pEddgbl->unk_610[38]);
875 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[39] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[39]), pEddgbl->unk_610[39]);
876 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[40] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[40]), pEddgbl->unk_610[40]);
877 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[41] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[41]), pEddgbl->unk_610[41]);
878 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[42] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[42]), pEddgbl->unk_610[42]);
879 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[43] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[43]), pEddgbl->unk_610[43]);
880 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[44] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[44]), pEddgbl->unk_610[44]);
881 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[45] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[45]), pEddgbl->unk_610[45]);
882 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[46] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[46]), pEddgbl->unk_610[46]);
883 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[47] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[47]), pEddgbl->unk_610[47]);
884 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[48] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[48]), pEddgbl->unk_610[48]);
885 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[49] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[49]), pEddgbl->unk_610[49]);
886 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[50] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[50]), pEddgbl->unk_610[50]);
887 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[51] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[51]), pEddgbl->unk_610[51]);
888 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[52] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[52]), pEddgbl->unk_610[52]);
889 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[53] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[53]), pEddgbl->unk_610[53]);
890 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[54] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[54]), pEddgbl->unk_610[54]);
891 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[55] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[55]), pEddgbl->unk_610[55]);
892 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[56] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[56]), pEddgbl->unk_610[56]);
893 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[57] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[57]), pEddgbl->unk_610[57]);
894 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[58] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[58]), pEddgbl->unk_610[58]);
895 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[59] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[59]), pEddgbl->unk_610[59]);
896 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_1e0[60] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[60]), pEddgbl->unk_610[60]);
897 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[61] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[61]), pEddgbl->unk_610[61]);
898 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_610[62] : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_610[62]), pEddgbl->unk_610[62]);
899 DPRINT1("0x%08lx ????? PEDD_DIRECTDRAW_GLOBAL->unk_70C : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_GLOBAL, unk_70C), pEddgbl->unk_70C);
900 }
901
902 void dump_edd_directdraw_local(PEDD_DIRECTDRAW_LOCAL pEddlcl)
903 {
904 //DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->pobj : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, pobj), pEddlcl->pobj);
905 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peDirectDrawGlobal : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, peDirectDrawGlobal), pEddlcl->peDirectDrawGlobal);
906 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peSurface_DdList : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, peSurface_DdList), pEddlcl->peSurface_DdList);
907 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_018 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_018), pEddlcl->unk_018);
908 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_01c : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_01c), pEddlcl->unk_01c);
909 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_020 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_020), pEddlcl->unk_020);
910 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peDirectDrawGlobal2 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, peDirectDrawGlobal2), pEddlcl->peDirectDrawGlobal2);
911 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->fpProcess : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, fpProcess), pEddlcl->fpProcess);
912 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->fl : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, fl), pEddlcl->fl);
913
914 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->peDirectDrawLocal_prev : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, peDirectDrawLocal_prev), pEddlcl->peDirectDrawLocal_prev);
915 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_034 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_034), pEddlcl->unk_034);
916 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_038 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_038), pEddlcl->unk_038);
917 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->UniqueProcess : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, UniqueProcess), pEddlcl->UniqueProcess);
918 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->Process : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, Process), pEddlcl->Process);
919 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_044 : 0x%p\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_044), pEddlcl->unk_044);
920 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_048 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_048), pEddlcl->unk_048);
921 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_04C : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_04C), pEddlcl->unk_04C);
922 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_050 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_050), pEddlcl->unk_050);
923
924 DPRINT1("0x%08lx PEDD_DIRECTDRAW_LOCAL->unk_050 : 0x%08lx\n",FIELD_OFFSET(EDD_DIRECTDRAW_LOCAL, unk_050), pEddlcl->unk_050);
925 }
926
927 void
928 dump_halinfo(DD_HALINFO *pHalInfo)
929 {
930 if (pHalInfo->dwSize == sizeof(DD_HALINFO_V4))
931 {
932 DD_HALINFO_V4 *pHalInfo4 = (DD_HALINFO_V4 *) pHalInfo;
933 int t;
934
935 DPRINT1("DD_HALINFO Version NT4 found \n");
936 DPRINT1(" pHalInfo4->dwSize : 0x%08lx\n",(long)pHalInfo4->dwSize);
937 DPRINT1(" pHalInfo4->vmiData->fpPrimary : 0x%08lx\n",(long)pHalInfo4->vmiData.fpPrimary);
938 DPRINT1(" pHalInfo4->vmiData->dwFlags : 0x%08lx\n",(long)pHalInfo4->vmiData.dwFlags);
939 DPRINT1(" pHalInfo4->vmiData->dwDisplayWidth : 0x%08lx\n",(long)pHalInfo4->vmiData.dwDisplayWidth);
940 DPRINT1(" pHalInfo4->vmiData->dwDisplayHeight : 0x%08lx\n",(long)pHalInfo4->vmiData.dwDisplayHeight);
941 DPRINT1(" pHalInfo4->vmiData->lDisplayPitch : 0x%08lx\n",(long)pHalInfo4->vmiData.lDisplayPitch);
942
943 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwSize : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwSize);
944 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwFlags : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwFlags);
945 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwFourCC : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwFourCC);
946 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRGBBitCount : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRGBBitCount);
947 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRBitMask);
948 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwGBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwGBitMask);
949 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwBBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwBBitMask);
950 DPRINT1(" pHalInfo4->vmiData->ddpfDisplay.dwRGBAlphaBitMask : 0x%08lx\n",(long)pHalInfo4->vmiData.ddpfDisplay.dwRGBAlphaBitMask);
951
952 DPRINT1(" pHalInfo4->vmiData->dwOffscreenAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwOffscreenAlign);
953 DPRINT1(" pHalInfo4->vmiData->dwOverlayAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwOverlayAlign);
954 DPRINT1(" pHalInfo4->vmiData->dwTextureAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwTextureAlign);
955 DPRINT1(" pHalInfo4->vmiData->dwZBufferAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwZBufferAlign);
956 DPRINT1(" pHalInfo4->vmiData->dwAlphaAlign : 0x%08lx\n",(long)pHalInfo4->vmiData.dwAlphaAlign);
957 DPRINT1(" pHalInfo4->vmiData->pvPrimary : 0x%p\n",pHalInfo4->vmiData.pvPrimary);
958
959 DPRINT1(" pHalInfo4->ddCaps.dwSize : 0x%08lx\n",pHalInfo4->ddCaps.dwSize);
960 DPRINT1(" pHalInfo4->ddCaps.dwCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwCaps);
961 DPRINT1(" pHalInfo4->ddCaps.dwCaps2 : 0x%08lx\n",pHalInfo4->ddCaps.dwCaps2);
962 DPRINT1(" pHalInfo4->ddCaps.dwCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwCKeyCaps);
963 DPRINT1(" pHalInfo4->ddCaps.dwFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwFXCaps);
964 DPRINT1(" pHalInfo4->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwFXAlphaCaps);
965 DPRINT1(" pHalInfo4->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwPalCaps);
966 DPRINT1(" pHalInfo4->ddCaps.dwSVCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVCaps);
967 DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltConstBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltConstBitDepths);
968 DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltPixelBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltPixelBitDepths);
969 DPRINT1(" pHalInfo4->ddCaps.dwAlphaBltSurfaceBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaBltSurfaceBitDepths);
970 DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlayConstBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlayConstBitDepths);
971 DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlayPixelBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlayPixelBitDepths);
972 DPRINT1(" pHalInfo4->ddCaps.dwAlphaOverlaySurfaceBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwAlphaOverlaySurfaceBitDepths);
973 DPRINT1(" pHalInfo4->ddCaps.dwZBufferBitDepths : 0x%08lx\n",pHalInfo4->ddCaps.dwZBufferBitDepths);
974 DPRINT1(" pHalInfo4->ddCaps.dwVidMemTotal : 0x%08lx\n",pHalInfo4->ddCaps.dwVidMemTotal);
975 DPRINT1(" pHalInfo4->ddCaps.dwVidMemFree : 0x%08lx\n",pHalInfo4->ddCaps.dwVidMemFree);
976 DPRINT1(" pHalInfo4->ddCaps.dwMaxVisibleOverlays : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxVisibleOverlays);
977 DPRINT1(" pHalInfo4->ddCaps.dwCurrVisibleOverlays : 0x%08lx\n",pHalInfo4->ddCaps.dwCurrVisibleOverlays);
978 DPRINT1(" pHalInfo4->ddCaps.dwNumFourCCCodes : 0x%08lx\n",pHalInfo4->ddCaps.dwNumFourCCCodes);
979 DPRINT1(" pHalInfo4->ddCaps.dwAlignBoundarySrc : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignBoundarySrc);
980 DPRINT1(" pHalInfo4->ddCaps.dwAlignSizeSrc : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignSizeSrc);
981 DPRINT1(" pHalInfo4->ddCaps.dwAlignBoundaryDes : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignBoundaryDest);
982 DPRINT1(" pHalInfo4->ddCaps.dwAlignSizeDest : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignSizeDest);
983 DPRINT1(" pHalInfo4->ddCaps.dwAlignStrideAlign : 0x%08lx\n",pHalInfo4->ddCaps.dwAlignStrideAlign);
984 for (t=0;t<DD_ROP_SPACE;t++)
985 {
986 DPRINT1(" pHalInfo4->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwRops[t]);
987 }
988 DPRINT1(" pHalInfo4->ddCaps.ddsCaps.dwCaps : 0x%08lx\n",pHalInfo4->ddCaps.ddsCaps.dwCaps);
989 DPRINT1(" pHalInfo4->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinOverlayStretch);
990 DPRINT1(" pHalInfo4->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxOverlayStretch);
991 DPRINT1(" pHalInfo4->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinLiveVideoStretch);
992 DPRINT1(" pHalInfo4->ddCaps.dwMaxLiveVideoStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxLiveVideoStretch);
993 DPRINT1(" pHalInfo4->ddCaps.dwMinHwCodecStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMinHwCodecStretch);
994 DPRINT1(" pHalInfo4->ddCaps.dwMaxHwCodecStretch : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxHwCodecStretch);
995 DPRINT1(" pHalInfo4->ddCaps.dwReserved1 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved1);
996 DPRINT1(" pHalInfo4->ddCaps.dwReserved2 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved2);
997 DPRINT1(" pHalInfo4->ddCaps.dwReserved3 : 0x%08lx\n",pHalInfo4->ddCaps.dwReserved3);
998 DPRINT1(" pHalInfo4->ddCaps.dwSVBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCaps);
999 DPRINT1(" pHalInfo4->ddCaps.dwSVBCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCKeyCaps);
1000 DPRINT1(" pHalInfo4->ddCaps.dwSVBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBFXCaps);
1001 for (t=0;t<DD_ROP_SPACE;t++)
1002 {
1003 DPRINT1(" pHalInfo4->ddCaps.dwSVBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwSVBRops[t]);
1004 }
1005 DPRINT1(" pHalInfo4->ddCaps.dwVSBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBCaps);
1006 DPRINT1(" pHalInfo4->ddCaps.dwVSBCKeyCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBCKeyCaps);
1007 DPRINT1(" pHalInfo4->ddCaps.dwVSBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwVSBFXCaps);
1008 for (t=0;t<DD_ROP_SPACE;t++)
1009 {
1010 DPRINT1(" pHalInfo4->ddCaps.dwVSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwVSBRops[t]);
1011 }
1012 DPRINT1(" pHalInfo4->ddCaps.dwSSBCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBCaps);
1013 DPRINT1(" pHalInfo4->ddCaps.dwSSBCKeyCa : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBCKeyCaps);
1014 DPRINT1(" pHalInfo4->ddCaps.dwSSBFXCaps : 0x%08lx\n",pHalInfo4->ddCaps.dwSSBFXCaps);
1015 for (t=0;t<DD_ROP_SPACE;t++)
1016 {
1017 DPRINT1(" pHalInfo4->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo4->ddCaps.dwSSBRops[t]);
1018 }
1019
1020 DPRINT1(" pHalInfo4->ddCaps.dwMaxVideoPorts : 0x%08lx\n",pHalInfo4->ddCaps.dwMaxVideoPorts);
1021 DPRINT1(" pHalInfo4->ddCaps.dwCurrVideoPorts : 0x%08lx\n",pHalInfo4->ddCaps.dwCurrVideoPorts);
1022 DPRINT1(" pHalInfo4->ddCaps.dwSVBCaps2 : 0x%08lx\n",pHalInfo4->ddCaps.dwSVBCaps2);
1023
1024
1025 DPRINT1(" pHalInfo4->GetDriverInfo : 0x%p\n",pHalInfo4->GetDriverInfo);
1026 DPRINT1(" pHalInfo4->dwFlags : 0x%08lx\n",(long)pHalInfo4->dwFlags);
1027
1028 }
1029 else if (pHalInfo->dwSize == sizeof(DD_HALINFO))
1030 {
1031 int t;
1032 UINT flag;
1033 INT count=0;
1034
1035 DPRINT1("DD_HALINFO Version NT 2000/XP/2003 found \n");
1036 DPRINT1(" pHalInfo->dwSize : 0x%08lx\n",(long)pHalInfo->dwSize);
1037
1038 DPRINT1(" pHalInfo->vmiData->fpPrimary : 0x%08lx\n",(long)pHalInfo->vmiData.fpPrimary);
1039 DPRINT1(" pHalInfo->vmiData->dwFlags : 0x%08lx\n",(long)pHalInfo->vmiData.dwFlags);
1040 DPRINT1(" pHalInfo->vmiData->dwDisplayWidth : 0x%08lx\n",(long)pHalInfo->vmiData.dwDisplayWidth);
1041 DPRINT1(" pHalInfo->vmiData->dwDisplayHeight : 0x%08lx\n",(long)pHalInfo->vmiData.dwDisplayHeight);
1042 DPRINT1(" pHalInfo->vmiData->lDisplayPitch : 0x%08lx\n",(long)pHalInfo->vmiData.lDisplayPitch);
1043
1044 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwSize : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwSize);
1045 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwFlags : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwFlags);
1046 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwFourCC : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwFourCC);
1047 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRGBBitCount : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRGBBitCount);
1048 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRBitMask);
1049 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwGBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwGBitMask);
1050 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwBBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwBBitMask);
1051 DPRINT1(" pHalInfo->vmiData->ddpfDisplay.dwRGBAlphaBitMask : 0x%08lx\n",(long)pHalInfo->vmiData.ddpfDisplay.dwRGBAlphaBitMask);
1052
1053
1054 DPRINT1(" pHalInfo->vmiData->dwOffscreenAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwOffscreenAlign);
1055 DPRINT1(" pHalInfo->vmiData->dwOverlayAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwOverlayAlign);
1056 DPRINT1(" pHalInfo->vmiData->dwTextureAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwTextureAlign);
1057 DPRINT1(" pHalInfo->vmiData->dwZBufferAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwZBufferAlign);
1058 DPRINT1(" pHalInfo->vmiData->dwAlphaAlign : 0x%08lx\n",(long)pHalInfo->vmiData.dwAlphaAlign);
1059 DPRINT1(" pHalInfo->vmiData->pvPrimary : 0x%p\n",pHalInfo->vmiData.pvPrimary);
1060
1061 DPRINT1(" pHalInfo->ddCaps.dwSize : 0x%08lx\n",pHalInfo->ddCaps.dwSize);
1062 DPRINT1(" pHalInfo->ddCaps.dwCaps : ");
1063 flag = pHalInfo->ddCaps.dwCaps;
1064 count = 0;
1065 checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
1066 checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
1067 checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
1068 checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
1069 checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
1070 checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
1071 checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
1072 checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
1073 checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
1074 checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
1075 checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
1076 checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
1077 checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
1078 checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
1079 checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
1080 checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
1081 checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
1082 checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
1083 checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
1084 checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
1085 checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
1086 checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
1087 checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
1088 checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
1089 checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
1090 checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
1091 checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
1092 checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
1093 checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
1094 checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
1095 checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
1096 checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
1097 endcheckflag(flag,"pHalInfo->ddCaps.dwCaps");
1098
1099 DPRINT1(" pHalInfo->ddCaps.dwCaps2 : ");
1100 flag = pHalInfo->ddCaps.dwCaps2;
1101 count = 0;
1102 checkflag(flag,DDCAPS2_AUTOFLIPOVERLAY,"DDCAPS2_AUTOFLIPOVERLAY");
1103 checkflag(flag,DDCAPS2_CANAUTOGENMIPMAP,"DDCAPS2_CANAUTOGENMIPMAP");
1104 checkflag(flag,DDCAPS2_CANBOBHARDWARE,"DDCAPS2_CANBOBHARDWARE");
1105 checkflag(flag,DDCAPS2_CANBOBINTERLEAVED,"DDCAPS2_CANBOBINTERLEAVED");
1106 checkflag(flag,DDCAPS2_CANBOBNONINTERLEAVED,"DDCAPS2_CANBOBNONINTERLEAVED");
1107 checkflag(flag,DDCAPS2_CANCALIBRATEGAMMA,"DDCAPS2_CANCALIBRATEGAMMA");
1108 checkflag(flag,DDCAPS2_CANDROPZ16BIT,"DDCAPS2_CANDROPZ16BIT");
1109 checkflag(flag,DDCAPS2_CANFLIPODDEVEN,"DDCAPS2_CANFLIPODDEVEN");
1110 checkflag(flag,DDCAPS2_CANMANAGERESOURCE,"DDCAPS2_CANMANAGERESOURCE");
1111 checkflag(flag,DDCAPS2_CANMANAGETEXTURE,"DDCAPS2_CANMANAGETEXTURE");
1112
1113 checkflag(flag,DDCAPS2_CANRENDERWINDOWED,"DDCAPS2_CANRENDERWINDOWED");
1114 checkflag(flag,DDCAPS2_CERTIFIED,"DDCAPS2_CERTIFIED");
1115 checkflag(flag,DDCAPS2_COLORCONTROLOVERLAY,"DDCAPS2_COLORCONTROLOVERLAY");
1116 checkflag(flag,DDCAPS2_COLORCONTROLPRIMARY,"DDCAPS2_COLORCONTROLPRIMARY");
1117 checkflag(flag,DDCAPS2_COPYFOURCC,"DDCAPS2_COPYFOURCC");
1118 checkflag(flag,DDCAPS2_FLIPINTERVAL,"DDCAPS2_FLIPINTERVAL");
1119 checkflag(flag,DDCAPS2_FLIPNOVSYNC,"DDCAPS2_FLIPNOVSYNC");
1120 checkflag(flag,DDCAPS2_NO2DDURING3DSCENE,"DDCAPS2_NO2DDURING3DSCENE");
1121 checkflag(flag,DDCAPS2_NONLOCALVIDMEM,"DDCAPS2_NONLOCALVIDMEM");
1122 checkflag(flag,DDCAPS2_NONLOCALVIDMEMCAPS,"DDCAPS2_NONLOCALVIDMEMCAPS");
1123 checkflag(flag,DDCAPS2_NOPAGELOCKREQUIRED,"DDCAPS2_NOPAGELOCKREQUIRED");
1124 checkflag(flag,DDCAPS2_PRIMARYGAMMA,"DDCAPS2_PRIMARYGAMMA");
1125 checkflag(flag,DDCAPS2_VIDEOPORT,"DDCAPS2_VIDEOPORT");
1126 checkflag(flag,DDCAPS2_WIDESURFACES,"DDCAPS2_WIDESURFACES");
1127 endcheckflag(flag,"pHalInfo->ddCaps.dwCaps2");
1128
1129 DPRINT1(" pHalInfo->ddCaps.dwCKeyCaps : ");
1130 flag = pHalInfo->ddCaps.dwCKeyCaps;
1131 count = 0;
1132 checkflag(flag,DDCKEYCAPS_DESTBLT,"DDCKEYCAPS_DESTBLT");
1133 checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACE,"DDCKEYCAPS_DESTBLTCLRSPACE");
1134 checkflag(flag,DDCKEYCAPS_DESTBLTCLRSPACEYUV,"DDCKEYCAPS_DESTBLTCLRSPACEYUV");
1135 checkflag(flag,DDCKEYCAPS_DESTBLTYUV,"DDCKEYCAPS_DESTBLTYUV");
1136 checkflag(flag,DDCKEYCAPS_DESTOVERLAY,"DDCKEYCAPS_DESTOVERLAY");
1137 checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACE,"DDCKEYCAPS_DESTOVERLAYCLRSPACE");
1138 checkflag(flag,DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV,"DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV");
1139 checkflag(flag,DDCKEYCAPS_DESTOVERLAYONEACTIVE,"DDCKEYCAPS_DESTOVERLAYONEACTIVE");
1140 checkflag(flag,DDCKEYCAPS_DESTOVERLAYYUV,"DDCKEYCAPS_DESTOVERLAYYUV");
1141 checkflag(flag,DDCKEYCAPS_NOCOSTOVERLAY,"DDCKEYCAPS_NOCOSTOVERLAY");
1142 checkflag(flag,DDCKEYCAPS_SRCBLT,"DDCKEYCAPS_SRCBLT");
1143 checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACE,"DDCKEYCAPS_SRCBLTCLRSPACE");
1144 checkflag(flag,DDCKEYCAPS_SRCBLTCLRSPACEYUV,"DDCKEYCAPS_SRCBLTCLRSPACEYUV");
1145 checkflag(flag,DDCKEYCAPS_SRCBLTYUV,"DDCKEYCAPS_SRCBLTYUV");
1146 checkflag(flag,DDCKEYCAPS_SRCOVERLAY,"DDCKEYCAPS_SRCOVERLAY");
1147 checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACE,"DDCKEYCAPS_SRCOVERLAYCLRSPACE");
1148 checkflag(flag,DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV,"DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV");
1149 checkflag(flag,DDCKEYCAPS_SRCOVERLAYONEACTIVE,"DDCKEYCAPS_SRCOVERLAYONEACTIVE");
1150 checkflag(flag,DDCKEYCAPS_SRCOVERLAYYUV,"DDCKEYCAPS_SRCOVERLAYYUV");
1151 endcheckflag(flag,"pHalInfo->ddCaps.dwCKeyCaps");
1152
1153 DPRINT1(" pHalInfo->ddCaps.dwFXCaps : ");
1154 flag = pHalInfo->ddCaps.dwFXCaps;
1155 count = 0;
1156 checkflag(flag,DDFXCAPS_BLTARITHSTRETCHY,"DDFXCAPS_BLTARITHSTRETCHY");
1157 checkflag(flag,DDFXCAPS_BLTARITHSTRETCHYN,"DDFXCAPS_BLTARITHSTRETCHYN");
1158 checkflag(flag,DDFXCAPS_BLTMIRRORLEFTRIGHT,"DDFXCAPS_BLTMIRRORLEFTRIGHT");
1159 checkflag(flag,DDFXCAPS_BLTMIRRORUPDOWN,"DDFXCAPS_BLTMIRRORUPDOWN");
1160 checkflag(flag,DDFXCAPS_BLTROTATION,"DDFXCAPS_BLTROTATION");
1161 checkflag(flag,DDFXCAPS_BLTROTATION90,"DDFXCAPS_BLTROTATION90");
1162 checkflag(flag,DDFXCAPS_BLTSHRINKX,"DDFXCAPS_BLTSHRINKX");
1163 checkflag(flag,DDFXCAPS_BLTSHRINKXN,"DDFXCAPS_BLTSHRINKXN");
1164 checkflag(flag,DDFXCAPS_BLTSHRINKY,"DDFXCAPS_BLTSHRINKY");
1165 checkflag(flag,DDFXCAPS_BLTSHRINKYN,"DDFXCAPS_BLTSHRINKYN");
1166 checkflag(flag,DDFXCAPS_BLTSTRETCHX,"DDFXCAPS_BLTSTRETCHX");
1167 checkflag(flag,DDFXCAPS_BLTSTRETCHXN,"DDFXCAPS_BLTSTRETCHXN");
1168 checkflag(flag,DDFXCAPS_BLTSTRETCHY,"DDFXCAPS_BLTSTRETCHY");
1169 checkflag(flag,DDFXCAPS_BLTSTRETCHYN,"DDFXCAPS_BLTSTRETCHYN");
1170 checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHY,"DDFXCAPS_OVERLAYARITHSTRETCHY");
1171 checkflag(flag,DDFXCAPS_OVERLAYARITHSTRETCHYN,"DDFXCAPS_OVERLAYARITHSTRETCHYN");
1172 checkflag(flag,DDFXCAPS_OVERLAYMIRRORLEFTRIGHT,"DDFXCAPS_OVERLAYMIRRORLEFTRIGHT");
1173 checkflag(flag,DDFXCAPS_OVERLAYMIRRORUPDOWN,"DDFXCAPS_OVERLAYMIRRORUPDOWN");
1174 checkflag(flag,DDFXCAPS_OVERLAYSHRINKX,"DDFXCAPS_OVERLAYSHRINKX");
1175 checkflag(flag,DDFXCAPS_OVERLAYSHRINKXN,"DDFXCAPS_OVERLAYSHRINKXN");
1176 checkflag(flag,DDFXCAPS_OVERLAYSHRINKY,"DDFXCAPS_OVERLAYSHRINKY");
1177 checkflag(flag,DDFXCAPS_OVERLAYSHRINKYN,"DDFXCAPS_OVERLAYSHRINKYN");
1178 checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
1179 checkflag(flag,DDFXCAPS_OVERLAYSTRETCHX,"DDFXCAPS_OVERLAYSTRETCHX");
1180 checkflag(flag,DDFXCAPS_OVERLAYSTRETCHY,"DDFXCAPS_OVERLAYSTRETCHY");
1181 checkflag(flag,DDFXCAPS_OVERLAYSTRETCHYN,"DDFXCAPS_OVERLAYSTRETCHYN");
1182 endcheckflag(flag,"pHalInfo->ddCaps.dwFXCaps");
1183
1184 DPRINT1(" pHalInfo->ddCaps.dwFXAlphaCaps : 0x%08lx\n",pHalInfo->ddCaps.dwFXAlphaCaps);
1185 DPRINT1(" pHalInfo->ddCaps.dwPalCaps : 0x%08lx\n",pHalInfo->ddCaps.dwPalCaps);
1186
1187 DPRINT1(" pHalInfo->ddCaps.dwSVCaps : ");
1188 flag = pHalInfo->ddCaps.dwSVCaps;
1189 count = 0;
1190 checkflag(flag,DDSVCAPS_ENIGMA,"DDSVCAPS_ENIGMA");
1191 checkflag(flag,DDSVCAPS_FLICKER,"DDSVCAPS_FLICKER");
1192 checkflag(flag,DDSVCAPS_REDBLUE,"DDSVCAPS_REDBLUE");
1193 checkflag(flag,DDSVCAPS_SPLIT,"DDSVCAPS_SPLIT");
1194 endcheckflag(flag,"pHalInfo->ddCaps.dwSVCaps");
1195
1196 DPRINT1(" pHalInfo->ddCaps.dwAlphaBltConstBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltConstBitDepths);
1197 DPRINT1(" pHalInfo->ddCaps.dwAlphaBltPixelBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltPixelBitDepths);
1198 DPRINT1(" pHalInfo->ddCaps.dwAlphaBltSurfaceBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaBltSurfaceBitDepths);
1199 DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlayConstBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlayConstBitDepths);
1200 DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlayPixelBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlayPixelBitDepths);
1201 DPRINT1(" pHalInfo->ddCaps.dwAlphaOverlaySurfaceBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwAlphaOverlaySurfaceBitDepths);
1202 DPRINT1(" pHalInfo->ddCaps.dwZBufferBitDepths : 0x%08lx\n",pHalInfo->ddCaps.dwZBufferBitDepths);
1203 DPRINT1(" pHalInfo->ddCaps.dwVidMemTotal : 0x%08lx\n",pHalInfo->ddCaps.dwVidMemTotal);
1204 DPRINT1(" pHalInfo->ddCaps.dwVidMemFree : 0x%08lx\n",pHalInfo->ddCaps.dwVidMemFree);
1205 DPRINT1(" pHalInfo->ddCaps.dwMaxVisibleOverlays : 0x%08lx\n",pHalInfo->ddCaps.dwMaxVisibleOverlays);
1206 DPRINT1(" pHalInfo->ddCaps.dwCurrVisibleOverlays : 0x%08lx\n",pHalInfo->ddCaps.dwCurrVisibleOverlays);
1207 DPRINT1(" pHalInfo->ddCaps.dwNumFourCCCodes : 0x%08lx\n",pHalInfo->ddCaps.dwNumFourCCCodes);
1208 DPRINT1(" pHalInfo->ddCaps.dwAlignBoundarySrc : 0x%08lx\n",pHalInfo->ddCaps.dwAlignBoundarySrc);
1209 DPRINT1(" pHalInfo->ddCaps.dwAlignSizeSrc : 0x%08lx\n",pHalInfo->ddCaps.dwAlignSizeSrc);
1210 DPRINT1(" pHalInfo->ddCaps.dwAlignBoundaryDes : 0x%08lx\n",pHalInfo->ddCaps.dwAlignBoundaryDest);
1211 DPRINT1(" pHalInfo->ddCaps.dwAlignSizeDest : 0x%08lx\n",pHalInfo->ddCaps.dwAlignSizeDest);
1212 DPRINT1(" pHalInfo->ddCaps.dwAlignStrideAlign : 0x%08lx\n",pHalInfo->ddCaps.dwAlignStrideAlign);
1213 for (t=0;t<DD_ROP_SPACE;t++)
1214 {
1215 DPRINT1(" pHalInfo->ddCaps.dwRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwRops[t]);
1216 }
1217 DPRINT1(" pHalInfo->ddCaps.ddsCaps.dwCaps : ");
1218 flag = pHalInfo->ddCaps.ddsCaps.dwCaps;
1219 count = 0;
1220 checkflag(flag,DDSCAPS_3DDEVICE,"DDSCAPS_3DDEVICE");
1221 checkflag(flag,DDSCAPS_ALLOCONLOAD,"DDSCAPS_ALLOCONLOAD");
1222 checkflag(flag,DDSCAPS_ALPHA,"DDSCAPS_ALPHA");
1223 checkflag(flag,DDSCAPS_BACKBUFFER,"DDSCAPS_BACKBUFFER");
1224 checkflag(flag,DDSCAPS_COMPLEX,"DDSCAPS_COMPLEX");
1225 checkflag(flag,DDSCAPS_EXECUTEBUFFER,"DDSCAPS_EXECUTEBUFFER");
1226 checkflag(flag,DDSCAPS_FLIP,"DDSCAPS_FLIP");
1227 checkflag(flag,DDSCAPS_FRONTBUFFER,"DDSCAPS_FRONTBUFFER");
1228 checkflag(flag,DDSCAPS_HWCODEC,"DDSCAPS_HWCODEC");
1229 checkflag(flag,DDSCAPS_LIVEVIDEO,"DDSCAPS_LIVEVIDEO");
1230 checkflag(flag,DDSCAPS_LOCALVIDMEM,"DDSCAPS_LOCALVIDMEM");
1231 checkflag(flag,DDSCAPS_MIPMAP,"DDSCAPS_MIPMAP");
1232 checkflag(flag,DDSCAPS_MODEX,"DDSCAPS_MODEX");
1233 checkflag(flag,DDSCAPS_NONLOCALVIDMEM,"DDSCAPS_NONLOCALVIDMEM");
1234 checkflag(flag,DDSCAPS_OFFSCREENPLAIN,"DDSCAPS_OFFSCREENPLAIN");
1235 checkflag(flag,DDSCAPS_OVERLAY,"DDSCAPS_OVERLAY");
1236 checkflag(flag,DDSCAPS_OPTIMIZED,"DDSCAPS_OPTIMIZED");
1237 checkflag(flag,DDSCAPS_OWNDC,"DDSCAPS_OWNDC");
1238 checkflag(flag,DDSCAPS_PALETTE,"DDSCAPS_PALETTE");
1239 checkflag(flag,DDSCAPS_PRIMARYSURFACE,"DDSCAPS_PRIMARYSURFACE");
1240 checkflag(flag,DDSCAPS_PRIMARYSURFACELEFT,"DDSCAPS_PRIMARYSURFACELEFT");
1241 checkflag(flag,DDSCAPS_STANDARDVGAMODE,"DDSCAPS_STANDARDVGAMODE");
1242 checkflag(flag,DDSCAPS_SYSTEMMEMORY,"DDSCAPS_SYSTEMMEMORY");
1243 checkflag(flag,DDSCAPS_TEXTURE,"DDSCAPS_TEXTURE");
1244 checkflag(flag,DDSCAPS_VIDEOMEMORY,"DDSCAPS_VIDEOMEMORY");
1245 checkflag(flag,DDSCAPS_VIDEOPORT,"DDSCAPS_VIDEOPORT");
1246 checkflag(flag,DDSCAPS_VISIBLE,"DDSCAPS_VISIBLE");
1247 checkflag(flag,DDSCAPS_WRITEONLY,"DDSCAPS_WRITEONLY");
1248 checkflag(flag,DDSCAPS_ZBUFFER,"DDSCAPS_ZBUFFER");
1249 endcheckflag(flag,"pHalInfo->ddCaps.ddsCaps.dwCaps");
1250
1251 DPRINT1(" pHalInfo->ddCaps.dwMinOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinOverlayStretch);
1252 DPRINT1(" pHalInfo->ddCaps.dwMaxOverlayStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxOverlayStretch);
1253 DPRINT1(" pHalInfo->ddCaps.dwMinLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinLiveVideoStretch);
1254 DPRINT1(" pHalInfo->ddCaps.dwMaxLiveVideoStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxLiveVideoStretch);
1255 DPRINT1(" pHalInfo->ddCaps.dwMinHwCodecStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMinHwCodecStretch);
1256 DPRINT1(" pHalInfo->ddCaps.dwMaxHwCodecStretch : 0x%08lx\n",pHalInfo->ddCaps.dwMaxHwCodecStretch);
1257 DPRINT1(" pHalInfo->ddCaps.dwReserved1 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved1);
1258 DPRINT1(" pHalInfo->ddCaps.dwReserved2 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved2);
1259 DPRINT1(" pHalInfo->ddCaps.dwReserved3 : 0x%08lx\n",pHalInfo->ddCaps.dwReserved3);
1260
1261 DPRINT1(" pHalInfo->ddCaps.dwSVBCaps : ");
1262 flag = pHalInfo->ddCaps.dwSVBCaps;
1263 count = 0;
1264 checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
1265 checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
1266 checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
1267 checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
1268 checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
1269 checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
1270 checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
1271 checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
1272 checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
1273 checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
1274 checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
1275 checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
1276 checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
1277 checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
1278 checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
1279 checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
1280 checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
1281 checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
1282 checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
1283 checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
1284 checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
1285 checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
1286 checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
1287 checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
1288 checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
1289 checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
1290 checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
1291 checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
1292 checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
1293 checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
1294 checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
1295 checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
1296 endcheckflag(flag,"pHalInfo->ddCaps.dwSVBCaps");
1297
1298 DPRINT1(" pHalInfo->ddCaps.dwSVBCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVBCKeyCaps);
1299 DPRINT1(" pHalInfo->ddCaps.dwSVBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSVBFXCaps);
1300 for (t=0;t<DD_ROP_SPACE;t++)
1301 {
1302 DPRINT1(" pHalInfo->ddCaps.dwSVBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSVBRops[t]);
1303 }
1304
1305 DPRINT1(" pHalInfo->ddCaps.dwVSBCaps : ");
1306 flag = pHalInfo->ddCaps.dwVSBCaps;
1307 count = 0;
1308 checkflag(flag,DDCAPS_3D,"DDCAPS_3D");
1309 checkflag(flag,DDCAPS_ALIGNBOUNDARYDEST,"DDCAPS_ALIGNBOUNDARYDEST");
1310 checkflag(flag,DDCAPS_ALIGNBOUNDARYSRC,"DDCAPS_ALIGNBOUNDARYSRC");
1311 checkflag(flag,DDCAPS_ALIGNSIZEDEST,"DDCAPS_ALIGNSIZEDEST");
1312 checkflag(flag,DDCAPS_ALIGNSIZESRC,"DDCAPS_ALIGNSIZESRC");
1313 checkflag(flag,DDCAPS_ALIGNSTRIDE,"DDCAPS_ALIGNSTRIDE");
1314 checkflag(flag,DDCAPS_ALPHA,"DDCAPS_ALPHA");
1315 checkflag(flag,DDCAPS_BANKSWITCHED,"DDCAPS_BANKSWITCHED");
1316 checkflag(flag,DDCAPS_BLT,"DDCAPS_BLT");
1317 checkflag(flag,DDCAPS_BLTCOLORFILL,"DDCAPS_BLTCOLORFILL");
1318 checkflag(flag,DDCAPS_BLTDEPTHFILL,"DDCAPS_BLTDEPTHFILL");
1319 checkflag(flag,DDCAPS_BLTFOURCC,"DDCAPS_BLTFOURCC");
1320 checkflag(flag,DDCAPS_BLTQUEUE,"DDCAPS_BLTQUEUE");
1321 checkflag(flag,DDCAPS_BLTSTRETCH,"DDCAPS_BLTSTRETCH");
1322 checkflag(flag,DDCAPS_CANBLTSYSMEM,"DDCAPS_CANBLTSYSMEM");
1323 checkflag(flag,DDCAPS_CANCLIP,"DDCAPS_CANCLIP");
1324 checkflag(flag,DDCAPS_CANCLIPSTRETCHED,"DDCAPS_CANCLIPSTRETCHED");
1325 checkflag(flag,DDCAPS_COLORKEY,"DDCAPS_COLORKEY");
1326 checkflag(flag,DDCAPS_COLORKEYHWASSIST,"DDCAPS_COLORKEYHWASSIST");
1327 checkflag(flag,DDCAPS_GDI,"DDCAPS_GDI");
1328 checkflag(flag,DDCAPS_NOHARDWARE,"DDCAPS_NOHARDWARE");
1329 checkflag(flag,DDCAPS_OVERLAY,"DDCAPS_OVERLAY");
1330 checkflag(flag,DDCAPS_OVERLAYCANTCLIP,"DDCAPS_OVERLAYCANTCLIP");
1331 checkflag(flag,DDCAPS_OVERLAYFOURCC,"DDCAPS_OVERLAYFOURCC");
1332 checkflag(flag,DDCAPS_OVERLAYSTRETCH,"DDCAPS_OVERLAYSTRETCH");
1333 checkflag(flag,DDCAPS_PALETTE,"DDCAPS_PALETTE");
1334 checkflag(flag,DDCAPS_PALETTEVSYNC,"DDCAPS_PALETTEVSYNC");
1335 checkflag(flag,DDCAPS_READSCANLINE,"DDCAPS_READSCANLINE");
1336 checkflag(flag,DDCAPS_STEREOVIEW,"DDCAPS_STEREOVIEW");
1337 checkflag(flag,DDCAPS_VBI,"DDCAPS_VBI");
1338 checkflag(flag,DDCAPS_ZBLTS,"DDCAPS_ZBLTS");
1339 checkflag(flag,DDCAPS_ZOVERLAYS,"DDCAPS_ZOVERLAYS");
1340 endcheckflag(flag,"pHalInfo->ddCaps.dwVSBCaps");
1341
1342 DPRINT1(" pHalInfo->ddCaps.dwVSBCKeyCaps : 0x%08lx\n",pHalInfo->ddCaps.dwVSBCKeyCaps);
1343 DPRINT1(" pHalInfo->ddCaps.dwVSBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwVSBFXCaps);
1344 for (t=0;t<DD_ROP_SPACE;t++)
1345 {
1346 DPRINT1(" pHalInfo->ddCaps.dwVSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwVSBRops[t]);
1347 }
1348 DPRINT1(" pHalInfo->ddCaps.dwSSBCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSSBCaps);
1349 DPRINT1(" pHalInfo->ddCaps.dwSSBCKeyCa : 0x%08lx\n",pHalInfo->ddCaps.dwSSBCKeyCaps);
1350 DPRINT1(" pHalInfo->ddCaps.dwSSBFXCaps : 0x%08lx\n",pHalInfo->ddCaps.dwSSBFXCaps);
1351 for (t=0;t<DD_ROP_SPACE;t++)
1352 {
1353 DPRINT1(" pHalInfo->ddCaps.dwSSBRops[0x%04x] : 0x%08lx\n",t,pHalInfo->ddCaps.dwSSBRops[t]);
1354 }
1355
1356 DPRINT1(" pHalInfo->GetDriverInfo : 0x%p\n",pHalInfo->GetDriverInfo);
1357 DPRINT1(" pHalInfo->dwFlags : ");
1358
1359 flag = pHalInfo->dwFlags;
1360 count = 0;
1361 checkflag(flag,DDHALINFO_ISPRIMARYDISPLAY,"DDHALINFO_ISPRIMARYDISPLAY");
1362 checkflag(flag,DDHALINFO_MODEXILLEGAL,"DDHALINFO_MODEXILLEGAL");
1363 checkflag(flag,DDHALINFO_GETDRIVERINFOSET,"DDHALINFO_GETDRIVERINFOSET");
1364 checkflag(flag,DDHALINFO_GETDRIVERINFO2,"DDHALINFO_GETDRIVERINFO2");
1365 endcheckflag(flag,"pHalInfo->dwFlags");
1366
1367 DPRINT1(" pHalInfo->lpD3DGlobalDriverData : 0x%p\n",pHalInfo->lpD3DGlobalDriverData);
1368 DPRINT1(" pHalInfo->lpD3DHALCallbacks : 0x%p\n",pHalInfo->lpD3DHALCallbacks);
1369 DPRINT1(" pHalInfo->lpD3DBufCallbacks : 0x%p\n",pHalInfo->lpD3DBufCallbacks);
1370 }
1371 else
1372 {
1373 if (pHalInfo->dwSize !=0)
1374 {
1375 DPRINT1("unkonwn dwSize DD_HALINFO : the size found is 0x%08lx\n",pHalInfo->dwSize);
1376 }
1377 else
1378 {
1379 DPRINT1("none pHalInfo from the driver 0x%08lx\n",pHalInfo->dwSize);
1380 }
1381 }
1382 }
1383
1384 /* EOF */