blob: a3e676017a7ac848bc3ec2c9c05d096b2101fab7 [file] [log] [blame]
José Fonseca91af9232009-04-13 16:15:28 +01001#############################################################################
2#
3# Copyright 2008 Tungsten Graphics, Inc.
4#
5# This program is free software: you can redistribute it and/or modify it
6# under the terms of the GNU Lesser General Public License as published
7# by the Free Software Foundation, either version 3 of the License, or
8# (at your option) any later version.
9#
10# This program is distributed in the hope that it will be useful,
11# but WITHOUT ANY WARRANTY; without even the implied warranty of
12# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13# GNU Lesser General Public License for more details.
14#
15# You should have received a copy of the GNU Lesser General Public License
16# along with this program. If not, see <http://www.gnu.org/licenses/>.
17#
18#############################################################################
19
20"""ddraw.h"""
21
22from windows import *
23
24IDirectDraw = Interface("IDirectDraw", IUnknown)
25IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
26IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
27IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
28IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
29IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
30IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
31IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
32IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
33IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
34IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
35IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
36IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
37
38LPDIRECTDRAW = Pointer(IDirectDraw)
39LPDIRECTDRAW2 = Pointer(IDirectDraw2)
40LPDIRECTDRAW4 = Pointer(IDirectDraw4)
41LPDIRECTDRAW7 = Pointer(IDirectDraw7)
42LPDIRECTDRAWSURFACE = Pointer(IDirectDrawSurface)
43LPDIRECTDRAWSURFACE2 = Pointer(IDirectDrawSurface2)
44LPDIRECTDRAWSURFACE3 = Pointer(IDirectDrawSurface3)
45LPDIRECTDRAWSURFACE4 = Pointer(IDirectDrawSurface4)
46LPDIRECTDRAWSURFACE7 = Pointer(IDirectDrawSurface7)
47LPDIRECTDRAWPALETTE = Pointer(IDirectDrawPalette)
48LPDIRECTDRAWCLIPPER = Pointer(IDirectDrawClipper)
49LPDIRECTDRAWCOLORCONTROL = Pointer(IDirectDrawColorControl)
50LPDIRECTDRAWGAMMACONTROL = Pointer(IDirectDrawGammaControl)
51
52DDARGB = Struct("DDARGB", [
53 (BYTE, "blue"),
54 (BYTE, "green"),
55 (BYTE, "red"),
56 (BYTE, "alpha"),
57])
58
59LPDDARGB = Pointer(DDARGB)
60
61DDRGBA = Struct("DDRGBA", [
62 (BYTE, "red"),
63 (BYTE, "green"),
64 (BYTE, "blue"),
65 (BYTE, "alpha"),
66])
67LPDDRGBA = Pointer(DDRGBA)
68
69DDCOLORKEY = Struct("DDCOLORKEY", [
70 (DWORD, "dwColorSpaceLowValue"),
71 (DWORD, "dwColorSpaceHighValue"),
72])
73LPDDCOLORKEY = Pointer(DDCOLORKEY)
74
75DDBLTFX = Struct("DDBLTFX", [
76 (DWORD, "dwSize"),
77 (DWORD, "dwDDFX"),
78 (DWORD, "dwROP"),
79 (DWORD, "dwDDROP"),
80 (DWORD, "dwRotationAngle"),
81 (DWORD, "dwZBufferOpCode"),
82 (DWORD, "dwZBufferLow"),
83 (DWORD, "dwZBufferHigh"),
84 (DWORD, "dwZBufferBaseDest"),
85 (DWORD, "dwZDestConstBitDepth"),
86 (DWORD, "dwZDestConst"),
87 (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
88 (DWORD, "dwZSrcConstBitDepth"),
89 (DWORD, "dwZSrcConst"),
90 (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
91 (DWORD, "dwAlphaEdgeBlendBitDepth"),
92 (DWORD, "dwAlphaEdgeBlend"),
93 (DWORD, "dwReserved"),
94 (DWORD, "dwAlphaDestConstBitDepth"),
95 (DWORD, "dwAlphaDestConst"),
96 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
97 (DWORD, "dwAlphaSrcConstBitDepth"),
98 (DWORD, "dwAlphaSrcConst"),
99 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
100 (DWORD, "dwFillColor"),
101 (DWORD, "dwFillDepth"),
102 (DWORD, "dwFillPixel"),
103 (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
104 (DDCOLORKEY, "ddckDestColorkey"),
105 (DDCOLORKEY, "ddckSrcColorkey"),
106])
107LPDDBLTFX = Pointer(DDBLTFX)
108
109DDSCAPS = Struct("DDSCAPS", [
110 (DWORD, "dwCaps"),
111])
112LPDDSCAPS = Pointer(DDSCAPS)
113
114DDOSCAPS = Struct("DDOSCAPS", [
115 (DWORD, "dwCaps"),
116])
117LPDDOSCAPS = Pointer(DDOSCAPS)
118
119DDSCAPSEX = Struct("DDSCAPSEX", [
120 (DWORD, "dwCaps2"),
121 (DWORD, "dwCaps3"),
122 (DWORD, "dwCaps4"),
123])
124
125DDSCAPS2 = Struct("DDSCAPS2", [
126 (DWORD, "dwCaps"),
127 (DWORD, "dwCaps2"),
128 (DWORD, "dwCaps3"),
129 (DWORD, "dwCaps4"),
130])
131LPDDSCAPS2 = Pointer(DDSCAPS2)
132
133DDCAPS_DX1 = Struct("DDCAPS_DX1", [
134 (DWORD, "dwSize"),
135 (DWORD, "dwCaps"),
136 (DWORD, "dwCaps2"),
137 (DWORD, "dwCKeyCaps"),
138 (DWORD, "dwFXCaps"),
139 (DWORD, "dwFXAlphaCaps"),
140 (DWORD, "dwPalCaps"),
141 (DWORD, "dwSVCaps"),
142 (DWORD, "dwAlphaBltConstBitDepths"),
143 (DWORD, "dwAlphaBltPixelBitDepths"),
144 (DWORD, "dwAlphaBltSurfaceBitDepths"),
145 (DWORD, "dwAlphaOverlayConstBitDepths"),
146 (DWORD, "dwAlphaOverlayPixelBitDepths"),
147 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
148 (DWORD, "dwZBufferBitDepths"),
149 (DWORD, "dwVidMemTotal"),
150 (DWORD, "dwVidMemFree"),
151 (DWORD, "dwMaxVisibleOverlays"),
152 (DWORD, "dwCurrVisibleOverlays"),
153 (DWORD, "dwNumFourCCCodes"),
154 (DWORD, "dwAlignBoundarySrc"),
155 (DWORD, "dwAlignSizeSrc"),
156 (DWORD, "dwAlignBoundaryDest"),
157 (DWORD, "dwAlignSizeDest"),
158 (DWORD, "dwAlignStrideAlign"),
159 (DWORD, "dwRops[DD_ROP_SPACE]"),
160 (DDSCAPS, "ddsCaps"),
161 (DWORD, "dwMinOverlayStretch"),
162 (DWORD, "dwMaxOverlayStretch"),
163 (DWORD, "dwMinLiveVideoStretch"),
164 (DWORD, "dwMaxLiveVideoStretch"),
165 (DWORD, "dwMinHwCodecStretch"),
166 (DWORD, "dwMaxHwCodecStretch"),
167 (DWORD, "dwReserved1"),
168 (DWORD, "dwReserved2"),
169 (DWORD, "dwReserved3"),
170])
171LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
172
173DDCAPS_DX3 = Struct("DDCAPS_DX3", [
174 (DWORD, "dwSize"),
175 (DWORD, "dwCaps"),
176 (DWORD, "dwCaps2"),
177 (DWORD, "dwCKeyCaps"),
178 (DWORD, "dwFXCaps"),
179 (DWORD, "dwFXAlphaCaps"),
180 (DWORD, "dwPalCaps"),
181 (DWORD, "dwSVCaps"),
182 (DWORD, "dwAlphaBltConstBitDepths"),
183 (DWORD, "dwAlphaBltPixelBitDepths"),
184 (DWORD, "dwAlphaBltSurfaceBitDepths"),
185 (DWORD, "dwAlphaOverlayConstBitDepths"),
186 (DWORD, "dwAlphaOverlayPixelBitDepths"),
187 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
188 (DWORD, "dwZBufferBitDepths"),
189 (DWORD, "dwVidMemTotal"),
190 (DWORD, "dwVidMemFree"),
191 (DWORD, "dwMaxVisibleOverlays"),
192 (DWORD, "dwCurrVisibleOverlays"),
193 (DWORD, "dwNumFourCCCodes"),
194 (DWORD, "dwAlignBoundarySrc"),
195 (DWORD, "dwAlignSizeSrc"),
196 (DWORD, "dwAlignBoundaryDest"),
197 (DWORD, "dwAlignSizeDest"),
198 (DWORD, "dwAlignStrideAlign"),
199 (DWORD, "dwRops[DD_ROP_SPACE]"),
200 (DDSCAPS, "ddsCaps"),
201 (DWORD, "dwMinOverlayStretch"),
202 (DWORD, "dwMaxOverlayStretch"),
203 (DWORD, "dwMinLiveVideoStretch"),
204 (DWORD, "dwMaxLiveVideoStretch"),
205 (DWORD, "dwMinHwCodecStretch"),
206 (DWORD, "dwMaxHwCodecStretch"),
207 (DWORD, "dwReserved1"),
208 (DWORD, "dwReserved2"),
209 (DWORD, "dwReserved3"),
210 (DWORD, "dwSVBCaps"),
211 (DWORD, "dwSVBCKeyCaps"),
212 (DWORD, "dwSVBFXCaps"),
213 (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
214 (DWORD, "dwVSBCaps"),
215 (DWORD, "dwVSBCKeyCaps"),
216 (DWORD, "dwVSBFXCaps"),
217 (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
218 (DWORD, "dwSSBCaps"),
219 (DWORD, "dwSSBCKeyCaps"),
220 (DWORD, "dwSSBFXCaps"),
221 (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
222 (DWORD, "dwReserved4"),
223 (DWORD, "dwReserved5"),
224 (DWORD, "dwReserved6"),
225])
226LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
227
228DDCAPS_DX5 = Struct("DDCAPS_DX5", [
229 (DWORD, "dwSize"),
230 (DWORD, "dwCaps"),
231 (DWORD, "dwCaps2"),
232 (DWORD, "dwCKeyCaps"),
233 (DWORD, "dwFXCaps"),
234 (DWORD, "dwFXAlphaCaps"),
235 (DWORD, "dwPalCaps"),
236 (DWORD, "dwSVCaps"),
237 (DWORD, "dwAlphaBltConstBitDepths"),
238 (DWORD, "dwAlphaBltPixelBitDepths"),
239 (DWORD, "dwAlphaBltSurfaceBitDepths"),
240 (DWORD, "dwAlphaOverlayConstBitDepths"),
241 (DWORD, "dwAlphaOverlayPixelBitDepths"),
242 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
243 (DWORD, "dwZBufferBitDepths"),
244 (DWORD, "dwVidMemTotal"),
245 (DWORD, "dwVidMemFree"),
246 (DWORD, "dwMaxVisibleOverlays"),
247 (DWORD, "dwCurrVisibleOverlays"),
248 (DWORD, "dwNumFourCCCodes"),
249 (DWORD, "dwAlignBoundarySrc"),
250 (DWORD, "dwAlignSizeSrc"),
251 (DWORD, "dwAlignBoundaryDest"),
252 (DWORD, "dwAlignSizeDest"),
253 (DWORD, "dwAlignStrideAlign"),
254 (DWORD, "dwRops[DD_ROP_SPACE]"),
255 (DDSCAPS, "ddsCaps"),
256 (DWORD, "dwMinOverlayStretch"),
257 (DWORD, "dwMaxOverlayStretch"),
258 (DWORD, "dwMinLiveVideoStretch"),
259 (DWORD, "dwMaxLiveVideoStretch"),
260 (DWORD, "dwMinHwCodecStretch"),
261 (DWORD, "dwMaxHwCodecStretch"),
262 (DWORD, "dwReserved1"),
263 (DWORD, "dwReserved2"),
264 (DWORD, "dwReserved3"),
265 (DWORD, "dwSVBCaps"),
266 (DWORD, "dwSVBCKeyCaps"),
267 (DWORD, "dwSVBFXCaps"),
268 (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
269 (DWORD, "dwVSBCaps"),
270 (DWORD, "dwVSBCKeyCaps"),
271 (DWORD, "dwVSBFXCaps"),
272 (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
273 (DWORD, "dwSSBCaps"),
274 (DWORD, "dwSSBCKeyCaps"),
275 (DWORD, "dwSSBFXCaps"),
276 (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
277 (DWORD, "dwMaxVideoPorts"),
278 (DWORD, "dwCurrVideoPorts"),
279 (DWORD, "dwSVBCaps2"),
280 (DWORD, "dwNLVBCaps"),
281 (DWORD, "dwNLVBCaps2"),
282 (DWORD, "dwNLVBCKeyCaps"),
283 (DWORD, "dwNLVBFXCaps"),
284 (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
285])
286LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
287
288DDCAPS_DX6 = Struct("DDCAPS_DX6", [
289 (DWORD, "dwSize"),
290 (DWORD, "dwCaps"),
291 (DWORD, "dwCaps2"),
292 (DWORD, "dwCKeyCaps"),
293 (DWORD, "dwFXCaps"),
294 (DWORD, "dwFXAlphaCaps"),
295 (DWORD, "dwPalCaps"),
296 (DWORD, "dwSVCaps"),
297 (DWORD, "dwAlphaBltConstBitDepths"),
298 (DWORD, "dwAlphaBltPixelBitDepths"),
299 (DWORD, "dwAlphaBltSurfaceBitDepths"),
300 (DWORD, "dwAlphaOverlayConstBitDepths"),
301 (DWORD, "dwAlphaOverlayPixelBitDepths"),
302 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
303 (DWORD, "dwZBufferBitDepths"),
304 (DWORD, "dwVidMemTotal"),
305 (DWORD, "dwVidMemFree"),
306 (DWORD, "dwMaxVisibleOverlays"),
307 (DWORD, "dwCurrVisibleOverlays"),
308 (DWORD, "dwNumFourCCCodes"),
309 (DWORD, "dwAlignBoundarySrc"),
310 (DWORD, "dwAlignSizeSrc"),
311 (DWORD, "dwAlignBoundaryDest"),
312 (DWORD, "dwAlignSizeDest"),
313 (DWORD, "dwAlignStrideAlign"),
314 (DWORD, "dwRops[DD_ROP_SPACE]"),
315 (DDSCAPS, "ddsOldCaps"),
316 (DWORD, "dwMinOverlayStretch"),
317 (DWORD, "dwMaxOverlayStretch"),
318 (DWORD, "dwMinLiveVideoStretch"),
319 (DWORD, "dwMaxLiveVideoStretch"),
320 (DWORD, "dwMinHwCodecStretch"),
321 (DWORD, "dwMaxHwCodecStretch"),
322 (DWORD, "dwReserved1"),
323 (DWORD, "dwReserved2"),
324 (DWORD, "dwReserved3"),
325 (DWORD, "dwSVBCaps"),
326 (DWORD, "dwSVBCKeyCaps"),
327 (DWORD, "dwSVBFXCaps"),
328 (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
329 (DWORD, "dwVSBCaps"),
330 (DWORD, "dwVSBCKeyCaps"),
331 (DWORD, "dwVSBFXCaps"),
332 (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
333 (DWORD, "dwSSBCaps"),
334 (DWORD, "dwSSBCKeyCaps"),
335 (DWORD, "dwSSBFXCaps"),
336 (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
337 (DWORD, "dwMaxVideoPorts"),
338 (DWORD, "dwCurrVideoPorts"),
339 (DWORD, "dwSVBCaps2"),
340 (DWORD, "dwNLVBCaps"),
341 (DWORD, "dwNLVBCaps2"),
342 (DWORD, "dwNLVBCKeyCaps"),
343 (DWORD, "dwNLVBFXCaps"),
344 (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
345 (DDSCAPS2, "ddsCaps"),
346])
347LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
348
349DDCAPS_DX7 = Struct("DDCAPS_DX7", [
350 (DWORD, "dwSize"),
351 (DWORD, "dwCaps"),
352 (DWORD, "dwCaps2"),
353 (DWORD, "dwCKeyCaps"),
354 (DWORD, "dwFXCaps"),
355 (DWORD, "dwFXAlphaCaps"),
356 (DWORD, "dwPalCaps"),
357 (DWORD, "dwSVCaps"),
358 (DWORD, "dwAlphaBltConstBitDepths"),
359 (DWORD, "dwAlphaBltPixelBitDepths"),
360 (DWORD, "dwAlphaBltSurfaceBitDepths"),
361 (DWORD, "dwAlphaOverlayConstBitDepths"),
362 (DWORD, "dwAlphaOverlayPixelBitDepths"),
363 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
364 (DWORD, "dwZBufferBitDepths"),
365 (DWORD, "dwVidMemTotal"),
366 (DWORD, "dwVidMemFree"),
367 (DWORD, "dwMaxVisibleOverlays"),
368 (DWORD, "dwCurrVisibleOverlays"),
369 (DWORD, "dwNumFourCCCodes"),
370 (DWORD, "dwAlignBoundarySrc"),
371 (DWORD, "dwAlignSizeSrc"),
372 (DWORD, "dwAlignBoundaryDest"),
373 (DWORD, "dwAlignSizeDest"),
374 (DWORD, "dwAlignStrideAlign"),
375 (DWORD, "dwRops[DD_ROP_SPACE]"),
376 (DDSCAPS, "ddsOldCaps"),
377 (DWORD, "dwMinOverlayStretch"),
378 (DWORD, "dwMaxOverlayStretch"),
379 (DWORD, "dwMinLiveVideoStretch"),
380 (DWORD, "dwMaxLiveVideoStretch"),
381 (DWORD, "dwMinHwCodecStretch"),
382 (DWORD, "dwMaxHwCodecStretch"),
383 (DWORD, "dwReserved1"),
384 (DWORD, "dwReserved2"),
385 (DWORD, "dwReserved3"),
386 (DWORD, "dwSVBCaps"),
387 (DWORD, "dwSVBCKeyCaps"),
388 (DWORD, "dwSVBFXCaps"),
389 (DWORD, "dwSVBRops[DD_ROP_SPACE]"),
390 (DWORD, "dwVSBCaps"),
391 (DWORD, "dwVSBCKeyCaps"),
392 (DWORD, "dwVSBFXCaps"),
393 (DWORD, "dwVSBRops[DD_ROP_SPACE]"),
394 (DWORD, "dwSSBCaps"),
395 (DWORD, "dwSSBCKeyCaps"),
396 (DWORD, "dwSSBFXCaps"),
397 (DWORD, "dwSSBRops[DD_ROP_SPACE]"),
398 (DWORD, "dwMaxVideoPorts"),
399 (DWORD, "dwCurrVideoPorts"),
400 (DWORD, "dwSVBCaps2"),
401 (DWORD, "dwNLVBCaps"),
402 (DWORD, "dwNLVBCaps2"),
403 (DWORD, "dwNLVBCKeyCaps"),
404 (DWORD, "dwNLVBFXCaps"),
405 (DWORD, "dwNLVBRops[DD_ROP_SPACE]"),
406 (DDSCAPS2, "ddsCaps"),
407])
408LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
409DDCAPS = DDCAPS_DX7
410LPDDCAPS = Pointer(DDCAPS)
411
412DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
413 (DWORD, "dwSize"),
414 (DWORD, "dwFlags"),
415 (DWORD, "dwFourCC"),
416 (DWORD, "dwRGBBitCount"),
417 (DWORD, "dwYUVBitCount"),
418 (DWORD, "dwZBufferBitDepth"),
419 (DWORD, "dwAlphaBitDepth"),
420 (DWORD, "dwLuminanceBitCount"),
421 (DWORD, "dwBumpBitCount"),
422 (DWORD, "dwPrivateFormatBitCount"),
423 (DWORD, "dwRBitMask"),
424 (DWORD, "dwYBitMask"),
425 (DWORD, "dwStencilBitDepth"),
426 (DWORD, "dwLuminanceBitMask"),
427 (DWORD, "dwBumpDuBitMask"),
428 (DWORD, "dwOperations"),
429 (DWORD, "dwGBitMask"),
430 (DWORD, "dwUBitMask"),
431 (DWORD, "dwZBitMask"),
432 (DWORD, "dwBumpDvBitMask"),
433 (WORD, "MultiSampleCaps.wFlipMSTypes"),
434 (WORD, "MultiSampleCaps.wBltMSTypes"),
435 (DWORD, "dwBBitMask"),
436 (DWORD, "dwVBitMask"),
437 (DWORD, "dwStencilBitMask"),
438 (DWORD, "dwBumpLuminanceBitMask"),
439 (DWORD, "dwRGBAlphaBitMask"),
440 (DWORD, "dwYUVAlphaBitMask"),
441 (DWORD, "dwLuminanceAlphaBitMask"),
442 (DWORD, "dwRGBZBitMask"),
443 (DWORD, "dwYUVZBitMask"),
444])
445LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
446
447DDOVERLAYFX = Struct("DDOVERLAYFX", [
448 (DWORD, "dwSize"),
449 (DWORD, "dwAlphaEdgeBlendBitDepth"),
450 (DWORD, "dwAlphaEdgeBlend"),
451 (DWORD, "dwReserved"),
452 (DWORD, "dwAlphaDestConstBitDepth"),
453 (DWORD, "dwAlphaDestConst"),
454 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
455 (DWORD, "dwAlphaSrcConstBitDepth"),
456 (DWORD, "dwAlphaSrcConst"),
457 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
458 (DDCOLORKEY, "dckDestColorkey"),
459 (DDCOLORKEY, "dckSrcColorkey"),
460 (DWORD, "dwDDFX"),
461 (DWORD, "dwFlags"),
462])
463LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
464
465DDBLTBATCH = Struct("DDBLTBATCH", [
466 (LPRECT, "lprDest"),
467 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
468 (LPRECT, "lprSrc"),
469 (DWORD, "dwFlags"),
470 (LPDDBLTFX, "lpDDBltFx"),
471])
472LPDDBLTBATCH = Pointer(DDBLTBATCH)
473
474DDGAMMARAMP = Struct("DDGAMMARAMP", [
475 (WORD, "red[256]"),
476 (WORD, "green[256]"),
477 (WORD, "blue[256]"),
478])
479LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
480
481DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
482 (String, "szDriver"),
483 (String, "szDescription"),
484 (LARGE_INTEGER, "liDriverVersion"),
485 (DWORD, "dwVendorId"),
486 (DWORD, "dwDeviceId"),
487 (DWORD, "dwSubSysId"),
488 (DWORD, "dwRevision"),
489 (GUID, "guidDeviceIdentifier"),
490])
491LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
492
493DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
494 (String, "szDriver[MAX_DDDEVICEID_STRING]"),
495 (String, "szDescription[MAX_DDDEVICEID_STRING]"),
496 (LARGE_INTEGER, "liDriverVersion"),
497 (DWORD, "dwVendorId"),
498 (DWORD, "dwDeviceId"),
499 (DWORD, "dwSubSysId"),
500 (DWORD, "dwRevision"),
501 (GUID, "guidDeviceIdentifier"),
502 (DWORD, "dwWHQLLevel"),
503])
504LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
505
506LPCLIPPERCALLBACK = Pointer(Function("DWORD", "CLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")]))
507LPSURFACESTREAMINGCALLBACK = Pointer(Function("DWORD", "SURFACESTREAMINGCALLBACK", [DWORD]))
508
509DDSURFACEDESC = Struct("DDSURFACEDESC", [
510 (DWORD, "dwSize"),
511 (DWORD, "dwFlags"),
512 (DWORD, "dwHeight"),
513 (DWORD, "dwWidth"),
514 (LONG, "lPitch"),
515 (DWORD, "dwLinearSize"),
516 (DWORD, "dwBackBufferCount"),
517 (DWORD, "dwMipMapCount"),
518 (DWORD, "dwZBufferBitDepth"),
519 (DWORD, "dwRefreshRate"),
520 (DWORD, "dwAlphaBitDepth"),
521 (DWORD, "dwReserved"),
522 (LPVOID, "lpSurface"),
523 (DDCOLORKEY, "ddckCKDestOverlay"),
524 (DDCOLORKEY, "ddckCKDestBlt"),
525 (DDCOLORKEY, "ddckCKSrcOverlay"),
526 (DDCOLORKEY, "ddckCKSrcBlt"),
527 (DDPIXELFORMAT, "ddpfPixelFormat"),
528 (DDSCAPS, "ddsCaps"),
529])
530LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
531
532DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
533 (DWORD, "dwSize"),
534 (DWORD, "dwFlags"),
535 (DWORD, "dwHeight"),
536 (DWORD, "dwWidth"),
537 (LONG, "lPitch"),
538 (DWORD, "dwLinearSize"),
539 (DWORD, "dwBackBufferCount"),
540 (DWORD, "dwDepth"),
541 (DWORD, "dwMipMapCount"),
542 (DWORD, "dwRefreshRate"),
543 (DWORD, "dwSrcVBHandle"),
544 (DWORD, "dwAlphaBitDepth"),
545 (DWORD, "dwReserved"),
546 (LPVOID, "lpSurface"),
547 (DDCOLORKEY, "ddckCKDestOverlay"),
548 (DWORD, "dwEmptyFaceColor"),
549 (DDCOLORKEY, "ddckCKDestBlt"),
550 (DDCOLORKEY, "ddckCKSrcOverlay"),
551 (DDCOLORKEY, "ddckCKSrcBlt"),
552 (DDPIXELFORMAT, "ddpfPixelFormat"),
553 (DWORD, "dwFVF"),
554 (DDSCAPS2, "ddsCaps"),
555 (DWORD, "dwTextureStage"),
556])
557LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
558
559DDSD = Flags(DWORD, [
560 "DDSD_CAPS",
561 "DDSD_HEIGHT",
562 "DDSD_WIDTH",
563 "DDSD_PITCH",
564 "DDSD_BACKBUFFERCOUNT",
565 "DDSD_ZBUFFERBITDEPTH",
566 "DDSD_ALPHABITDEPTH",
567 "DDSD_LPSURFACE",
568 "DDSD_PIXELFORMAT",
569 "DDSD_CKDESTOVERLAY",
570 "DDSD_CKDESTBLT",
571 "DDSD_CKSRCOVERLAY",
572 "DDSD_CKSRCBLT",
573 "DDSD_MIPMAPCOUNT",
574 "DDSD_REFRESHRATE",
575 "DDSD_LINEARSIZE",
576 "DDSD_TEXTURESTAGE",
577 "DDSD_FVF",
578 "DDSD_SRCVBHANDLE",
579 "DDSD_DEPTH",
580 "DDSD_ALL",
581])
582
583DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
584 (DWORD, "dwSize"),
585 (DWORD, "dwFlags"),
586 (DDSCAPS2, "ddSCaps"),
587 (DDOSCAPS, "ddOSCaps"),
588 (GUID, "guid"),
589 (DWORD, "dwCompressionRatio"),
590])
591
592DDSD = Flags(DWORD, [
593 "DDOSD_GUID",
594 "DDOSD_COMPRESSION_RATIO",
595 "DDOSD_SCAPS",
596 "DDOSD_OSCAPS",
597 "DDOSD_ALL",
598])
599
600DDOSDCAPS = Flags(DWORD, [
601 "DDOSDCAPS_OPTCOMPRESSED",
602 "DDOSDCAPS_OPTREORDERED",
603 "DDOSDCAPS_MONOLITHICMIPMAP",
604 "DDOSDCAPS_VALIDSCAPS",
605 "DDOSDCAPS_VALIDOSCAPS",
606])
607
608DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
609 (DWORD, "dwSize"),
610 (DWORD, "dwFlags"),
611 (LONG, "lBrightness"),
612 (LONG, "lContrast"),
613 (LONG, "lHue"),
614 (LONG, "lSaturation"),
615 (LONG, "lSharpness"),
616 (LONG, "lGamma"),
617 (LONG, "lColorEnable"),
618 (DWORD, "dwReserved1"),
619])
620LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
621
622DDCOLOR = Flags(DWORD, [
623 "DDCOLOR_BRIGHTNESS",
624 "DDCOLOR_CONTRAST",
625 "DDCOLOR_HUE",
626 "DDCOLOR_SATURATION",
627 "DDCOLOR_SHARPNESS",
628 "DDCOLOR_GAMMA",
629 "DDCOLOR_COLORENABLE",
630])
631
632DDSCAPS = Flags(DWORD, [
633 "DDSCAPS_RESERVED1",
634 "DDSCAPS_ALPHA",
635 "DDSCAPS_BACKBUFFER",
636 "DDSCAPS_COMPLEX",
637 "DDSCAPS_FLIP",
638 "DDSCAPS_FRONTBUFFER",
639 "DDSCAPS_OFFSCREENPLAIN",
640 "DDSCAPS_OVERLAY",
641 "DDSCAPS_PALETTE",
642 "DDSCAPS_PRIMARYSURFACE",
643 "DDSCAPS_RESERVED3",
644 "DDSCAPS_PRIMARYSURFACELEFT",
645 "DDSCAPS_SYSTEMMEMORY",
646 "DDSCAPS_TEXTURE",
647 "DDSCAPS_3DDEVICE",
648 "DDSCAPS_VIDEOMEMORY",
649 "DDSCAPS_VISIBLE",
650 "DDSCAPS_WRITEONLY",
651 "DDSCAPS_ZBUFFER",
652 "DDSCAPS_OWNDC",
653 "DDSCAPS_LIVEVIDEO",
654 "DDSCAPS_HWCODEC",
655 "DDSCAPS_MODEX",
656 "DDSCAPS_MIPMAP",
657 "DDSCAPS_RESERVED2",
658 "DDSCAPS_ALLOCONLOAD",
659 "DDSCAPS_VIDEOPORT",
660 "DDSCAPS_LOCALVIDMEM",
661 "DDSCAPS_NONLOCALVIDMEM",
662 "DDSCAPS_STANDARDVGAMODE",
663 "DDSCAPS_OPTIMIZED",
664])
665DDCAPS2 = Flags(DWORD, [
666 "DDSCAPS2_RESERVED4",
667 "DDSCAPS2_HARDWAREDEINTERLACE",
668 "DDSCAPS2_HINTDYNAMIC",
669 "DDSCAPS2_HINTSTATIC",
670 "DDSCAPS2_TEXTUREMANAGE",
671 "DDSCAPS2_RESERVED1",
672 "DDSCAPS2_RESERVED2",
673 "DDSCAPS2_OPAQUE",
674 "DDSCAPS2_HINTANTIALIASING",
675 "DDSCAPS2_CUBEMAP",
676 "DDSCAPS2_CUBEMAP_ALLFACES",
677 "DDSCAPS2_CUBEMAP_POSITIVEX",
678 "DDSCAPS2_CUBEMAP_NEGATIVEX",
679 "DDSCAPS2_CUBEMAP_POSITIVEY",
680 "DDSCAPS2_CUBEMAP_NEGATIVEY",
681 "DDSCAPS2_CUBEMAP_POSITIVEZ",
682 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
683 "DDSCAPS2_MIPMAPSUBLEVEL",
684 "DDSCAPS2_D3DTEXTUREMANAGE",
685 "DDSCAPS2_DONOTPERSIST",
686 "DDSCAPS2_STEREOSURFACELEFT",
687 "DDSCAPS2_VOLUME",
688 "DDSCAPS2_NOTUSERLOCKABLE",
689 "DDSCAPS2_POINTS",
690 "DDSCAPS2_RTPATCHES",
691 "DDSCAPS2_NPATCHES",
692 "DDSCAPS2_RESERVED3",
693 "DDSCAPS2_DISCARDBACKBUFFER",
694 "DDSCAPS2_ENABLEALPHACHANNEL",
695 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
696 "DDSCAPS2_ADDITIONALPRIMARY",
697])
698DDSCAPS3 = Flags(DWORD, [
699 "DDSCAPS3_MULTISAMPLE_MASK",
700 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
701 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
702 "DDSCAPS3_RESERVED1",
703 "DDSCAPS3_RESERVED2",
704 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
705 "DDSCAPS3_AUTOGENMIPMAP",
706 "DDSCAPS3_DMAP",
707 "DDSCAPS3_CREATESHAREDRESOURCE",
708 "DDSCAPS3_READONLYRESOURCE",
709 "DDSCAPS3_OPENSHAREDRESOURCE",
710])
711
712DDCAPS = Flags(DWORD, [
713 "DDCAPS_3D",
714 "DDCAPS_ALIGNBOUNDARYDEST",
715 "DDCAPS_ALIGNSIZEDEST",
716 "DDCAPS_ALIGNBOUNDARYSRC",
717 "DDCAPS_ALIGNSIZESRC",
718 "DDCAPS_ALIGNSTRIDE",
719 "DDCAPS_BLT",
720 "DDCAPS_BLTQUEUE",
721 "DDCAPS_BLTFOURCC",
722 "DDCAPS_BLTSTRETCH",
723 "DDCAPS_GDI",
724 "DDCAPS_OVERLAY",
725 "DDCAPS_OVERLAYCANTCLIP",
726 "DDCAPS_OVERLAYFOURCC",
727 "DDCAPS_OVERLAYSTRETCH",
728 "DDCAPS_PALETTE",
729 "DDCAPS_PALETTEVSYNC",
730 "DDCAPS_READSCANLINE",
731 "DDCAPS_RESERVED1",
732 "DDCAPS_VBI",
733 "DDCAPS_ZBLTS",
734 "DDCAPS_ZOVERLAYS",
735 "DDCAPS_COLORKEY",
736 "DDCAPS_ALPHA",
737 "DDCAPS_COLORKEYHWASSIST",
738 "DDCAPS_NOHARDWARE",
739 "DDCAPS_BLTCOLORFILL",
740 "DDCAPS_BANKSWITCHED",
741 "DDCAPS_BLTDEPTHFILL",
742 "DDCAPS_CANCLIP",
743 "DDCAPS_CANCLIPSTRETCHED",
744 "DDCAPS_CANBLTSYSMEM",
745])
746
747DDCAPS2 = Flags(DWORD, [
748 "DDCAPS2_CERTIFIED",
749 "DDCAPS2_NO2DDURING3DSCENE",
750 "DDCAPS2_VIDEOPORT",
751 "DDCAPS2_AUTOFLIPOVERLAY",
752 "DDCAPS2_CANBOBINTERLEAVED",
753 "DDCAPS2_CANBOBNONINTERLEAVED",
754 "DDCAPS2_COLORCONTROLOVERLAY",
755 "DDCAPS2_COLORCONTROLPRIMARY",
756 "DDCAPS2_CANDROPZ16BIT",
757 "DDCAPS2_NONLOCALVIDMEM",
758 "DDCAPS2_NONLOCALVIDMEMCAPS",
759 "DDCAPS2_NOPAGELOCKREQUIRED",
760 "DDCAPS2_WIDESURFACES",
761 "DDCAPS2_CANFLIPODDEVEN",
762 "DDCAPS2_CANBOBHARDWARE",
763 "DDCAPS2_COPYFOURCC",
764 "DDCAPS2_PRIMARYGAMMA",
765 "DDCAPS2_CANRENDERWINDOWED",
766 "DDCAPS2_CANCALIBRATEGAMMA",
767 "DDCAPS2_FLIPINTERVAL",
768 "DDCAPS2_FLIPNOVSYNC",
769 "DDCAPS2_CANMANAGETEXTURE",
770 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
771 "DDCAPS2_STEREO",
772 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
773 "DDCAPS2_RESERVED1",
774 "DDCAPS2_CANMANAGERESOURCE",
775 "DDCAPS2_DYNAMICTEXTURES",
776 "DDCAPS2_CANAUTOGENMIPMAP",
777 "DDCAPS2_CANSHARERESOURCE",
778])
779
780DDFXALPHACAPS = Flags(DWORD, [
781 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
782 "DDFXALPHACAPS_BLTALPHAPIXELS",
783 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
784 "DDFXALPHACAPS_BLTALPHASURFACES",
785 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
786 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
787 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
788 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
789 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
790 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
791])
792
793DDFXCAPS = Flags(DWORD, [
794 "DDFXCAPS_BLTARITHSTRETCHY",
795 "DDFXCAPS_BLTARITHSTRETCHYN",
796 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
797 "DDFXCAPS_BLTMIRRORUPDOWN",
798 "DDFXCAPS_BLTROTATION",
799 "DDFXCAPS_BLTROTATION90",
800 "DDFXCAPS_BLTSHRINKX",
801 "DDFXCAPS_BLTSHRINKXN",
802 "DDFXCAPS_BLTSHRINKY",
803 "DDFXCAPS_BLTSHRINKYN",
804 "DDFXCAPS_BLTSTRETCHX",
805 "DDFXCAPS_BLTSTRETCHXN",
806 "DDFXCAPS_BLTSTRETCHY",
807 "DDFXCAPS_BLTSTRETCHYN",
808 "DDFXCAPS_OVERLAYARITHSTRETCHY",
809 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
810 "DDFXCAPS_OVERLAYSHRINKX",
811 "DDFXCAPS_OVERLAYSHRINKXN",
812 "DDFXCAPS_OVERLAYSHRINKY",
813 "DDFXCAPS_OVERLAYSHRINKYN",
814 "DDFXCAPS_OVERLAYSTRETCHX",
815 "DDFXCAPS_OVERLAYSTRETCHXN",
816 "DDFXCAPS_OVERLAYSTRETCHY",
817 "DDFXCAPS_OVERLAYSTRETCHYN",
818 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
819 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
820 "DDFXCAPS_OVERLAYDEINTERLACE",
821 "DDFXCAPS_BLTALPHA",
822 "DDFXCAPS_BLTFILTER",
823 "DDFXCAPS_OVERLAYALPHA",
824 "DDFXCAPS_OVERLAYFILTER",
825])
826
827DDSVCAPS = Flags(DWORD, [
828 "DDSVCAPS_RESERVED1",
829 "DDSVCAPS_RESERVED2",
830 "DDSVCAPS_RESERVED3",
831 "DDSVCAPS_RESERVED4",
832 "DDSVCAPS_STEREOSEQUENTIAL",
833])
834
835DDPCAPS = Flags(DWORD, [
836 "DDPCAPS_4BIT",
837 "DDPCAPS_8BITENTRIES",
838 "DDPCAPS_8BIT",
839 "DDPCAPS_INITIALIZE",
840 "DDPCAPS_PRIMARYSURFACE",
841 "DDPCAPS_PRIMARYSURFACELEFT",
842 "DDPCAPS_ALLOW256",
843 "DDPCAPS_VSYNC",
844 "DDPCAPS_1BIT",
845 "DDPCAPS_2BIT",
846 "DDPCAPS_ALPHA",
847])
848
849DDSPD = Flags(DWORD, [
850 "DDSPD_IUNKNOWNPOINTER",
851 "DDSPD_VOLATILE",
852])
853
854DDBD = Flags(DWORD, [
855 "DDBD_1",
856 "DDBD_2",
857 "DDBD_4",
858 "DDBD_8",
859 "DDBD_16",
860 "DDBD_24",
861 "DDBD_32",
862])
863
864DDCKEY = Flags(DWORD, [
865 "DDCKEY_COLORSPACE",
866 "DDCKEY_DESTBLT",
867 "DDCKEY_DESTOVERLAY",
868 "DDCKEY_SRCBLT",
869 "DDCKEY_SRCOVERLAY",
870])
871
872DDCKEYCAPS = Flags(DWORD, [
873 "DDCKEYCAPS_DESTBLT",
874 "DDCKEYCAPS_DESTBLTCLRSPACE",
875 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
876 "DDCKEYCAPS_DESTBLTYUV",
877 "DDCKEYCAPS_DESTOVERLAY",
878 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
879 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
880 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
881 "DDCKEYCAPS_DESTOVERLAYYUV",
882 "DDCKEYCAPS_SRCBLT",
883 "DDCKEYCAPS_SRCBLTCLRSPACE",
884 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
885 "DDCKEYCAPS_SRCBLTYUV",
886 "DDCKEYCAPS_SRCOVERLAY",
887 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
888 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
889 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
890 "DDCKEYCAPS_SRCOVERLAYYUV",
891 "DDCKEYCAPS_NOCOSTOVERLAY",
892])
893
894DDPF = Flags(DWORD, [
895 "DDPF_ALPHAPIXELS",
896 "DDPF_ALPHA",
897 "DDPF_FOURCC",
898 "DDPF_PALETTEINDEXED4",
899 "DDPF_PALETTEINDEXEDTO8",
900 "DDPF_PALETTEINDEXED8",
901 "DDPF_RGB",
902 "DDPF_COMPRESSED",
903 "DDPF_RGBTOYUV",
904 "DDPF_YUV",
905 "DDPF_ZBUFFER",
906 "DDPF_PALETTEINDEXED1",
907 "DDPF_PALETTEINDEXED2",
908 "DDPF_ZPIXELS",
909 "DDPF_STENCILBUFFER",
910 "DDPF_ALPHAPREMULT",
911 "DDPF_LUMINANCE",
912 "DDPF_BUMPLUMINANCE",
913 "DDPF_BUMPDUDV",
914])
915
916DDENUMSURFACES = Flags(DWORD, [
917 "DDENUMSURFACES_ALL",
918 "DDENUMSURFACES_MATCH",
919 "DDENUMSURFACES_NOMATCH",
920 "DDENUMSURFACES_CANBECREATED",
921 "DDENUMSURFACES_DOESEXIST",
922])
923
924DDSDM = Flags(DWORD, [
925 "DDSDM_STANDARDVGAMODE",
926])
927
928DDEDM = Flags(DWORD, [
929 "DDEDM_REFRESHRATES",
930 "DDEDM_STANDARDVGAMODES",
931])
932
933DDSCL = Flags(DWORD, [
934 "DDSCL_FULLSCREEN",
935 "DDSCL_ALLOWREBOOT",
936 "DDSCL_NOWINDOWCHANGES",
937 "DDSCL_NORMAL",
938 "DDSCL_EXCLUSIVE",
939 "DDSCL_ALLOWMODEX",
940 "DDSCL_SETFOCUSWINDOW",
941 "DDSCL_SETDEVICEWINDOW",
942 "DDSCL_CREATEDEVICEWINDOW",
943 "DDSCL_MULTITHREADED",
944 "DDSCL_FPUSETUP",
945 "DDSCL_FPUPRESERVE",
946])
947
948DDBLT = Flags(DWORD, [
949 "DDBLT_ALPHADEST",
950 "DDBLT_ALPHADESTCONSTOVERRIDE",
951 "DDBLT_ALPHADESTNEG",
952 "DDBLT_ALPHADESTSURFACEOVERRIDE",
953 "DDBLT_ALPHAEDGEBLEND",
954 "DDBLT_ALPHASRC",
955 "DDBLT_ALPHASRCCONSTOVERRIDE",
956 "DDBLT_ALPHASRCNEG",
957 "DDBLT_ALPHASRCSURFACEOVERRIDE",
958 "DDBLT_ASYNC",
959 "DDBLT_COLORFILL",
960 "DDBLT_DDFX",
961 "DDBLT_DDROPS",
962 "DDBLT_KEYDEST",
963 "DDBLT_KEYDESTOVERRIDE",
964 "DDBLT_KEYSRC",
965 "DDBLT_KEYSRCOVERRIDE",
966 "DDBLT_ROP",
967 "DDBLT_ROTATIONANGLE",
968 "DDBLT_ZBUFFER",
969 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
970 "DDBLT_ZBUFFERDESTOVERRIDE",
971 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
972 "DDBLT_ZBUFFERSRCOVERRIDE",
973 "DDBLT_WAIT",
974 "DDBLT_DEPTHFILL",
975 "DDBLT_DONOTWAIT",
976 "DDBLT_PRESENTATION",
977 "DDBLT_LAST_PRESENTATION",
978 "DDBLT_EXTENDED_FLAGS",
979 "DDBLT_EXTENDED_LINEAR_CONTENT",
980])
981
982DDBLTFAST = Flags(DWORD, [
983 "DDBLTFAST_NOCOLORKEY",
984 "DDBLTFAST_SRCCOLORKEY",
985 "DDBLTFAST_DESTCOLORKEY",
986 "DDBLTFAST_WAIT",
987 "DDBLTFAST_DONOTWAIT",
988])
989
990DDFLIP = Flags(DWORD, [
991 "DDFLIP_WAIT",
992 "DDFLIP_EVEN",
993 "DDFLIP_ODD",
994 "DDFLIP_NOVSYNC",
995 "DDFLIP_INTERVAL2",
996 "DDFLIP_INTERVAL3",
997 "DDFLIP_INTERVAL4",
998 "DDFLIP_STEREO",
999 "DDFLIP_DONOTWAIT",
1000])
1001
1002DDOVER = Flags(DWORD, [
1003 "DDOVER_ALPHADEST",
1004 "DDOVER_ALPHADESTCONSTOVERRIDE",
1005 "DDOVER_ALPHADESTNEG",
1006 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1007 "DDOVER_ALPHAEDGEBLEND",
1008 "DDOVER_ALPHASRC",
1009 "DDOVER_ALPHASRCCONSTOVERRIDE",
1010 "DDOVER_ALPHASRCNEG",
1011 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1012 "DDOVER_HIDE",
1013 "DDOVER_KEYDEST",
1014 "DDOVER_KEYDESTOVERRIDE",
1015 "DDOVER_KEYSRC",
1016 "DDOVER_KEYSRCOVERRIDE",
1017 "DDOVER_SHOW",
1018 "DDOVER_ADDDIRTYRECT",
1019 "DDOVER_REFRESHDIRTYRECTS",
1020 "DDOVER_REFRESHALL",
1021 "DDOVER_DDFX",
1022 "DDOVER_AUTOFLIP",
1023 "DDOVER_BOB",
1024 "DDOVER_OVERRIDEBOBWEAVE",
1025 "DDOVER_INTERLEAVED",
1026 "DDOVER_BOBHARDWARE",
1027 "DDOVER_ARGBSCALEFACTORS",
1028 "DDOVER_DEGRADEARGBSCALING",
1029])
1030
1031DDSETSURFACEDESC = Flags(DWORD, [
1032 #"DDSETSURFACEDESC_RECREATEDC",
1033 #"DDSETSURFACEDESC_PRESERVEDC",
1034])
1035
1036DDLOCK = Flags(DWORD, [
1037 "DDLOCK_SURFACEMEMORYPTR",
1038 "DDLOCK_WAIT",
1039 "DDLOCK_EVENT",
1040 "DDLOCK_READONLY",
1041 "DDLOCK_WRITEONLY",
1042 "DDLOCK_NOSYSLOCK",
1043 "DDLOCK_NOOVERWRITE",
1044 "DDLOCK_DISCARDCONTENTS",
1045 "DDLOCK_OKTOSWAP",
1046 "DDLOCK_DONOTWAIT",
1047 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1048 "DDLOCK_NODIRTYUPDATE",
1049])
1050
1051DDBLTFX = Flags(DWORD, [
1052 "DDBLTFX_ARITHSTRETCHY",
1053 "DDBLTFX_MIRRORLEFTRIGHT",
1054 "DDBLTFX_MIRRORUPDOWN",
1055 "DDBLTFX_NOTEARING",
1056 "DDBLTFX_ROTATE180",
1057 "DDBLTFX_ROTATE270",
1058 "DDBLTFX_ROTATE90",
1059 "DDBLTFX_ZBUFFERRANGE",
1060 "DDBLTFX_ZBUFFERBASEDEST",
1061])
1062
1063DDOVERFX = Flags(DWORD, [
1064 "DDOVERFX_ARITHSTRETCHY",
1065 "DDOVERFX_MIRRORLEFTRIGHT",
1066 "DDOVERFX_MIRRORUPDOWN",
1067 "DDOVERFX_DEINTERLACE",
1068])
1069
1070DDWAITVB = Flags(DWORD, [
1071 "DDWAITVB_BLOCKBEGIN",
1072 "DDWAITVB_BLOCKBEGINEVENT",
1073 "DDWAITVB_BLOCKEND",
1074])
1075
1076DDGFS = Flags(DWORD, [
1077 "DDGFS_CANFLIP",
1078 "DDGFS_ISFLIPDONE",
1079])
1080
1081DDGBS = Flags(DWORD, [
1082 "DDGBS_CANBLT",
1083 "DDGBS_ISBLTDONE",
1084])
1085
1086DDENUMOVERLAYZ = Flags(DWORD, [
1087 "DDENUMOVERLAYZ_BACKTOFRONT",
1088 "DDENUMOVERLAYZ_FRONTTOBACK",
1089])
1090
1091DDOVERZ = Flags(DWORD, [
1092 "DDOVERZ_SENDTOFRONT",
1093 "DDOVERZ_SENDTOBACK",
1094 "DDOVERZ_MOVEFORWARD",
1095 "DDOVERZ_MOVEBACKWARD",
1096 "DDOVERZ_INSERTINFRONTOF",
1097 "DDOVERZ_INSERTINBACKOF",
1098])
1099
1100DDSGR = Flags(DWORD, [
1101 "DDSGR_CALIBRATE",
1102])
1103
1104DDSMT = Flags(DWORD, [
1105 "DDSMT_ISTESTREQUIRED",
1106])
1107
1108DDEM = Flags(DWORD, [
1109 "DDEM_MODEPASSED",
1110 "DDEM_MODEFAILED",
1111])
1112
1113HRESULT = Enum("HRESULT", [
1114 "DD_OK",
1115 "DD_FALSE",
1116 "DDERR_ALREADYINITIALIZED",
1117 "DDERR_CANNOTATTACHSURFACE",
1118 "DDERR_CANNOTDETACHSURFACE",
1119 "DDERR_CURRENTLYNOTAVAIL",
1120 "DDERR_EXCEPTION",
1121 "DDERR_GENERIC",
1122 "DDERR_HEIGHTALIGN",
1123 "DDERR_INCOMPATIBLEPRIMARY",
1124 "DDERR_INVALIDCAPS",
1125 "DDERR_INVALIDCLIPLIST",
1126 "DDERR_INVALIDMODE",
1127 "DDERR_INVALIDOBJECT",
1128 "DDERR_INVALIDPARAMS",
1129 "DDERR_INVALIDPIXELFORMAT",
1130 "DDERR_INVALIDRECT",
1131 "DDERR_LOCKEDSURFACES",
1132 "DDERR_NO3D",
1133 "DDERR_NOALPHAHW",
1134 "DDERR_NOSTEREOHARDWARE",
1135 "DDERR_NOSURFACELEFT",
1136 "DDERR_NOCLIPLIST",
1137 "DDERR_NOCOLORCONVHW",
1138 "DDERR_NOCOOPERATIVELEVELSET",
1139 "DDERR_NOCOLORKEY",
1140 "DDERR_NOCOLORKEYHW",
1141 "DDERR_NODIRECTDRAWSUPPORT",
1142 "DDERR_NOEXCLUSIVEMODE",
1143 "DDERR_NOFLIPHW",
1144 "DDERR_NOGDI",
1145 "DDERR_NOMIRRORHW",
1146 "DDERR_NOTFOUND",
1147 "DDERR_NOOVERLAYHW",
1148 "DDERR_OVERLAPPINGRECTS",
1149 "DDERR_NORASTEROPHW",
1150 "DDERR_NOROTATIONHW",
1151 "DDERR_NOSTRETCHHW",
1152 "DDERR_NOT4BITCOLOR",
1153 "DDERR_NOT4BITCOLORINDEX",
1154 "DDERR_NOT8BITCOLOR",
1155 "DDERR_NOTEXTUREHW",
1156 "DDERR_NOVSYNCHW",
1157 "DDERR_NOZBUFFERHW",
1158 "DDERR_NOZOVERLAYHW",
1159 "DDERR_OUTOFCAPS",
1160 "DDERR_OUTOFMEMORY",
1161 "DDERR_OUTOFVIDEOMEMORY",
1162 "DDERR_OVERLAYCANTCLIP",
1163 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1164 "DDERR_PALETTEBUSY",
1165 "DDERR_COLORKEYNOTSET",
1166 "DDERR_SURFACEALREADYATTACHED",
1167 "DDERR_SURFACEALREADYDEPENDENT",
1168 "DDERR_SURFACEBUSY",
1169 "DDERR_CANTLOCKSURFACE",
1170 "DDERR_SURFACEISOBSCURED",
1171 "DDERR_SURFACELOST",
1172 "DDERR_SURFACENOTATTACHED",
1173 "DDERR_TOOBIGHEIGHT",
1174 "DDERR_TOOBIGSIZE",
1175 "DDERR_TOOBIGWIDTH",
1176 "DDERR_UNSUPPORTED",
1177 "DDERR_UNSUPPORTEDFORMAT",
1178 "DDERR_UNSUPPORTEDMASK",
1179 "DDERR_INVALIDSTREAM",
1180 "DDERR_VERTICALBLANKINPROGRESS",
1181 "DDERR_WASSTILLDRAWING",
1182 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1183 "DDERR_XALIGN",
1184 "DDERR_INVALIDDIRECTDRAWGUID",
1185 "DDERR_DIRECTDRAWALREADYCREATED",
1186 "DDERR_NODIRECTDRAWHW",
1187 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1188 "DDERR_NOEMULATION",
1189 "DDERR_REGIONTOOSMALL",
1190 "DDERR_CLIPPERISUSINGHWND",
1191 "DDERR_NOCLIPPERATTACHED",
1192 "DDERR_NOHWND",
1193 "DDERR_HWNDSUBCLASSED",
1194 "DDERR_HWNDALREADYSET",
1195 "DDERR_NOPALETTEATTACHED",
1196 "DDERR_NOPALETTEHW",
1197 "DDERR_BLTFASTCANTCLIP",
1198 "DDERR_NOBLTHW",
1199 "DDERR_NODDROPSHW",
1200 "DDERR_OVERLAYNOTVISIBLE",
1201 "DDERR_NOOVERLAYDEST",
1202 "DDERR_INVALIDPOSITION",
1203 "DDERR_NOTAOVERLAYSURFACE",
1204 "DDERR_EXCLUSIVEMODEALREADYSET",
1205 "DDERR_NOTFLIPPABLE",
1206 "DDERR_CANTDUPLICATE",
1207 "DDERR_NOTLOCKED",
1208 "DDERR_CANTCREATEDC",
1209 "DDERR_NODC",
1210 "DDERR_WRONGMODE",
1211 "DDERR_IMPLICITLYCREATED",
1212 "DDERR_NOTPALETTIZED",
1213 "DDERR_UNSUPPORTEDMODE",
1214 "DDERR_NOMIPMAPHW",
1215 "DDERR_INVALIDSURFACETYPE",
1216 "DDERR_NOOPTIMIZEHW",
1217 "DDERR_NOTLOADED",
1218 "DDERR_NOFOCUSWINDOW",
1219 "DDERR_NOTONMIPMAPSUBLEVEL",
1220 "DDERR_DCALREADYCREATED",
1221 "DDERR_NONONLOCALVIDMEM",
1222 "DDERR_CANTPAGELOCK",
1223 "DDERR_CANTPAGEUNLOCK",
1224 "DDERR_NOTPAGELOCKED",
1225 "DDERR_MOREDATA",
1226 "DDERR_EXPIRED",
1227 "DDERR_TESTFINISHED",
1228 "DDERR_NEWMODE",
1229 "DDERR_D3DNOTINITIALIZED",
1230 "DDERR_VIDEONOTACTIVE",
1231 "DDERR_NOMONITORINFORMATION",
1232 "DDERR_NODRIVERSUPPORT",
1233 "DDERR_DEVICEDOESNTOWNSURFACE",
1234 "DDERR_NOTINITIALIZED",
1235])
1236
1237LPDDENUMMODESCALLBACK = Pointer(Function(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID]))
1238LPDDENUMMODESCALLBACK2 = Pointer(Function(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID]))
1239LPDDENUMSURFACESCALLBACK = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID]))
1240LPDDENUMSURFACESCALLBACK2 = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID]))
1241LPDDENUMSURFACESCALLBACK7 = Pointer(Function(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID]))
1242
1243IDirectDraw.methods += [
1244 Method(HRESULT, "Compact", []),
1245 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
1246 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
1247 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
1248 Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
1249 Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
1250 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
1251 Method(HRESULT, "FlipToGDISurface", []),
1252 Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
1253 Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
1254 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
1255 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
1256 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1257 Method(HRESULT, "GetScanLine", [LPDWORD]),
1258 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
1259 Method(HRESULT, "Initialize", [Pointer(GUID) ]),
1260 Method(HRESULT, "RestoreDisplayMode", []),
1261 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1262 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD]),
1263 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
1264]
1265
1266IDirectDraw2.methods += [
1267 Method(HRESULT, "Compact", []),
1268 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
1269 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
1270 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Pointer(LPDIRECTDRAWSURFACE) , Pointer(IUnknown) ]),
1271 Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE) ]),
1272 Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK ]),
1273 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK ]),
1274 Method(HRESULT, "FlipToGDISurface", []),
1275 Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
1276 Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC]),
1277 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
1278 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE) ]),
1279 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1280 Method(HRESULT, "GetScanLine", [LPDWORD]),
1281 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
1282 Method(HRESULT, "Initialize", [Pointer(GUID) ]),
1283 Method(HRESULT, "RestoreDisplayMode", []),
1284 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1285 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
1286 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
1287 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS, LPDWORD, LPDWORD]),
1288]
1289
1290IDirectDraw4.methods += [
1291 Method(HRESULT, "Compact", []),
1292 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
1293 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
1294 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE4) , Pointer(IUnknown) ]),
1295 Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE4, Pointer(LPDIRECTDRAWSURFACE4) ]),
1296 Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
1297 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2 ]),
1298 Method(HRESULT, "FlipToGDISurface", []),
1299 Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
1300 Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
1301 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
1302 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE4) ]),
1303 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1304 Method(HRESULT, "GetScanLine", [LPDWORD]),
1305 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
1306 Method(HRESULT, "Initialize", [Pointer(GUID) ]),
1307 Method(HRESULT, "RestoreDisplayMode", []),
1308 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1309 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
1310 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
1311 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
1312 Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE4)]),
1313 Method(HRESULT, "RestoreAllSurfaces", []),
1314 Method(HRESULT, "TestCooperativeLevel", []),
1315 Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER, DWORD ]),
1316]
1317
1318IDirectDraw7.methods += [
1319 Method(HRESULT, "Compact", []),
1320 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown) ]),
1321 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown) ]),
1322 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Pointer(LPDIRECTDRAWSURFACE7) , Pointer(IUnknown) ]),
1323 Method(HRESULT, "DuplicateSurface", [ LPDIRECTDRAWSURFACE7, Pointer(LPDIRECTDRAWSURFACE7) ]),
1324 Method(HRESULT, "EnumDisplayModes", [ DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2 ]),
1325 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7 ]),
1326 Method(HRESULT, "FlipToGDISurface", []),
1327 Method(HRESULT, "GetCaps", [ LPDDCAPS, LPDDCAPS]),
1328 Method(HRESULT, "GetDisplayMode", [ LPDDSURFACEDESC2]),
1329 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD ]),
1330 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE7) ]),
1331 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1332 Method(HRESULT, "GetScanLine", [LPDWORD]),
1333 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL ]),
1334 Method(HRESULT, "Initialize", [Pointer(GUID) ]),
1335 Method(HRESULT, "RestoreDisplayMode", []),
1336 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1337 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
1338 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE ]),
1339 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
1340 Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE7)]),
1341 Method(HRESULT, "RestoreAllSurfaces", []),
1342 Method(HRESULT, "TestCooperativeLevel", []),
1343 Method(HRESULT, "GetDeviceIdentifier", [LPDDDEVICEIDENTIFIER2, DWORD ]),
1344 Method(HRESULT, "StartModeTest", [LPSIZE, DWORD, DWORD ]),
1345 Method(HRESULT, "EvaluateMode", [DWORD, Pointer(DWORD) ]),
1346]
1347
1348IDirectDrawPalette.methods += [
1349 Method(HRESULT, "GetCaps", [LPDWORD]),
1350 Method(HRESULT, "GetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
1351 Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD, LPPALETTEENTRY]),
1352 Method(HRESULT, "SetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
1353]
1354
1355IDirectDrawClipper.methods += [
1356 Method(HRESULT, "GetClipList", [LPRECT, LPRGNDATA, LPDWORD]),
1357 Method(HRESULT, "GetHWnd", [Pointer(HWND) ]),
1358 Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD]),
1359 Method(HRESULT, "IsClipListChanged", [Pointer(BOOL) ]),
1360 Method(HRESULT, "SetClipList", [LPRGNDATA,DWORD]),
1361 Method(HRESULT, "SetHWnd", [DWORD, HWND ]),
1362]
1363
1364
1365IDirectDrawSurface.methods += [
1366 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE]),
1367 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1368 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX]),
1369 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
1370 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD]),
1371 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE]),
1372 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1373 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1374 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE, DWORD]),
1375 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE) ]),
1376 Method(HRESULT, "GetBltStatus", [DWORD]),
1377 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
1378 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
1379 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
1380 Method(HRESULT, "GetDC", [Pointer(HDC) ]),
1381 Method(HRESULT, "GetFlipStatus", [DWORD]),
1382 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
1383 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
1384 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1385 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1386 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1387 Method(HRESULT, "IsLost", []),
1388 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1389 Method(HRESULT, "ReleaseDC", [HDC]),
1390 Method(HRESULT, "Restore", []),
1391 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1392 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
1393 Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
1394 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1395 Method(HRESULT, "Unlock", [LPVOID]),
1396 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX]),
1397 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1398 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE]),
1399]
1400
1401IDirectDrawSurface2.methods += [
1402 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE2]),
1403 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1404 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX]),
1405 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
1406 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD]),
1407 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE2]),
1408 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1409 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1410 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE2, DWORD]),
1411 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE2) ]),
1412 Method(HRESULT, "GetBltStatus", [DWORD]),
1413 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
1414 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
1415 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
1416 Method(HRESULT, "GetDC", [Pointer(HDC) ]),
1417 Method(HRESULT, "GetFlipStatus", [DWORD]),
1418 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
1419 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
1420 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1421 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1422 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1423 Method(HRESULT, "IsLost", []),
1424 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1425 Method(HRESULT, "ReleaseDC", [HDC]),
1426 Method(HRESULT, "Restore", []),
1427 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1428 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
1429 Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
1430 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1431 Method(HRESULT, "Unlock", [LPVOID]),
1432 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX]),
1433 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1434 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE2]),
1435 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
1436 Method(HRESULT, "PageLock", [DWORD]),
1437 Method(HRESULT, "PageUnlock", [DWORD]),
1438]
1439
1440IDirectDrawSurface3.methods += [
1441 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE3]),
1442 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1443 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX]),
1444 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
1445 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD]),
1446 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE3]),
1447 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1448 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1449 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE3, DWORD]),
1450 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE3) ]),
1451 Method(HRESULT, "GetBltStatus", [DWORD]),
1452 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
1453 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
1454 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
1455 Method(HRESULT, "GetDC", [Pointer(HDC) ]),
1456 Method(HRESULT, "GetFlipStatus", [DWORD]),
1457 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
1458 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
1459 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1460 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1461 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1462 Method(HRESULT, "IsLost", []),
1463 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1464 Method(HRESULT, "ReleaseDC", [HDC]),
1465 Method(HRESULT, "Restore", []),
1466 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1467 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
1468 Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
1469 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1470 Method(HRESULT, "Unlock", [LPVOID]),
1471 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX]),
1472 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1473 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE3]),
1474 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
1475 Method(HRESULT, "PageLock", [DWORD]),
1476 Method(HRESULT, "PageUnlock", [DWORD]),
1477 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC, DWORD]),
1478]
1479
1480IDirectDrawSurface4.methods += [
1481 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE4]),
1482 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1483 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX]),
1484 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
1485 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD]),
1486 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE4]),
1487 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK2]),
1488 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2]),
1489 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE4, DWORD]),
1490 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE4) ]),
1491 Method(HRESULT, "GetBltStatus", [DWORD]),
1492 Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
1493 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
1494 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
1495 Method(HRESULT, "GetDC", [Pointer(HDC) ]),
1496 Method(HRESULT, "GetFlipStatus", [DWORD]),
1497 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
1498 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
1499 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1500 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
1501 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
1502 Method(HRESULT, "IsLost", []),
1503 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
1504 Method(HRESULT, "ReleaseDC", [HDC]),
1505 Method(HRESULT, "Restore", []),
1506 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1507 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
1508 Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
1509 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1510 Method(HRESULT, "Unlock", [LPRECT]),
1511 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX]),
1512 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1513 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE4]),
1514 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
1515 Method(HRESULT, "PageLock", [DWORD]),
1516 Method(HRESULT, "PageUnlock", [DWORD]),
1517 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
1518 Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
1519 Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
1520 Method(HRESULT, "FreePrivateData", [REFGUID]),
1521 Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
1522 Method(HRESULT, "ChangeUniquenessValue", []),
1523]
1524
1525IDirectDrawSurface7.methods += [
1526 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE7]),
1527 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1528 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX]),
1529 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD ]),
1530 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD]),
1531 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE7]),
1532 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK7]),
1533 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7]),
1534 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE7, DWORD]),
1535 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE7) ]),
1536 Method(HRESULT, "GetBltStatus", [DWORD]),
1537 Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
1538 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER) ]),
1539 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
1540 Method(HRESULT, "GetDC", [Pointer(HDC) ]),
1541 Method(HRESULT, "GetFlipStatus", [DWORD]),
1542 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG ]),
1543 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE) ]),
1544 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1545 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
1546 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
1547 Method(HRESULT, "IsLost", []),
1548 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
1549 Method(HRESULT, "ReleaseDC", [HDC]),
1550 Method(HRESULT, "Restore", []),
1551 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1552 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
1553 Method(HRESULT, "SetOverlayPosition", [LONG, LONG ]),
1554 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1555 Method(HRESULT, "Unlock", [LPRECT]),
1556 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX]),
1557 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1558 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE7]),
1559 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID) ]),
1560 Method(HRESULT, "PageLock", [DWORD]),
1561 Method(HRESULT, "PageUnlock", [DWORD]),
1562 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
1563 Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
1564 Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
1565 Method(HRESULT, "FreePrivateData", [REFGUID]),
1566 Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
1567 Method(HRESULT, "ChangeUniquenessValue", []),
1568 Method(HRESULT, "SetPriority", [DWORD]),
1569 Method(HRESULT, "GetPriority", [LPDWORD]),
1570 Method(HRESULT, "SetLOD", [DWORD]),
1571 Method(HRESULT, "GetLOD", [LPDWORD]),
1572]
1573
1574IDirectDrawColorControl.methods += [
1575 Method(HRESULT, "GetColorControls", [LPDDCOLORCONTROL]),
1576 Method(HRESULT, "SetColorControls", [LPDDCOLORCONTROL]),
1577]
1578
1579IDirectDrawGammaControl.methods += [
1580 Method(HRESULT, "GetGammaRamp", [DWORD, LPDDGAMMARAMP]),
1581 Method(HRESULT, "SetGammaRamp", [DWORD, LPDDGAMMARAMP]),
1582]
1583
1584#LPDDENUMCALLBACKA = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID]))
1585#LPDDENUMCALLBACKW = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID]))
1586#LPDDENUMCALLBACKEXA = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR]))
1587#LPDDENUMCALLBACKEXW = WrapPointer(Function(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR]))
1588LPDDENUMCALLBACKA = Alias("LPDDENUMCALLBACKA", Pointer(Void))
1589LPDDENUMCALLBACKW = Alias("LPDDENUMCALLBACKW", Pointer(Void))
1590LPDDENUMCALLBACKEXA = Alias("LPDDENUMCALLBACKEXA", Pointer(Void))
1591LPDDENUMCALLBACKEXW = Alias("LPDDENUMCALLBACKEXW", Pointer(Void))
1592
1593DDENUM = Flags(DWORD, [
1594 "DDENUM_ATTACHEDSECONDARYDEVICES",
1595 "DDENUM_DETACHEDSECONDARYDEVICES",
1596 "DDENUM_NONDISPLAYDEVICES",
1597])
1598
1599DDCREATE = Flags(DWORD, [
1600 "DDCREATE_HARDWAREONLY",
1601 "DDCREATE_EMULATIONONLY",
1602])
1603
1604ddraw = Dll("ddraw")
1605ddraw.functions += [
José Fonseca3c2c9292009-05-04 12:16:30 +01001606 DllFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
1607 DllFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
1608 DllFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1609 DllFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1610 DllFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), (OutPointer(LPDIRECTDRAW), "lplpDD"), (Pointer(IUnknown), "pUnkOuter")]),
1611 DllFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), (OutPointer(LPVOID), "lplpDD"), (REFIID, "iid"), (Pointer(IUnknown), "pUnkOuter")]),
1612 DllFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), (OutPointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
José Fonseca91af9232009-04-13 16:15:28 +01001613]
1614
1615if __name__ == '__main__':
1616 print '#include <windows.h>'
1617 print '#include <tchar.h>'
1618 print '#include <ddraw.h>'
1619 print
1620 print '#include "log.hpp"'
1621 print
1622 wrap()