A couple of header fixes to get all the FreeLDR-loaded boot drivers to compile and...
[reactos.git] / reactos / include / ddk / ddrawint.h
1 /*
2 * DirectDraw NT driver interface
3 */
4
5 #ifndef __DD_INCLUDED__
6 #define __DD_INCLUDED__
7
8
9 DEFINE_GUID( GUID_MiscellaneousCallbacks, 0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
10 DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
11 DEFINE_GUID( GUID_VideoPortCallbacks, 0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
12 DEFINE_GUID( GUID_ColorControlCallbacks, 0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
13 DEFINE_GUID( GUID_MotionCompCallbacks, 0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
14 DEFINE_GUID( GUID_VideoPortCaps, 0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
15 DEFINE_GUID( GUID_D3DCaps, 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
16 DEFINE_GUID( GUID_D3DExtendedCaps, 0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
17 DEFINE_GUID( GUID_D3DCallbacks, 0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
18 DEFINE_GUID( GUID_D3DCallbacks2, 0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
19 DEFINE_GUID( GUID_D3DCallbacks3, 0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
20 DEFINE_GUID( GUID_NonLocalVidMemCaps, 0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
21 DEFINE_GUID( GUID_KernelCallbacks, 0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
22 DEFINE_GUID( GUID_KernelCaps, 0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
23 DEFINE_GUID( GUID_ZPixelFormats, 0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
24 DEFINE_GUID( GUID_DDMoreCaps, 0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
25 DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
26 DEFINE_GUID( GUID_NTCallbacks, 0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
27 DEFINE_GUID( GUID_DDMoreSurfaceCaps, 0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
28 DEFINE_GUID( GUID_GetHeapAlignment, 0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
29 DEFINE_GUID( GUID_UpdateNonLocalHeap, 0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
30 DEFINE_GUID( GUID_NTPrivateDriverCaps, 0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
31 DEFINE_GUID( GUID_DDStereoMode, 0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
32 DEFINE_GUID( GUID_VPE2Callbacks, 0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
33
34
35 #ifndef GUID_DEFS_ONLY
36
37 #ifndef _NO_DDRAWINT_NO_COM
38 #ifndef _NO_COM
39 #define _NO_COM
40 #include <ddraw.h>
41 #include <dvp.h>
42 #undef _NO_COM
43 #else
44 #include <ddraw.h>
45 #include <dvp.h>
46 #endif
47 #else
48 #include <ddraw.h>
49 #include <dvp.h>
50 #endif
51
52 #ifdef __cplusplus
53 extern "C" {
54 #endif
55
56 #ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
57 #define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((unsigned long)(sev)<<31) | ((unsigned long)(fac)<<16) | ((unsigned long)(code))) )
58 #endif
59
60 typedef ULONG_PTR FLATPTR;
61
62 typedef struct _DD_VIDEOPORT_LOCAL *PDD_VIDEOPORT_LOCAL;
63
64 /************************************************************************/
65 /* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h */
66 /************************************************************************/
67 struct _DD_GETHEAPALIGNMENTDATA;
68 typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
69
70 /************************************************************************/
71 /* Video memory info structures */
72 /************************************************************************/
73
74 typedef struct _VIDEOMEMORY
75 {
76 DWORD dwFlags;
77 FLATPTR fpStart;
78 union
79 {
80 FLATPTR fpEnd;
81 DWORD dwWidth;
82 };
83 DDSCAPS ddsCaps;
84 DDSCAPS ddsCapsAlt;
85 union
86 {
87 struct _VMEMHEAP *lpHeap;
88 DWORD dwHeight;
89 };
90 } VIDEOMEMORY, *PVIDEOMEMORY;
91
92 typedef struct _VIDEOMEMORYINFO
93 {
94 FLATPTR fpPrimary;
95 DWORD dwFlags;
96 DWORD dwDisplayWidth;
97 DWORD dwDisplayHeight;
98 LONG lDisplayPitch;
99 DDPIXELFORMAT ddpfDisplay;
100 DWORD dwOffscreenAlign;
101 DWORD dwOverlayAlign;
102 DWORD dwTextureAlign;
103 DWORD dwZBufferAlign;
104 DWORD dwAlphaAlign;
105 PVOID pvPrimary;
106 } VIDEOMEMORYINFO;
107 typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO;
108
109 typedef struct _DD_DIRECTDRAW_GLOBAL
110 {
111 PVOID dhpdev;
112 ULONG_PTR dwReserved1;
113 ULONG_PTR dwReserved2;
114 LPDDVIDEOPORTCAPS lpDDVideoPortCaps;
115 } DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
116
117 typedef struct _DD_DIRECTDRAW_LOCAL
118 {
119 PDD_DIRECTDRAW_GLOBAL lpGbl;
120 } DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
121
122
123 typedef struct _DD_SURFACE_GLOBAL
124 {
125 union
126 {
127 DWORD dwBlockSizeY;
128 LONG lSlicePitch;
129 };
130
131 union
132 {
133 PVIDEOMEMORY lpVidMemHeap;
134 DWORD dwBlockSizeX;
135 DWORD dwUserMemSize;
136 };
137
138 FLATPTR fpVidMem;
139 union
140 {
141 LONG lPitch;
142 DWORD dwLinearSize;
143 };
144 LONG yHint;
145 LONG xHint;
146 DWORD wHeight;
147 DWORD wWidth;
148 ULONG_PTR dwReserved1;
149 DDPIXELFORMAT ddpfSurface;
150 FLATPTR fpHeapOffset;
151 HANDLE hCreatorProcess;
152 } DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
153
154 typedef struct _DD_SURFACE_MORE
155 {
156 DWORD dwMipMapCount;
157 PDD_VIDEOPORT_LOCAL lpVideoPort;
158 DWORD dwOverlayFlags;
159 DDSCAPSEX ddsCapsEx;
160 DWORD dwSurfaceHandle;
161 } DD_SURFACE_MORE, *PDD_SURFACE_MORE;
162
163 typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
164
165 typedef struct _DD_SURFACE_LOCAL
166 {
167 PDD_SURFACE_GLOBAL lpGbl;
168 DWORD dwFlags;
169 DDSCAPS ddsCaps;
170 ULONG_PTR dwReserved1;
171 union
172 {
173 DDCOLORKEY ddckCKSrcOverlay;
174 DDCOLORKEY ddckCKSrcBlt;
175 };
176 union
177 {
178 DDCOLORKEY ddckCKDestOverlay;
179 DDCOLORKEY ddckCKDestBlt;
180 };
181 PDD_SURFACE_MORE lpSurfMore;
182 PDD_ATTACHLIST lpAttachList;
183 PDD_ATTACHLIST lpAttachListFrom;
184 RECT rcOverlaySrc;
185 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
186
187 typedef struct _DD_ATTACHLIST
188 {
189 PDD_ATTACHLIST lpLink;
190 PDD_SURFACE_LOCAL lpAttached;
191 } DD_ATTACHLIST;
192
193 typedef struct _DD_SURFACE_INT
194 {
195 PDD_SURFACE_LOCAL lpLcl;
196 } DD_SURFACE_INT, *PDD_SURFACE_INT;
197
198 /************************************************************************/
199 /* DDI representation of the DirectDrawPalette object */
200 /************************************************************************/
201
202 typedef struct _DD_PALETTE_GLOBAL
203 {
204 ULONG_PTR Reserved1;
205 } DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
206
207 /************************************************************************/
208 /* DDI representation of the DirectDrawVideo object */
209 /************************************************************************/
210
211 typedef struct
212 {
213 PDD_DIRECTDRAW_LOCAL lpDD;
214 GUID guid;
215 DWORD dwUncompWidth;
216 DWORD dwUncompHeight;
217 DDPIXELFORMAT ddUncompPixelFormat;
218 DWORD dwDriverReserved1;
219 DWORD dwDriverReserved2;
220 DWORD dwDriverReserved3;
221 LPVOID lpDriverReserved1;
222 LPVOID lpDriverReserved2;
223 LPVOID lpDriverReserved3;
224 } DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
225
226
227 typedef struct _DD_VIDEOPORT_LOCAL
228 {
229 PDD_DIRECTDRAW_LOCAL lpDD;
230 DDVIDEOPORTDESC ddvpDesc;
231 DDVIDEOPORTINFO ddvpInfo;
232 PDD_SURFACE_INT lpSurface;
233 PDD_SURFACE_INT lpVBISurface;
234 DWORD dwNumAutoflip;
235 DWORD dwNumVBIAutoflip;
236 ULONG_PTR dwReserved1;
237 ULONG_PTR dwReserved2;
238 ULONG_PTR dwReserved3;
239 } DD_VIDEOPORT_LOCAL ;
240
241 /************************************************************************/
242 /* IDirectDrawSurface callbacks */
243 /************************************************************************/
244
245 typedef struct _DD_LOCKDATA
246 {
247 PDD_DIRECTDRAW_GLOBAL lpDD;
248 PDD_SURFACE_LOCAL lpDDSurface;
249 DWORD bHasRect;
250 RECTL rArea;
251 LPVOID lpSurfData;
252 HRESULT ddRVal;
253 PVOID Lock;
254 DWORD dwFlags;
255 FLATPTR fpProcess;
256 } DD_LOCKDATA, *PDD_LOCKDATA;
257 typedef DWORD (STDCALL *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
258
259
260 typedef struct _DD_UNLOCKDATA
261 {
262 PDD_DIRECTDRAW_GLOBAL lpDD;
263 PDD_SURFACE_LOCAL lpDDSurface;
264 HRESULT ddRVal;
265 PVOID Unlock;
266 } DD_UNLOCKDATA, *PDD_UNLOCKDATA;
267 typedef DWORD (STDCALL *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
268
269 #define DDABLT_SRCOVERDEST 0x00000001
270 #define DDBLT_AFLAGS 0x80000000
271
272
273
274 typedef struct _DD_BLTDATA
275 {
276 PDD_DIRECTDRAW_GLOBAL lpDD;
277 PDD_SURFACE_LOCAL lpDDDestSurface;
278 RECTL rDest;
279 PDD_SURFACE_LOCAL lpDDSrcSurface;
280 RECTL rSrc;
281 DWORD dwFlags;
282 DWORD dwROPFlags;
283 DDBLTFX bltFX;
284 HRESULT ddRVal;
285 PVOID Blt;
286 BOOL IsClipped;
287 RECTL rOrigDest;
288 RECTL rOrigSrc;
289 DWORD dwRectCnt;
290 LPRECT prDestRects;
291 DWORD dwAFlags;
292 DDARGB ddargbScaleFactors;
293 } DD_BLTDATA, *PDD_BLTDATA;
294 typedef DWORD (STDCALL *PDD_SURFCB_BLT)(PDD_BLTDATA);
295
296 typedef struct _DD_UPDATEOVERLAYDATA
297 {
298 PDD_DIRECTDRAW_GLOBAL lpDD;
299 PDD_SURFACE_LOCAL lpDDDestSurface;
300 RECTL rDest;
301 PDD_SURFACE_LOCAL lpDDSrcSurface;
302 RECTL rSrc;
303 DWORD dwFlags;
304 DDOVERLAYFX overlayFX;
305 HRESULT ddRVal;
306 PVOID UpdateOverlay;
307 } DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
308 typedef DWORD (STDCALL *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
309
310 typedef struct _DD_SETOVERLAYPOSITIONDATA
311 {
312 PDD_DIRECTDRAW_GLOBAL lpDD;
313 PDD_SURFACE_LOCAL lpDDSrcSurface;
314 PDD_SURFACE_LOCAL lpDDDestSurface;
315 LONG lXPos;
316 LONG lYPos;
317 HRESULT ddRVal;
318 PVOID SetOverlayPosition;
319 } DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
320 typedef DWORD (STDCALL *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
321
322 typedef struct _DD_SETPALETTEDATA
323 {
324 PDD_DIRECTDRAW_GLOBAL lpDD;
325 PDD_SURFACE_LOCAL lpDDSurface;
326 PDD_PALETTE_GLOBAL lpDDPalette;
327 HRESULT ddRVal;
328 PVOID SetPalette;
329 BOOL Attach;
330 } DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
331 typedef DWORD (STDCALL *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
332
333 typedef struct _DD_FLIPDATA
334 {
335 PDD_DIRECTDRAW_GLOBAL lpDD;
336 PDD_SURFACE_LOCAL lpSurfCurr;
337 PDD_SURFACE_LOCAL lpSurfTarg;
338 DWORD dwFlags;
339 HRESULT ddRVal;
340 PVOID Flip;
341 PDD_SURFACE_LOCAL lpSurfCurrLeft;
342 PDD_SURFACE_LOCAL lpSurfTargLeft;
343 } DD_FLIPDATA, *PDD_FLIPDATA;
344 typedef DWORD (STDCALL *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
345
346 typedef struct _DD_DESTROYSURFACEDATA
347 {
348 PDD_DIRECTDRAW_GLOBAL lpDD;
349 PDD_SURFACE_LOCAL lpDDSurface;
350 HRESULT ddRVal;
351 PVOID DestroySurface;
352 } DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
353 typedef DWORD (STDCALL *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
354
355 typedef struct _DD_SETCLIPLISTDATA
356 {
357 PDD_DIRECTDRAW_GLOBAL lpDD;
358 PDD_SURFACE_LOCAL lpDDSurface;
359 HRESULT ddRVal;
360 PVOID SetClipList;
361 } DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
362 typedef DWORD (STDCALL *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
363
364 typedef struct _DD_ADDATTACHEDSURFACEDATA
365 {
366 PDD_DIRECTDRAW_GLOBAL lpDD;
367 PDD_SURFACE_LOCAL lpDDSurface;
368 PDD_SURFACE_LOCAL lpSurfAttached;
369 HRESULT ddRVal;
370 PVOID AddAttachedSurface;
371 } DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
372 typedef DWORD (STDCALL *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
373
374 typedef struct _DD_SETCOLORKEYDATA
375 {
376 PDD_DIRECTDRAW_GLOBAL lpDD;
377 PDD_SURFACE_LOCAL lpDDSurface;
378 DWORD dwFlags;
379 DDCOLORKEY ckNew;
380 HRESULT ddRVal;
381 PVOID SetColorKey;
382 } DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
383 typedef DWORD (STDCALL *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
384
385 typedef struct _DD_GETBLTSTATUSDATA
386 {
387 PDD_DIRECTDRAW_GLOBAL lpDD;
388 PDD_SURFACE_LOCAL lpDDSurface;
389 DWORD dwFlags;
390 HRESULT ddRVal;
391 PVOID GetBltStatus;
392 } DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
393 typedef DWORD (STDCALL *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
394
395 typedef struct _DD_GETFLIPSTATUSDATA
396 {
397 PDD_DIRECTDRAW_GLOBAL lpDD;
398 PDD_SURFACE_LOCAL lpDDSurface;
399 DWORD dwFlags;
400 HRESULT ddRVal;
401 PVOID GetFlipStatus;
402 } DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
403 typedef DWORD (STDCALL *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
404
405 typedef struct DD_SURFACECALLBACKS
406 {
407 DWORD dwSize;
408 DWORD dwFlags;
409 PDD_SURFCB_DESTROYSURFACE DestroySurface;
410 PDD_SURFCB_FLIP Flip;
411 PDD_SURFCB_SETCLIPLIST SetClipList;
412 PDD_SURFCB_LOCK Lock;
413 PDD_SURFCB_UNLOCK Unlock;
414 PDD_SURFCB_BLT Blt;
415 PDD_SURFCB_SETCOLORKEY SetColorKey;
416 PDD_SURFCB_ADDATTACHEDSURFACE AddAttachedSurface;
417 PDD_SURFCB_GETBLTSTATUS GetBltStatus;
418 PDD_SURFCB_GETFLIPSTATUS GetFlipStatus;
419 PDD_SURFCB_UPDATEOVERLAY UpdateOverlay;
420 PDD_SURFCB_SETOVERLAYPOSITION SetOverlayPosition;
421 PVOID reserved4;
422 PDD_SURFCB_SETPALETTE SetPalette;
423 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
424
425
426 #define DDHAL_SURFCB32_DESTROYSURFACE 0x00000001
427 #define DDHAL_SURFCB32_FLIP 0x00000002
428 #define DDHAL_SURFCB32_SETCLIPLIST 0x00000004
429 #define DDHAL_SURFCB32_LOCK 0x00000008
430 #define DDHAL_SURFCB32_UNLOCK 0x00000010
431 #define DDHAL_SURFCB32_BLT 0x00000020
432 #define DDHAL_SURFCB32_SETCOLORKEY 0x00000040
433 #define DDHAL_SURFCB32_ADDATTACHEDSURFACE 0x00000080
434 #define DDHAL_SURFCB32_GETBLTSTATUS 0x00000100
435 #define DDHAL_SURFCB32_GETFLIPSTATUS 0x00000200
436 #define DDHAL_SURFCB32_UPDATEOVERLAY 0x00000400
437 #define DDHAL_SURFCB32_SETOVERLAYPOSITION 0x00000800
438 #define DDHAL_SURFCB32_RESERVED4 0x00001000
439 #define DDHAL_SURFCB32_SETPALETTE 0x00002000
440 /************************************************************************/
441 /* IDirectDraw callbacks */
442 /************************************************************************/
443
444 typedef struct _DD_CREATESURFACEDATA
445 {
446 PDD_DIRECTDRAW_GLOBAL lpDD;
447 DDSURFACEDESC *lpDDSurfaceDesc;
448 PDD_SURFACE_LOCAL *lplpSList;
449 DWORD dwSCnt;
450 HRESULT ddRVal;
451 PVOID CreateSurface;
452 } DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
453 typedef DWORD (STDCALL *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
454
455 typedef struct _DD_DRVSETCOLORKEYDATA
456 {
457 PDD_SURFACE_LOCAL lpDDSurface;
458 DWORD dwFlags;
459 DDCOLORKEY ckNew;
460 HRESULT ddRVal;
461 PVOID SetColorKey;
462 } DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
463 typedef DWORD (STDCALL *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
464
465 #define DDWAITVB_I_TESTVB 0x80000006
466
467 typedef struct _DD_WAITFORVERTICALBLANKDATA
468 {
469 PDD_DIRECTDRAW_GLOBAL lpDD;
470 DWORD dwFlags;
471 DWORD bIsInVB;
472 DWORD hEvent;
473 HRESULT ddRVal;
474 PVOID WaitForVerticalBlank;
475 } DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
476 typedef DWORD (STDCALL *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
477
478 typedef struct _DD_CANCREATESURFACEDATA
479 {
480 PDD_DIRECTDRAW_GLOBAL lpDD;
481 DDSURFACEDESC *lpDDSurfaceDesc;
482 DWORD bIsDifferentPixelFormat;
483 HRESULT ddRVal;
484 PVOID CanCreateSurface;
485 } DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
486 typedef DWORD (STDCALL *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
487
488 typedef struct _DD_CREATEPALETTEDATA
489 {
490 PDD_DIRECTDRAW_GLOBAL lpDD;
491 PDD_PALETTE_GLOBAL lpDDPalette;
492 LPPALETTEENTRY lpColorTable;
493 HRESULT ddRVal;
494 PVOID CreatePalette;
495 BOOL is_excl;
496 } DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
497 typedef DWORD (STDCALL *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
498
499 typedef struct _DD_GETSCANLINEDATA
500 {
501 PDD_DIRECTDRAW_GLOBAL lpDD;
502 DWORD dwScanLine;
503 HRESULT ddRVal;
504 PVOID GetScanLine;
505 } DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
506 typedef DWORD (STDCALL *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
507
508 typedef struct _DD_MAPMEMORYDATA
509 {
510 PDD_DIRECTDRAW_GLOBAL lpDD;
511 BOOL bMap;
512 HANDLE hProcess;
513 FLATPTR fpProcess;
514 HRESULT ddRVal;
515 } DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
516 typedef DWORD (STDCALL *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
517
518
519
520
521 typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
522 typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
523
524 typedef DWORD (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
525 typedef DWORD (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
526
527 typedef struct DD_CALLBACKS
528 {
529 DWORD dwSize;
530 DWORD dwFlags;
531 PDD_DESTROYDRIVER DestroyDriver;
532 PDD_CREATESURFACE CreateSurface;
533 PDD_SETCOLORKEY SetColorKey;
534 PDD_SETMODE SetMode;
535 PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
536 PDD_CANCREATESURFACE CanCreateSurface;
537 PDD_CREATEPALETTE CreatePalette;
538 PDD_GETSCANLINE GetScanLine;
539 PDD_MAPMEMORY MapMemory;
540 } DD_CALLBACKS, *PDD_CALLBACKS;
541
542
543
544 #define DDHAL_CB32_DESTROYDRIVER 0x00000001l
545 #define DDHAL_CB32_CREATESURFACE 0x00000002l
546 #define DDHAL_CB32_SETCOLORKEY 0x00000004l
547 #define DDHAL_CB32_SETMODE 0x00000008l
548 #define DDHAL_CB32_WAITFORVERTICALBLANK 0x00000010l
549 #define DDHAL_CB32_CANCREATESURFACE 0x00000020l
550 #define DDHAL_CB32_CREATEPALETTE 0x00000040l
551 #define DDHAL_CB32_GETSCANLINE 0x00000080l
552 #define DDHAL_CB32_MAPMEMORY 0x80000000l
553
554 typedef struct _DD_GETAVAILDRIVERMEMORYDATA
555 {
556 PDD_DIRECTDRAW_GLOBAL lpDD;
557 DDSCAPS DDSCaps;
558 DWORD dwTotal;
559 DWORD dwFree;
560 HRESULT ddRVal;
561 PVOID GetAvailDriverMemory;
562 } DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
563 typedef DWORD (STDCALL *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
564
565 typedef struct _DD_MISCELLANEOUSCALLBACKS
566 {
567 DWORD dwSize;
568 DWORD dwFlags;
569 PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
570 } DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
571
572 #define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY 0x00000001
573
574 typedef DWORD (STDCALL *PDD_ALPHABLT)(PDD_BLTDATA);
575
576 typedef struct _DD_CREATESURFACEEXDATA
577 {
578 DWORD dwFlags;
579 PDD_DIRECTDRAW_LOCAL lpDDLcl;
580 PDD_SURFACE_LOCAL lpDDSLcl;
581 HRESULT ddRVal;
582 } DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
583 typedef DWORD (STDCALL *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
584
585 typedef struct _DD_GETDRIVERSTATEDATA
586 {
587 DWORD dwFlags;
588 union
589 {
590 PDD_DIRECTDRAW_GLOBAL lpDD;
591 DWORD_PTR dwhContext;
592 };
593 LPDWORD lpdwStates;
594 DWORD dwLength;
595 HRESULT ddRVal;
596 } DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
597 typedef DWORD (STDCALL *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
598
599 typedef struct _DD_DESTROYDDLOCALDATA
600 {
601 DWORD dwFlags;
602 PDD_DIRECTDRAW_LOCAL pDDLcl;
603 HRESULT ddRVal;
604 } DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
605 typedef DWORD (STDCALL *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
606
607
608
609 typedef struct _DD_MISCELLANEOUS2CALLBACKS
610 {
611 DWORD dwSize;
612 DWORD dwFlags;
613 PDD_ALPHABLT AlphaBlt;
614 PDD_CREATESURFACEEX CreateSurfaceEx;
615 PDD_GETDRIVERSTATE GetDriverState;
616 PDD_DESTROYDDLOCAL DestroyDDLocal;
617 } DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
618
619
620 #define DDHAL_MISC2CB32_ALPHABLT 0x00000001
621 #define DDHAL_MISC2CB32_CREATESURFACEEX 0x00000002
622 #define DDHAL_MISC2CB32_GETDRIVERSTATE 0x00000004
623 #define DDHAL_MISC2CB32_DESTROYDDLOCAL 0x00000008
624
625
626 typedef struct _DD_FREEDRIVERMEMORYDATA
627 {
628 PDD_DIRECTDRAW_GLOBAL lpDD;
629 PDD_SURFACE_LOCAL lpDDSurface;
630 HRESULT ddRVal;
631 PVOID FreeDriverMemory;
632 } DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
633 typedef DWORD (STDCALL *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
634
635 typedef struct _DD_SETEXCLUSIVEMODEDATA
636 {
637 PDD_DIRECTDRAW_GLOBAL lpDD;
638 DWORD dwEnterExcl;
639 DWORD dwReserved;
640 HRESULT ddRVal;
641 PVOID SetExclusiveMode;
642 } DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
643 typedef DWORD (STDCALL *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
644
645 typedef struct _DD_FLIPTOGDISURFACEDATA
646 {
647 PDD_DIRECTDRAW_GLOBAL lpDD;
648 DWORD dwToGDI;
649 DWORD dwReserved;
650 HRESULT ddRVal;
651 PVOID FlipToGDISurface;
652 } DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
653 typedef DWORD (STDCALL *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
654
655
656
657 typedef struct _DD_NTCALLBACKS
658 {
659 DWORD dwSize;
660 DWORD dwFlags;
661 PDD_FREEDRIVERMEMORY FreeDriverMemory;
662 PDD_SETEXCLUSIVEMODE SetExclusiveMode;
663 PDD_FLIPTOGDISURFACE FlipToGDISurface;
664 } DD_NTCALLBACKS, *PDD_NTCALLBACKS;
665
666
667 #define DDHAL_NTCB32_FREEDRIVERMEMORY 0x00000001
668 #define DDHAL_NTCB32_SETEXCLUSIVEMODE 0x00000002
669 #define DDHAL_NTCB32_FLIPTOGDISURFACE 0x00000004
670
671 /************************************************************************/
672 /* IDirectDrawPalette callbacks */
673 /************************************************************************/
674
675 typedef struct _DD_DESTROYPALETTEDATA
676 {
677 PDD_DIRECTDRAW_GLOBAL lpDD;
678 PDD_PALETTE_GLOBAL lpDDPalette;
679 HRESULT ddRVal;
680 PVOID DestroyPalette;
681 } DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
682 typedef DWORD (STDCALL *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
683
684 typedef struct _DD_SETENTRIESDATA
685 {
686 PDD_DIRECTDRAW_GLOBAL lpDD;
687 PDD_PALETTE_GLOBAL lpDDPalette;
688 DWORD dwBase;
689 DWORD dwNumEntries;
690 LPPALETTEENTRY lpEntries;
691 HRESULT ddRVal;
692 PVOID SetEntries;
693 } DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
694 typedef DWORD (STDCALL *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
695
696 typedef struct DD_PALETTECALLBACKS
697 {
698 DWORD dwSize;
699 DWORD dwFlags;
700 PDD_PALCB_DESTROYPALETTE DestroyPalette;
701 PDD_PALCB_SETENTRIES SetEntries;
702 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
703
704 #define DDHAL_PALCB32_DESTROYPALETTE 0x00000001l
705 #define DDHAL_PALCB32_SETENTRIES 0x00000002l
706
707 /************************************************************************/
708 /* IDirectDrawVideoport callbacks */
709 /************************************************************************/
710
711 typedef struct _DD_CANCREATEVPORTDATA
712 {
713 PDD_DIRECTDRAW_LOCAL lpDD;
714 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
715 HRESULT ddRVal;
716 PVOID CanCreateVideoPort;
717 } DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
718 typedef DWORD (STDCALL *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
719
720 typedef struct _DD_CREATEVPORTDATA
721 {
722 PDD_DIRECTDRAW_LOCAL lpDD;
723 LPDDVIDEOPORTDESC lpDDVideoPortDesc;
724 PDD_VIDEOPORT_LOCAL lpVideoPort;
725 HRESULT ddRVal;
726 PVOID CreateVideoPort;
727 } DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
728 typedef DWORD (STDCALL *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
729
730 typedef struct _DD_FLIPVPORTDATA
731 {
732 PDD_DIRECTDRAW_LOCAL lpDD;
733 PDD_VIDEOPORT_LOCAL lpVideoPort;
734 PDD_SURFACE_LOCAL lpSurfCurr;
735 PDD_SURFACE_LOCAL lpSurfTarg;
736 HRESULT ddRVal;
737 PVOID FlipVideoPort;
738 } DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
739 typedef DWORD (STDCALL *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
740
741 typedef struct _DD_GETVPORTBANDWIDTHDATA
742 {
743 PDD_DIRECTDRAW_LOCAL lpDD;
744 PDD_VIDEOPORT_LOCAL lpVideoPort;
745 LPDDPIXELFORMAT lpddpfFormat;
746 DWORD dwWidth;
747 DWORD dwHeight;
748 DWORD dwFlags;
749 LPDDVIDEOPORTBANDWIDTH lpBandwidth;
750 HRESULT ddRVal;
751 PVOID GetVideoPortBandwidth;
752 } DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
753 typedef DWORD (STDCALL *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
754
755 typedef struct _DD_GETVPORTINPUTFORMATDATA
756 {
757 PDD_DIRECTDRAW_LOCAL lpDD;
758 PDD_VIDEOPORT_LOCAL lpVideoPort;
759 DWORD dwFlags;
760 LPDDPIXELFORMAT lpddpfFormat;
761 DWORD dwNumFormats;
762 HRESULT ddRVal;
763 PVOID GetVideoPortInputFormats;
764 } DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
765 typedef DWORD (STDCALL *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
766
767 typedef struct _DD_GETVPORTOUTPUTFORMATDATA
768 {
769 PDD_DIRECTDRAW_LOCAL lpDD;
770 PDD_VIDEOPORT_LOCAL lpVideoPort;
771 DWORD dwFlags;
772 LPDDPIXELFORMAT lpddpfInputFormat;
773 LPDDPIXELFORMAT lpddpfOutputFormats;
774 DWORD dwNumFormats;
775 HRESULT ddRVal;
776 PVOID GetVideoPortInputFormats;
777 } DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
778 typedef DWORD (STDCALL *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
779
780 typedef struct _DD_GETVPORTFIELDDATA
781 {
782 PDD_DIRECTDRAW_LOCAL lpDD;
783 PDD_VIDEOPORT_LOCAL lpVideoPort;
784 BOOL bField;
785 HRESULT ddRVal;
786 PVOID GetVideoPortField;
787 } DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
788 typedef DWORD (STDCALL *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
789
790 typedef struct _DD_GETVPORTLINEDATA
791 {
792 PDD_DIRECTDRAW_LOCAL lpDD;
793 PDD_VIDEOPORT_LOCAL lpVideoPort;
794 DWORD dwLine;
795 HRESULT ddRVal;
796 PVOID GetVideoPortLine;
797 } DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
798 typedef DWORD (STDCALL *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
799
800 typedef struct _DD_GETVPORTCONNECTDATA
801 {
802 PDD_DIRECTDRAW_LOCAL lpDD;
803 DWORD dwPortId;
804 LPDDVIDEOPORTCONNECT lpConnect;
805 DWORD dwNumEntries;
806 HRESULT ddRVal;
807 PVOID GetVideoPortConnectInfo;
808 } DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
809 typedef DWORD (STDCALL *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
810
811 typedef struct _DD_DESTROYVPORTDATA
812 {
813 PDD_DIRECTDRAW_LOCAL lpDD;
814 PDD_VIDEOPORT_LOCAL lpVideoPort;
815 HRESULT ddRVal;
816 PVOID DestroyVideoPort;
817 } DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
818 typedef DWORD (STDCALL *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
819
820 typedef struct _DD_GETVPORTFLIPSTATUSDATA
821 {
822 PDD_DIRECTDRAW_LOCAL lpDD;
823 FLATPTR fpSurface;
824 HRESULT ddRVal;
825 PVOID GetVideoPortFlipStatus;
826 } DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
827 typedef DWORD (STDCALL *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
828
829
830
831 typedef struct _DD_UPDATEVPORTDATA
832 {
833 PDD_DIRECTDRAW_LOCAL lpDD;
834 PDD_VIDEOPORT_LOCAL lpVideoPort;
835 PDD_SURFACE_INT *lplpDDSurface;
836 PDD_SURFACE_INT *lplpDDVBISurface;
837 LPDDVIDEOPORTINFO lpVideoInfo;
838 DWORD dwFlags;
839 DWORD dwNumAutoflip;
840 DWORD dwNumVBIAutoflip;
841 HRESULT ddRVal;
842 PVOID UpdateVideoPort;
843 } DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
844 typedef DWORD (STDCALL *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
845
846 typedef struct _DD_WAITFORVPORTSYNCDATA
847 {
848 PDD_DIRECTDRAW_LOCAL lpDD;
849 PDD_VIDEOPORT_LOCAL lpVideoPort;
850 DWORD dwFlags;
851 DWORD dwLine;
852 DWORD dwTimeOut;
853 HRESULT ddRVal;
854 PVOID UpdateVideoPort;
855 } DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
856 typedef DWORD (STDCALL *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
857
858 typedef struct _DD_GETVPORTSIGNALDATA
859 {
860 PDD_DIRECTDRAW_LOCAL lpDD;
861 PDD_VIDEOPORT_LOCAL lpVideoPort;
862 DWORD dwStatus;
863 HRESULT ddRVal;
864 PVOID GetVideoSignalStatus;
865 } DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
866 typedef DWORD (STDCALL *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
867
868
869
870 typedef struct _DD_VPORTCOLORDATA
871 {
872 PDD_DIRECTDRAW_LOCAL lpDD;
873 PDD_VIDEOPORT_LOCAL lpVideoPort;
874 DWORD dwFlags;
875 LPDDCOLORCONTROL lpColorData;
876 HRESULT ddRVal;
877 PVOID ColorControl;
878 } DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
879 typedef DWORD (STDCALL *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
880
881
882 typedef struct DD_VIDEOPORTCALLBACKS
883 {
884 DWORD dwSize;
885 DWORD dwFlags;
886 PDD_VPORTCB_CANCREATEVIDEOPORT CanCreateVideoPort;
887 PDD_VPORTCB_CREATEVIDEOPORT CreateVideoPort;
888 PDD_VPORTCB_FLIP FlipVideoPort;
889 PDD_VPORTCB_GETBANDWIDTH GetVideoPortBandwidth;
890 PDD_VPORTCB_GETINPUTFORMATS GetVideoPortInputFormats;
891 PDD_VPORTCB_GETOUTPUTFORMATS GetVideoPortOutputFormats;
892 PVOID lpReserved1;
893 PDD_VPORTCB_GETFIELD GetVideoPortField;
894 PDD_VPORTCB_GETLINE GetVideoPortLine;
895 PDD_VPORTCB_GETVPORTCONNECT GetVideoPortConnectInfo;
896 PDD_VPORTCB_DESTROYVPORT DestroyVideoPort;
897 PDD_VPORTCB_GETFLIPSTATUS GetVideoPortFlipStatus;
898 PDD_VPORTCB_UPDATE UpdateVideoPort;
899 PDD_VPORTCB_WAITFORSYNC WaitForVideoPortSync;
900 PDD_VPORTCB_GETSIGNALSTATUS GetVideoSignalStatus;
901 PDD_VPORTCB_COLORCONTROL ColorControl;
902 } DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
903
904 #define DDHAL_VPORT32_CANCREATEVIDEOPORT 0x00000001
905 #define DDHAL_VPORT32_CREATEVIDEOPORT 0x00000002
906 #define DDHAL_VPORT32_FLIP 0x00000004
907 #define DDHAL_VPORT32_GETBANDWIDTH 0x00000008
908 #define DDHAL_VPORT32_GETINPUTFORMATS 0x00000010
909 #define DDHAL_VPORT32_GETOUTPUTFORMATS 0x00000020
910 #define DDHAL_VPORT32_GETFIELD 0x00000080
911 #define DDHAL_VPORT32_GETLINE 0x00000100
912 #define DDHAL_VPORT32_GETCONNECT 0x00000200
913 #define DDHAL_VPORT32_DESTROY 0x00000400
914 #define DDHAL_VPORT32_GETFLIPSTATUS 0x00000800
915 #define DDHAL_VPORT32_UPDATE 0x00001000
916 #define DDHAL_VPORT32_WAITFORSYNC 0x00002000
917 #define DDHAL_VPORT32_GETSIGNALSTATUS 0x00004000
918 #define DDHAL_VPORT32_COLORCONTROL 0x00008000
919
920
921 /************************************************************************/
922 /* IDirectDrawColorControl callbacks */
923 /************************************************************************/
924
925 #define DDRAWI_GETCOLOR 0x0001
926 #define DDRAWI_SETCOLOR 0x0002
927
928 typedef struct _DD_COLORCONTROLDATA
929 {
930 PDD_DIRECTDRAW_GLOBAL lpDD;
931 PDD_SURFACE_LOCAL lpDDSurface;
932 LPDDCOLORCONTROL lpColorData;
933 DWORD dwFlags;
934 HRESULT ddRVal;
935 PVOID ColorControl;
936 } DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
937 typedef DWORD (STDCALL *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
938
939
940
941 typedef struct _DD_COLORCONTROLCALLBACKS
942 {
943 DWORD dwSize;
944 DWORD dwFlags;
945 PDD_COLORCB_COLORCONTROL ColorControl;
946 } DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
947
948 #define DDHAL_COLOR_COLORCONTROL 0x00000001
949
950 /************************************************************************/
951 /* IDirectDrawVideo callbacks */
952 /************************************************************************/
953
954 typedef struct _DD_GETMOCOMPGUIDSDATA
955 {
956 PDD_DIRECTDRAW_LOCAL lpDD;
957 DWORD dwNumGuids;
958 GUID *lpGuids;
959 HRESULT ddRVal;
960 } DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
961 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
962
963 typedef struct _DD_GETMOCOMPFORMATSDATA
964 {
965 PDD_DIRECTDRAW_LOCAL lpDD;
966 GUID *lpGuid;
967 DWORD dwNumFormats;
968 LPDDPIXELFORMAT lpFormats;
969 HRESULT ddRVal;
970 } DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
971 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
972
973 typedef struct _DD_CREATEMOCOMPDATA
974 {
975 PDD_DIRECTDRAW_LOCAL lpDD;
976 PDD_MOTIONCOMP_LOCAL lpMoComp;
977 GUID *lpGuid;
978 DWORD dwUncompWidth;
979 DWORD dwUncompHeight;
980 DDPIXELFORMAT ddUncompPixelFormat;
981 LPVOID lpData;
982 DWORD dwDataSize;
983 HRESULT ddRVal;
984 } DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
985 typedef DWORD (STDCALL *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
986
987 typedef struct _DDCOMPBUFFERINFO
988 {
989 DWORD dwSize;
990 DWORD dwNumCompBuffers;
991 DWORD dwWidthToCreate;
992 DWORD dwHeightToCreate;
993 DWORD dwBytesToAllocate;
994 DDSCAPS2 ddCompCaps;
995 DDPIXELFORMAT ddPixelFormat;
996 } DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
997
998 typedef struct _DD_GETMOCOMPCOMPBUFFDATA
999 {
1000 PDD_DIRECTDRAW_LOCAL lpDD;
1001 GUID *lpGuid;
1002 DWORD dwWidth;
1003 DWORD dwHeight;
1004 DDPIXELFORMAT ddPixelFormat;
1005 DWORD dwNumTypesCompBuffs;
1006 LPDDCOMPBUFFERINFO lpCompBuffInfo;
1007 HRESULT ddRVal;
1008 } DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
1009 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
1010
1011 typedef struct _DD_GETINTERNALMOCOMPDATA
1012 {
1013 PDD_DIRECTDRAW_LOCAL lpDD;
1014 GUID *lpGuid;
1015 DWORD dwWidth;
1016 DWORD dwHeight;
1017 DDPIXELFORMAT ddPixelFormat;
1018 DWORD dwScratchMemAlloc;
1019 HRESULT ddRVal;
1020 } DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
1021 typedef DWORD (STDCALL *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
1022
1023 typedef struct _DD_BEGINMOCOMPFRAMEDATA
1024 {
1025 PDD_DIRECTDRAW_LOCAL lpDD;
1026 PDD_MOTIONCOMP_LOCAL lpMoComp;
1027 PDD_SURFACE_LOCAL lpDestSurface;
1028 DWORD dwInputDataSize;
1029 LPVOID lpInputData;
1030 DWORD dwOutputDataSize;
1031 LPVOID lpOutputData;
1032 HRESULT ddRVal;
1033 } DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
1034 typedef DWORD (STDCALL *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
1035
1036 typedef struct _DD_ENDMOCOMPFRAMEDATA
1037 {
1038 PDD_DIRECTDRAW_LOCAL lpDD;
1039 PDD_MOTIONCOMP_LOCAL lpMoComp;
1040 LPVOID lpInputData;
1041 DWORD dwInputDataSize;
1042 HRESULT ddRVal;
1043 } DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
1044 typedef DWORD (STDCALL *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
1045
1046 typedef struct _DDMOCOMPBUFFERINFO
1047 {
1048 DWORD dwSize;
1049 PDD_SURFACE_LOCAL lpCompSurface;
1050 DWORD dwDataOffset;
1051 DWORD dwDataSize;
1052 LPVOID lpPrivate;
1053 } DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
1054
1055 typedef struct _DD_RENDERMOCOMPDATA
1056 {
1057 PDD_DIRECTDRAW_LOCAL lpDD;
1058 PDD_MOTIONCOMP_LOCAL lpMoComp;
1059 DWORD dwNumBuffers;
1060 LPDDMOCOMPBUFFERINFO lpBufferInfo;
1061 DWORD dwFunction;
1062 LPVOID lpInputData;
1063 DWORD dwInputDataSize;
1064 LPVOID lpOutputData;
1065 DWORD dwOutputDataSize;
1066 HRESULT ddRVal;
1067 } DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
1068 typedef DWORD (STDCALL *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
1069
1070 #define DDMCQUERY_READ 0x00000001
1071
1072 typedef struct _DD_QUERYMOCOMPSTATUSDATA
1073 {
1074 PDD_DIRECTDRAW_LOCAL lpDD;
1075 PDD_MOTIONCOMP_LOCAL lpMoComp;
1076 PDD_SURFACE_LOCAL lpSurface;
1077 DWORD dwFlags;
1078 HRESULT ddRVal;
1079 } DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
1080 typedef DWORD (STDCALL *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
1081
1082 typedef struct _DD_DESTROYMOCOMPDATA
1083 {
1084 PDD_DIRECTDRAW_LOCAL lpDD;
1085 PDD_MOTIONCOMP_LOCAL lpMoComp;
1086 HRESULT ddRVal;
1087 } DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
1088 typedef DWORD (STDCALL *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
1089
1090
1091
1092 typedef struct DD_MOTIONCOMPCALLBACKS
1093 {
1094 DWORD dwSize;
1095 DWORD dwFlags;
1096 PDD_MOCOMPCB_GETGUIDS GetMoCompGuids;
1097 PDD_MOCOMPCB_GETFORMATS GetMoCompFormats;
1098 PDD_MOCOMPCB_CREATE CreateMoComp;
1099 PDD_MOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
1100 PDD_MOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
1101 PDD_MOCOMPCB_BEGINFRAME BeginMoCompFrame;
1102 PDD_MOCOMPCB_ENDFRAME EndMoCompFrame;
1103 PDD_MOCOMPCB_RENDER RenderMoComp;
1104 PDD_MOCOMPCB_QUERYSTATUS QueryMoCompStatus;
1105 PDD_MOCOMPCB_DESTROY DestroyMoComp;
1106 } DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
1107
1108 #define DDHAL_MOCOMP32_GETGUIDS 0x00000001
1109 #define DDHAL_MOCOMP32_GETFORMATS 0x00000002
1110 #define DDHAL_MOCOMP32_CREATE 0x00000004
1111 #define DDHAL_MOCOMP32_GETCOMPBUFFINFO 0x00000008
1112 #define DDHAL_MOCOMP32_GETINTERNALINFO 0x00000010
1113 #define DDHAL_MOCOMP32_BEGINFRAME 0x00000020
1114 #define DDHAL_MOCOMP32_ENDFRAME 0x00000040
1115 #define DDHAL_MOCOMP32_RENDER 0x00000080
1116 #define DDHAL_MOCOMP32_QUERYSTATUS 0x00000100
1117 #define DDHAL_MOCOMP32_DESTROY 0x00000200
1118
1119 /************************************************************************/
1120 /* D3D buffer callbacks */
1121 /************************************************************************/
1122
1123 typedef struct _DD_D3DBUFCALLBACKS
1124 {
1125 DWORD dwSize;
1126 DWORD dwFlags;
1127 PDD_CANCREATESURFACE CanCreateD3DBuffer;
1128 PDD_CREATESURFACE CreateD3DBuffer;
1129 PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
1130 PDD_SURFCB_LOCK LockD3DBuffer;
1131 PDD_SURFCB_UNLOCK UnlockD3DBuffer;
1132 } DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
1133
1134 /************************************************************************/
1135 /* DdGetDriverInfo callback */
1136 /************************************************************************/
1137
1138 typedef struct _DD_GETDRIVERINFODATA
1139 {
1140 // Input:
1141 PVOID dhpdev;
1142 DWORD dwSize;
1143 DWORD dwFlags;
1144 GUID guidInfo;
1145 DWORD dwExpectedSize;
1146 PVOID lpvData;
1147 // Output:
1148 DWORD dwActualSize;
1149 HRESULT ddRVal;
1150 } DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
1151 typedef DWORD (STDCALL *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
1152
1153
1154
1155
1156 /************************************************************************/
1157 /* Driver info structures */
1158 /************************************************************************/
1159
1160 typedef struct _DDNTCORECAPS
1161 {
1162 DWORD dwSize;
1163 DWORD dwCaps;
1164 DWORD dwCaps2;
1165 DWORD dwCKeyCaps;
1166 DWORD dwFXCaps;
1167 DWORD dwFXAlphaCaps;
1168 DWORD dwPalCaps;
1169 DWORD dwSVCaps;
1170 DWORD dwAlphaBltConstBitDepths;
1171 DWORD dwAlphaBltPixelBitDepths;
1172 DWORD dwAlphaBltSurfaceBitDepths;
1173 DWORD dwAlphaOverlayConstBitDepths;
1174 DWORD dwAlphaOverlayPixelBitDepths;
1175 DWORD dwAlphaOverlaySurfaceBitDepths;
1176 DWORD dwZBufferBitDepths;
1177 DWORD dwVidMemTotal;
1178 DWORD dwVidMemFree;
1179 DWORD dwMaxVisibleOverlays;
1180 DWORD dwCurrVisibleOverlays;
1181 DWORD dwNumFourCCCodes;
1182 DWORD dwAlignBoundarySrc;
1183 DWORD dwAlignSizeSrc;
1184 DWORD dwAlignBoundaryDest;
1185 DWORD dwAlignSizeDest;
1186 DWORD dwAlignStrideAlign;
1187 DWORD dwRops[DD_ROP_SPACE];
1188 DDSCAPS ddsCaps;
1189 DWORD dwMinOverlayStretch;
1190 DWORD dwMaxOverlayStretch;
1191 DWORD dwMinLiveVideoStretch;
1192 DWORD dwMaxLiveVideoStretch;
1193 DWORD dwMinHwCodecStretch;
1194 DWORD dwMaxHwCodecStretch;
1195 DWORD dwReserved1;
1196 DWORD dwReserved2;
1197 DWORD dwReserved3;
1198 DWORD dwSVBCaps;
1199 DWORD dwSVBCKeyCaps;
1200 DWORD dwSVBFXCaps;
1201 DWORD dwSVBRops[DD_ROP_SPACE];
1202 DWORD dwVSBCaps;
1203 DWORD dwVSBCKeyCaps;
1204 DWORD dwVSBFXCaps;
1205 DWORD dwVSBRops[DD_ROP_SPACE];
1206 DWORD dwSSBCaps;
1207 DWORD dwSSBCKeyCaps;
1208 DWORD dwSSBFXCaps;
1209 DWORD dwSSBRops[DD_ROP_SPACE];
1210 DWORD dwMaxVideoPorts;
1211 DWORD dwCurrVideoPorts;
1212 DWORD dwSVBCaps2;
1213 } DDNTCORECAPS, *PDDNTCORECAPS;
1214
1215
1216 typedef struct _DD_HALINFO_V4
1217 {
1218 DWORD dwSize;
1219 VIDEOMEMORYINFO vmiData;
1220 DDNTCORECAPS ddCaps;
1221 PDD_GETDRIVERINFO GetDriverInfo;
1222 DWORD dwFlags;
1223 } DD_HALINFO_V4, *PDD_HALINFO_V4;
1224
1225 typedef struct _DD_HALINFO
1226 {
1227 DWORD dwSize;
1228 VIDEOMEMORYINFO vmiData;
1229 DDNTCORECAPS ddCaps;
1230 PDD_GETDRIVERINFO GetDriverInfo;
1231 DWORD dwFlags;
1232 PVOID lpD3DGlobalDriverData;
1233 PVOID lpD3DHALCallbacks;
1234 PDD_D3DBUFCALLBACKS lpD3DBufCallbacks;
1235 } DD_HALINFO, *PDD_HALINFO;
1236
1237
1238
1239 typedef struct _DD_NONLOCALVIDMEMCAPS
1240 {
1241 DWORD dwSize;
1242 DWORD dwNLVBCaps;
1243 DWORD dwNLVBCaps2;
1244 DWORD dwNLVBCKeyCaps;
1245 DWORD dwNLVBFXCaps;
1246 DWORD dwNLVBRops[DD_ROP_SPACE];
1247 } DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
1248
1249
1250
1251 typedef struct _DD_MORESURFACECAPS
1252 {
1253 DWORD dwSize;
1254 DDSCAPSEX ddsCapsMore;
1255 struct tagNTExtendedHeapRestrictions
1256 {
1257 DDSCAPSEX ddsCapsEx;
1258 DDSCAPSEX ddsCapsExAlt;
1259 } ddsExtendedHeapRestrictions[1];
1260 } DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
1261
1262
1263 /*********************************************************/
1264 /* Kernel Callbacks */
1265 /*********************************************************/
1266 typedef struct _DD_SYNCSURFACEDATA
1267 {
1268 PDD_DIRECTDRAW_LOCAL lpDD;
1269 PDD_SURFACE_LOCAL lpDDSurface;
1270 DWORD dwSurfaceOffset;
1271 ULONG_PTR fpLockPtr;
1272 LONG lPitch;
1273 DWORD dwOverlayOffset;
1274 ULONG dwDriverReserved1;
1275 ULONG dwDriverReserved2;
1276 ULONG dwDriverReserved3;
1277 ULONG dwDriverReserved4;
1278 HRESULT ddRVal;
1279 } DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
1280 typedef DWORD (STDCALL *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
1281
1282 typedef struct _DD_SYNCVIDEOPORTDATA
1283 {
1284 PDD_DIRECTDRAW_LOCAL lpDD;
1285 PDD_VIDEOPORT_LOCAL lpVideoPort;
1286 DWORD dwOriginOffset;
1287 DWORD dwHeight;
1288 DWORD dwVBIHeight;
1289 ULONG dwDriverReserved1;
1290 ULONG dwDriverReserved2;
1291 ULONG dwDriverReserved3;
1292 HRESULT ddRVal;
1293 } DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
1294 typedef DWORD (STDCALL *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
1295
1296
1297 typedef struct DD_NTPRIVATEDRIVERCAPS
1298 {
1299 DWORD dwSize;
1300 DWORD dwPrivateCaps;
1301 } DD_NTPRIVATEDRIVERCAPS;
1302
1303 typedef struct _DD_UPDATENONLOCALHEAPDATA
1304 {
1305 PDD_DIRECTDRAW_GLOBAL lpDD;
1306 DWORD dwHeap;
1307 FLATPTR fpGARTLin;
1308 FLATPTR fpGARTDev;
1309 ULONG_PTR ulPolicyMaxBytes;
1310 HRESULT ddRVal;
1311 VOID* UpdateNonLocalHeap;
1312 } DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
1313
1314 typedef struct _DD_STEREOMODE
1315 {
1316 DWORD dwSize;
1317 DWORD dwHeight;
1318 DWORD dwWidth;
1319 DWORD dwBpp;
1320 DWORD dwRefreshRate;
1321 BOOL bSupported;
1322 } DD_STEREOMODE, *PDD_STEREOMODE;
1323
1324 typedef struct _DD_MORECAPS
1325 {
1326 DWORD dwSize;
1327 DWORD dwAlphaCaps;
1328 DWORD dwSVBAlphaCaps;
1329 DWORD dwVSBAlphaCaps;
1330 DWORD dwSSBAlphaCaps;
1331 DWORD dwFilterCaps;
1332 DWORD dwSVBFilterCaps;
1333 DWORD dwVSBFilterCaps;
1334 DWORD dwSSBFilterCaps;
1335 } DD_MORECAPS, *PDD_MORECAPS;
1336
1337 typedef struct _DD_CLIPPER_GLOBAL
1338 {
1339 ULONG_PTR dwReserved1;
1340 } DD_CLIPPER_GLOBAL;
1341
1342 typedef struct _DD_CLIPPER_LOCAL
1343 {
1344 ULONG_PTR dwReserved1;
1345 } DD_CLIPPER_LOCAL;
1346
1347 typedef struct _DD_PALETTE_LOCAL
1348 {
1349 ULONG dwReserved0;
1350 ULONG_PTR dwReserved1;
1351 } DD_PALETTE_LOCAL;
1352
1353
1354 typedef struct DD_KERNELCALLBACKS
1355 {
1356 DWORD dwSize;
1357 DWORD dwFlags;
1358 PDD_KERNELCB_SYNCSURFACE SyncSurfaceData;
1359 PDD_KERNELCB_SYNCVIDEOPORT SyncVideoPortData;
1360 } DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
1361
1362
1363 #define MAX_AUTOFLIP_BUFFERS 10
1364 #define DDSCAPS_EXECUTEBUFFER DDSCAPS_RESERVED2
1365 #define DDSCAPS_COMMANDBUFFER DDSCAPS_RESERVED3
1366 #define DDSCAPS_VERTEXBUFFER DDSCAPS_RESERVED4
1367 #define DDPF_D3DFORMAT 0x00200000l
1368 #define D3DFORMAT_OP_TEXTURE 0x00000001L
1369 #define D3DFORMAT_OP_VOLUMETEXTURE 0x00000002L
1370 #define D3DFORMAT_OP_CUBETEXTURE 0x00000004L
1371 #define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET 0x00000008L
1372 #define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET 0x00000010L
1373 #define D3DFORMAT_OP_ZSTENCIL 0x00000040L
1374 #define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH 0x00000080L
1375 #define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
1376 #define D3DFORMAT_OP_DISPLAYMODE 0x00000400L
1377 #define D3DFORMAT_OP_3DACCELERATION 0x00000800L
1378 #define D3DFORMAT_OP_PIXELSIZE 0x00001000L
1379 #define D3DFORMAT_OP_CONVERT_TO_ARGB 0x00002000L
1380 #define D3DFORMAT_OP_OFFSCREENPLAIN 0x00004000L
1381 #define D3DFORMAT_OP_SRGBREAD 0x00008000L
1382 #define D3DFORMAT_OP_BUMPMAP 0x00010000L
1383 #define D3DFORMAT_OP_DMAP 0x00020000L
1384 #define D3DFORMAT_OP_NOFILTER 0x00040000L
1385 #define D3DFORMAT_MEMBEROFGROUP_ARGB 0x00080000L
1386 #define D3DFORMAT_OP_SRGBWRITE 0x00100000L
1387 #define D3DFORMAT_OP_NOALPHABLEND 0x00200000L
1388 #define D3DFORMAT_OP_AUTOGENMIPMAP 0x00400000L
1389 #define D3DFORMAT_OP_VERTEXTEXTURE 0x00800000L
1390 #define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP 0x01000000L
1391 #define DDHAL_PLEASEALLOC_BLOCKSIZE 0x00000002l
1392 #define DDHAL_PLEASEALLOC_USERMEM 0x00000004l
1393
1394
1395 #define VIDMEM_ISLINEAR 0x00000001l
1396 #define VIDMEM_ISRECTANGULAR 0x00000002l
1397 #define VIDMEM_ISHEAP 0x00000004l
1398 #define VIDMEM_ISNONLOCAL 0x00000008l
1399 #define VIDMEM_ISWC 0x00000010l
1400 #define VIDMEM_HEAPDISABLED 0x00000020l
1401
1402 #define DDHAL_CREATESURFACEEX_SWAPHANDLES 0x00000001l
1403
1404 #define DDHAL_KERNEL_SYNCSURFACEDATA 0x00000001l
1405 #define DDHAL_KERNEL_SYNCVIDEOPORTDATA 0x00000002l
1406
1407 #define DDHAL_DRIVER_NOTHANDLED 0x00000000l
1408 #define DDHAL_DRIVER_HANDLED 0x00000001l
1409 #define DDHAL_DRIVER_NOCKEYHW 0x00000002l
1410
1411 #define DDRAWISURF_HASCKEYSRCBLT 0x00000800L
1412 #define DDRAWISURF_HASPIXELFORMAT 0x00002000L
1413 #define DDRAWISURF_HASOVERLAYDATA 0x00004000L
1414 #define DDRAWISURF_FRONTBUFFER 0x04000000L
1415 #define DDRAWISURF_BACKBUFFER 0x08000000L
1416 #define DDRAWISURF_INVALID 0x10000000L
1417 #define DDRAWISURF_DRIVERMANAGED 0x40000000L
1418
1419 #define ROP_HAS_SOURCE 0x00000001l
1420 #define ROP_HAS_PATTERN 0x00000002l
1421 #define ROP_HAS_SOURCEPATTERN ROP_HAS_SOURCE | ROP_HAS_PATTERN
1422
1423 #define DDHAL_EXEBUFCB32_CANCREATEEXEBUF 0x00000001l
1424 #define DDHAL_EXEBUFCB32_CREATEEXEBUF 0x00000002l
1425 #define DDHAL_EXEBUFCB32_DESTROYEXEBUF 0x00000004l
1426 #define DDHAL_EXEBUFCB32_LOCKEXEBUF 0x00000008l
1427 #define DDHAL_EXEBUFCB32_UNLOCKEXEBUF 0x00000010l
1428
1429 #define DDHAL_D3DBUFCB32_CANCREATED3DBUF DDHAL_EXEBUFCB32_CANCREATEEXEBUF
1430 #define DDHAL_D3DBUFCB32_CREATED3DBUF DDHAL_EXEBUFCB32_CREATEEXEBUF
1431 #define DDHAL_D3DBUFCB32_DESTROYD3DBUF DDHAL_EXEBUFCB32_DESTROYEXEBUF
1432 #define DDHAL_D3DBUFCB32_LOCKD3DBUF DDHAL_EXEBUFCB32_LOCKEXEBUF
1433 #define DDHAL_D3DBUFCB32_UNLOCKD3DBUF DDHAL_EXEBUFCB32_UNLOCKEXEBUF
1434
1435 #define DDHALINFO_ISPRIMARYDISPLAY 0x00000001
1436 #define DDHALINFO_MODEXILLEGAL 0x00000002
1437 #define DDHALINFO_GETDRIVERINFOSET 0x00000004
1438 #define DDHALINFO_GETDRIVERINFO2 0x00000008
1439
1440 #define DDRAWIVPORT_ON 0x00000001
1441 #define DDRAWIVPORT_SOFTWARE_AUTOFLIP 0x00000002
1442 #define DDRAWIVPORT_COLORKEYANDINTERP 0x00000004
1443
1444 #define DDHAL_PRIVATECAP_ATOMICSURFACECREATION 0x00000001l
1445 #define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION 0x00000002l
1446 #define DDHAL_PRIVATECAP_RESERVED1 0x00000004l
1447
1448 #define DDRAWI_VPORTSTART 0x0001
1449 #define DDRAWI_VPORTSTOP 0x0002
1450 #define DDRAWI_VPORTUPDATE 0x0003
1451 #define DDRAWI_VPORTGETCOLOR 0x0001
1452 #define DDRAWI_VPORTSETCOLOR 0x0002
1453
1454 #ifndef __DDRAWI_INCLUDED__
1455 #define VIDMEM_ISLINEAR 0x00000001
1456 #define VIDMEM_ISRECTANGULAR 0x00000002
1457 #define VIDMEM_ISHEAP 0x00000004
1458 #define VIDMEM_ISNONLOCAL 0x00000008
1459 #define VIDMEM_ISWC 0x00000010
1460 #define VIDMEM_ISDISABLED 0x00000020
1461 #endif
1462
1463
1464 #ifdef __cplusplus
1465 } /* extern "C" */
1466 #endif
1467
1468 #endif /* GUID_DEFS_ONLY */
1469
1470 #endif /* __DD_INCLUDED__ */