blob: 2b4b9fcad5ccc7cd4302bf31c538497a53a4f5e7 [file] [log] [blame]
José Fonseca7ad40262009-09-30 17:17:12 +01001##########################################################################
José Fonseca91af9232009-04-13 16:15:28 +01002#
José Fonseca7ad40262009-09-30 17:17:12 +01003# Copyright 2008-2009 VMware, Inc.
4# All Rights Reserved.
José Fonseca91af9232009-04-13 16:15:28 +01005#
José Fonseca7ad40262009-09-30 17:17:12 +01006# Permission is hereby granted, free of charge, to any person obtaining a copy
7# of this software and associated documentation files (the "Software"), to deal
8# in the Software without restriction, including without limitation the rights
9# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10# copies of the Software, and to permit persons to whom the Software is
11# furnished to do so, subject to the following conditions:
José Fonseca91af9232009-04-13 16:15:28 +010012#
José Fonseca7ad40262009-09-30 17:17:12 +010013# The above copyright notice and this permission notice shall be included in
14# all copies or substantial portions of the Software.
José Fonseca91af9232009-04-13 16:15:28 +010015#
José Fonseca7ad40262009-09-30 17:17:12 +010016# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22# THE SOFTWARE.
José Fonseca91af9232009-04-13 16:15:28 +010023#
José Fonseca7ad40262009-09-30 17:17:12 +010024##########################################################################/
José Fonseca91af9232009-04-13 16:15:28 +010025
26"""ddraw.h"""
27
José Fonsecaf20c1262010-11-25 11:39:57 +000028from winapi import *
José Fonseca91af9232009-04-13 16:15:28 +010029
José Fonseca08d21782011-05-26 00:58:26 +010030DirectDrawOptSurfaceDescFlags = Flags(DWORD, [
31 "DDOSD_GUID",
32 "DDOSD_COMPRESSION_RATIO",
33 "DDOSD_SCAPS",
34 "DDOSD_OSCAPS",
35 "DDOSD_ALL",
36])
37
38DirectDrawOptSurfaceDescCapsFlags = Flags(DWORD, [
39 "DDOSDCAPS_OPTCOMPRESSED",
40 "DDOSDCAPS_OPTREORDERED",
41 "DDOSDCAPS_MONOLITHICMIPMAP",
42])
43
44DirectDrawGetDeviceIdentifierFlags = Flags(DWORD, [
45 "DDGDI_GETHOSTIDENTIFIER",
46])
47
José Fonseca91af9232009-04-13 16:15:28 +010048IDirectDraw = Interface("IDirectDraw", IUnknown)
49IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
50IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
51IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
52IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
53IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
54IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
55IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
56IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
57IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
58IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
59IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
60IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
61
José Fonseca9782b292012-04-14 22:02:42 +010062LPUNKNOWN = ObjPointer(IUnknown)
63LPDIRECTDRAW = ObjPointer(IDirectDraw)
64LPDIRECTDRAW2 = ObjPointer(IDirectDraw2)
65LPDIRECTDRAW4 = ObjPointer(IDirectDraw4)
66LPDIRECTDRAW7 = ObjPointer(IDirectDraw7)
67LPDIRECTDRAWSURFACE = ObjPointer(IDirectDrawSurface)
68LPDIRECTDRAWSURFACE2 = ObjPointer(IDirectDrawSurface2)
69LPDIRECTDRAWSURFACE3 = ObjPointer(IDirectDrawSurface3)
70LPDIRECTDRAWSURFACE4 = ObjPointer(IDirectDrawSurface4)
71LPDIRECTDRAWSURFACE7 = ObjPointer(IDirectDrawSurface7)
72LPDIRECTDRAWPALETTE = ObjPointer(IDirectDrawPalette)
73LPDIRECTDRAWCLIPPER = ObjPointer(IDirectDrawClipper)
74LPDIRECTDRAWCOLORCONTROL = ObjPointer(IDirectDrawColorControl)
75LPDIRECTDRAWGAMMACONTROL = ObjPointer(IDirectDrawGammaControl)
José Fonseca91af9232009-04-13 16:15:28 +010076
77DDARGB = Struct("DDARGB", [
78 (BYTE, "blue"),
79 (BYTE, "green"),
80 (BYTE, "red"),
81 (BYTE, "alpha"),
82])
83
84LPDDARGB = Pointer(DDARGB)
85
86DDRGBA = Struct("DDRGBA", [
87 (BYTE, "red"),
88 (BYTE, "green"),
89 (BYTE, "blue"),
90 (BYTE, "alpha"),
91])
92LPDDRGBA = Pointer(DDRGBA)
93
94DDCOLORKEY = Struct("DDCOLORKEY", [
95 (DWORD, "dwColorSpaceLowValue"),
96 (DWORD, "dwColorSpaceHighValue"),
97])
98LPDDCOLORKEY = Pointer(DDCOLORKEY)
99
100DDBLTFX = Struct("DDBLTFX", [
101 (DWORD, "dwSize"),
102 (DWORD, "dwDDFX"),
103 (DWORD, "dwROP"),
104 (DWORD, "dwDDROP"),
105 (DWORD, "dwRotationAngle"),
106 (DWORD, "dwZBufferOpCode"),
107 (DWORD, "dwZBufferLow"),
108 (DWORD, "dwZBufferHigh"),
109 (DWORD, "dwZBufferBaseDest"),
110 (DWORD, "dwZDestConstBitDepth"),
111 (DWORD, "dwZDestConst"),
112 (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
113 (DWORD, "dwZSrcConstBitDepth"),
114 (DWORD, "dwZSrcConst"),
115 (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
116 (DWORD, "dwAlphaEdgeBlendBitDepth"),
117 (DWORD, "dwAlphaEdgeBlend"),
118 (DWORD, "dwReserved"),
119 (DWORD, "dwAlphaDestConstBitDepth"),
120 (DWORD, "dwAlphaDestConst"),
121 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
122 (DWORD, "dwAlphaSrcConstBitDepth"),
123 (DWORD, "dwAlphaSrcConst"),
124 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
125 (DWORD, "dwFillColor"),
126 (DWORD, "dwFillDepth"),
127 (DWORD, "dwFillPixel"),
128 (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
129 (DDCOLORKEY, "ddckDestColorkey"),
130 (DDCOLORKEY, "ddckSrcColorkey"),
131])
132LPDDBLTFX = Pointer(DDBLTFX)
133
José Fonseca7cdbd382015-01-16 10:59:02 +0000134DirectDrawCapsFlags = Flags(DWORD, [
135 "DDSCAPS_RESERVED1",
136 "DDSCAPS_ALPHA",
137 "DDSCAPS_BACKBUFFER",
138 "DDSCAPS_COMPLEX",
139 "DDSCAPS_FLIP",
140 "DDSCAPS_FRONTBUFFER",
141 "DDSCAPS_OFFSCREENPLAIN",
142 "DDSCAPS_OVERLAY",
143 "DDSCAPS_PALETTE",
144 "DDSCAPS_PRIMARYSURFACE",
145 "DDSCAPS_RESERVED3", # was DDSCAPS_PRIMARYSURFACELEFT
146 "DDSCAPS_SYSTEMMEMORY",
147 "DDSCAPS_TEXTURE",
148 "DDSCAPS_3DDEVICE",
149 "DDSCAPS_VIDEOMEMORY",
150 "DDSCAPS_VISIBLE",
151 "DDSCAPS_WRITEONLY",
152 "DDSCAPS_ZBUFFER",
153 "DDSCAPS_OWNDC",
154 "DDSCAPS_LIVEVIDEO",
155 "DDSCAPS_HWCODEC",
156 "DDSCAPS_MODEX",
157 "DDSCAPS_MIPMAP",
158 "DDSCAPS_RESERVED2",
159 "DDSCAPS_ALLOCONLOAD",
160 "DDSCAPS_VIDEOPORT",
161 "DDSCAPS_LOCALVIDMEM",
162 "DDSCAPS_NONLOCALVIDMEM",
163 "DDSCAPS_STANDARDVGAMODE",
164 "DDSCAPS_OPTIMIZED",
165])
166
167DirectDrawCapabilityFlags2 = Flags(DWORD, [
168 "DDSCAPS2_RESERVED4", # was DDSCAPS2_HARDWAREDEINTERLACE
169 "DDSCAPS2_HINTDYNAMIC",
170 "DDSCAPS2_HINTSTATIC",
171 "DDSCAPS2_TEXTUREMANAGE",
172 "DDSCAPS2_RESERVED1",
173 "DDSCAPS2_RESERVED2",
174 "DDSCAPS2_OPAQUE",
175 "DDSCAPS2_HINTANTIALIASING",
176 "DDSCAPS2_CUBEMAP",
177 "DDSCAPS2_CUBEMAP_ALLFACES",
178 "DDSCAPS2_CUBEMAP_POSITIVEX",
179 "DDSCAPS2_CUBEMAP_NEGATIVEX",
180 "DDSCAPS2_CUBEMAP_POSITIVEY",
181 "DDSCAPS2_CUBEMAP_NEGATIVEY",
182 "DDSCAPS2_CUBEMAP_POSITIVEZ",
183 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
184 "DDSCAPS2_MIPMAPSUBLEVEL",
185 "DDSCAPS2_D3DTEXTUREMANAGE",
186 "DDSCAPS2_DONOTPERSIST",
187 "DDSCAPS2_STEREOSURFACELEFT",
188 "DDSCAPS2_VOLUME",
189 "DDSCAPS2_NOTUSERLOCKABLE",
190 "DDSCAPS2_POINTS",
191 "DDSCAPS2_RTPATCHES",
192 "DDSCAPS2_NPATCHES",
193 "DDSCAPS2_RESERVED3",
194 "DDSCAPS2_DISCARDBACKBUFFER",
195 "DDSCAPS2_ENABLEALPHACHANNEL",
196 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
197 "DDSCAPS2_ADDITIONALPRIMARY",
198])
199DirectDrawCapabilityFlags3 = Flags(DWORD, [
200 "DDSCAPS3_MULTISAMPLE_MASK",
201 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
202 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
203 "DDSCAPS3_RESERVED1",
204 "DDSCAPS3_RESERVED2",
205 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
206 "DDSCAPS3_AUTOGENMIPMAP",
207 "DDSCAPS3_DMAP",
208 "DDSCAPS3_CREATESHAREDRESOURCE",
209 "DDSCAPS3_READONLYRESOURCE",
210 "DDSCAPS3_OPENSHAREDRESOURCE",
211])
212
José Fonseca91af9232009-04-13 16:15:28 +0100213DDSCAPS = Struct("DDSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000214 (DirectDrawCapsFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100215])
216LPDDSCAPS = Pointer(DDSCAPS)
217
José Fonseca7cdbd382015-01-16 10:59:02 +0000218DDOSDCAPSFlags = Flags(DWORD, [
219 "DDOSDCAPS_OPTCOMPRESSED",
220 "DDOSDCAPS_OPTREORDERED",
221 "DDOSDCAPS_MONOLITHICMIPMAP",
222 "DDOSDCAPS_VALIDSCAPS",
223 "DDOSDCAPS_VALIDOSCAPS",
224])
225
José Fonseca91af9232009-04-13 16:15:28 +0100226DDOSCAPS = Struct("DDOSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000227 (DDOSDCAPSFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100228])
229LPDDOSCAPS = Pointer(DDOSCAPS)
230
231DDSCAPSEX = Struct("DDSCAPSEX", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000232 (DirectDrawCapabilityFlags2, "dwCaps2"),
233 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100234 (DWORD, "dwCaps4"),
235])
236
237DDSCAPS2 = Struct("DDSCAPS2", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000238 (DirectDrawCapsFlags, "dwCaps"),
239 (DirectDrawCapabilityFlags2, "dwCaps2"),
240 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100241 (DWORD, "dwCaps4"),
242])
243LPDDSCAPS2 = Pointer(DDSCAPS2)
244
245DDCAPS_DX1 = Struct("DDCAPS_DX1", [
246 (DWORD, "dwSize"),
247 (DWORD, "dwCaps"),
248 (DWORD, "dwCaps2"),
249 (DWORD, "dwCKeyCaps"),
250 (DWORD, "dwFXCaps"),
251 (DWORD, "dwFXAlphaCaps"),
252 (DWORD, "dwPalCaps"),
253 (DWORD, "dwSVCaps"),
254 (DWORD, "dwAlphaBltConstBitDepths"),
255 (DWORD, "dwAlphaBltPixelBitDepths"),
256 (DWORD, "dwAlphaBltSurfaceBitDepths"),
257 (DWORD, "dwAlphaOverlayConstBitDepths"),
258 (DWORD, "dwAlphaOverlayPixelBitDepths"),
259 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
260 (DWORD, "dwZBufferBitDepths"),
261 (DWORD, "dwVidMemTotal"),
262 (DWORD, "dwVidMemFree"),
263 (DWORD, "dwMaxVisibleOverlays"),
264 (DWORD, "dwCurrVisibleOverlays"),
265 (DWORD, "dwNumFourCCCodes"),
266 (DWORD, "dwAlignBoundarySrc"),
267 (DWORD, "dwAlignSizeSrc"),
268 (DWORD, "dwAlignBoundaryDest"),
269 (DWORD, "dwAlignSizeDest"),
270 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100271 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100272 (DDSCAPS, "ddsCaps"),
273 (DWORD, "dwMinOverlayStretch"),
274 (DWORD, "dwMaxOverlayStretch"),
275 (DWORD, "dwMinLiveVideoStretch"),
276 (DWORD, "dwMaxLiveVideoStretch"),
277 (DWORD, "dwMinHwCodecStretch"),
278 (DWORD, "dwMaxHwCodecStretch"),
279 (DWORD, "dwReserved1"),
280 (DWORD, "dwReserved2"),
281 (DWORD, "dwReserved3"),
282])
283LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
284
285DDCAPS_DX3 = Struct("DDCAPS_DX3", [
286 (DWORD, "dwSize"),
287 (DWORD, "dwCaps"),
288 (DWORD, "dwCaps2"),
289 (DWORD, "dwCKeyCaps"),
290 (DWORD, "dwFXCaps"),
291 (DWORD, "dwFXAlphaCaps"),
292 (DWORD, "dwPalCaps"),
293 (DWORD, "dwSVCaps"),
294 (DWORD, "dwAlphaBltConstBitDepths"),
295 (DWORD, "dwAlphaBltPixelBitDepths"),
296 (DWORD, "dwAlphaBltSurfaceBitDepths"),
297 (DWORD, "dwAlphaOverlayConstBitDepths"),
298 (DWORD, "dwAlphaOverlayPixelBitDepths"),
299 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
300 (DWORD, "dwZBufferBitDepths"),
301 (DWORD, "dwVidMemTotal"),
302 (DWORD, "dwVidMemFree"),
303 (DWORD, "dwMaxVisibleOverlays"),
304 (DWORD, "dwCurrVisibleOverlays"),
305 (DWORD, "dwNumFourCCCodes"),
306 (DWORD, "dwAlignBoundarySrc"),
307 (DWORD, "dwAlignSizeSrc"),
308 (DWORD, "dwAlignBoundaryDest"),
309 (DWORD, "dwAlignSizeDest"),
310 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100311 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100312 (DDSCAPS, "ddsCaps"),
313 (DWORD, "dwMinOverlayStretch"),
314 (DWORD, "dwMaxOverlayStretch"),
315 (DWORD, "dwMinLiveVideoStretch"),
316 (DWORD, "dwMaxLiveVideoStretch"),
317 (DWORD, "dwMinHwCodecStretch"),
318 (DWORD, "dwMaxHwCodecStretch"),
319 (DWORD, "dwReserved1"),
320 (DWORD, "dwReserved2"),
321 (DWORD, "dwReserved3"),
322 (DWORD, "dwSVBCaps"),
323 (DWORD, "dwSVBCKeyCaps"),
324 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100325 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100326 (DWORD, "dwVSBCaps"),
327 (DWORD, "dwVSBCKeyCaps"),
328 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100329 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100330 (DWORD, "dwSSBCaps"),
331 (DWORD, "dwSSBCKeyCaps"),
332 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100333 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100334 (DWORD, "dwReserved4"),
335 (DWORD, "dwReserved5"),
336 (DWORD, "dwReserved6"),
337])
338LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
339
340DDCAPS_DX5 = Struct("DDCAPS_DX5", [
341 (DWORD, "dwSize"),
342 (DWORD, "dwCaps"),
343 (DWORD, "dwCaps2"),
344 (DWORD, "dwCKeyCaps"),
345 (DWORD, "dwFXCaps"),
346 (DWORD, "dwFXAlphaCaps"),
347 (DWORD, "dwPalCaps"),
348 (DWORD, "dwSVCaps"),
349 (DWORD, "dwAlphaBltConstBitDepths"),
350 (DWORD, "dwAlphaBltPixelBitDepths"),
351 (DWORD, "dwAlphaBltSurfaceBitDepths"),
352 (DWORD, "dwAlphaOverlayConstBitDepths"),
353 (DWORD, "dwAlphaOverlayPixelBitDepths"),
354 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
355 (DWORD, "dwZBufferBitDepths"),
356 (DWORD, "dwVidMemTotal"),
357 (DWORD, "dwVidMemFree"),
358 (DWORD, "dwMaxVisibleOverlays"),
359 (DWORD, "dwCurrVisibleOverlays"),
360 (DWORD, "dwNumFourCCCodes"),
361 (DWORD, "dwAlignBoundarySrc"),
362 (DWORD, "dwAlignSizeSrc"),
363 (DWORD, "dwAlignBoundaryDest"),
364 (DWORD, "dwAlignSizeDest"),
365 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100366 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100367 (DDSCAPS, "ddsCaps"),
368 (DWORD, "dwMinOverlayStretch"),
369 (DWORD, "dwMaxOverlayStretch"),
370 (DWORD, "dwMinLiveVideoStretch"),
371 (DWORD, "dwMaxLiveVideoStretch"),
372 (DWORD, "dwMinHwCodecStretch"),
373 (DWORD, "dwMaxHwCodecStretch"),
374 (DWORD, "dwReserved1"),
375 (DWORD, "dwReserved2"),
376 (DWORD, "dwReserved3"),
377 (DWORD, "dwSVBCaps"),
378 (DWORD, "dwSVBCKeyCaps"),
379 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100380 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100381 (DWORD, "dwVSBCaps"),
382 (DWORD, "dwVSBCKeyCaps"),
383 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100384 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100385 (DWORD, "dwSSBCaps"),
386 (DWORD, "dwSSBCKeyCaps"),
387 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100388 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100389 (DWORD, "dwMaxVideoPorts"),
390 (DWORD, "dwCurrVideoPorts"),
391 (DWORD, "dwSVBCaps2"),
392 (DWORD, "dwNLVBCaps"),
393 (DWORD, "dwNLVBCaps2"),
394 (DWORD, "dwNLVBCKeyCaps"),
395 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100396 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100397])
398LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
399
400DDCAPS_DX6 = Struct("DDCAPS_DX6", [
401 (DWORD, "dwSize"),
402 (DWORD, "dwCaps"),
403 (DWORD, "dwCaps2"),
404 (DWORD, "dwCKeyCaps"),
405 (DWORD, "dwFXCaps"),
406 (DWORD, "dwFXAlphaCaps"),
407 (DWORD, "dwPalCaps"),
408 (DWORD, "dwSVCaps"),
409 (DWORD, "dwAlphaBltConstBitDepths"),
410 (DWORD, "dwAlphaBltPixelBitDepths"),
411 (DWORD, "dwAlphaBltSurfaceBitDepths"),
412 (DWORD, "dwAlphaOverlayConstBitDepths"),
413 (DWORD, "dwAlphaOverlayPixelBitDepths"),
414 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
415 (DWORD, "dwZBufferBitDepths"),
416 (DWORD, "dwVidMemTotal"),
417 (DWORD, "dwVidMemFree"),
418 (DWORD, "dwMaxVisibleOverlays"),
419 (DWORD, "dwCurrVisibleOverlays"),
420 (DWORD, "dwNumFourCCCodes"),
421 (DWORD, "dwAlignBoundarySrc"),
422 (DWORD, "dwAlignSizeSrc"),
423 (DWORD, "dwAlignBoundaryDest"),
424 (DWORD, "dwAlignSizeDest"),
425 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100426 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100427 (DDSCAPS, "ddsOldCaps"),
428 (DWORD, "dwMinOverlayStretch"),
429 (DWORD, "dwMaxOverlayStretch"),
430 (DWORD, "dwMinLiveVideoStretch"),
431 (DWORD, "dwMaxLiveVideoStretch"),
432 (DWORD, "dwMinHwCodecStretch"),
433 (DWORD, "dwMaxHwCodecStretch"),
434 (DWORD, "dwReserved1"),
435 (DWORD, "dwReserved2"),
436 (DWORD, "dwReserved3"),
437 (DWORD, "dwSVBCaps"),
438 (DWORD, "dwSVBCKeyCaps"),
439 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100440 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100441 (DWORD, "dwVSBCaps"),
442 (DWORD, "dwVSBCKeyCaps"),
443 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100444 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100445 (DWORD, "dwSSBCaps"),
446 (DWORD, "dwSSBCKeyCaps"),
447 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100448 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100449 (DWORD, "dwMaxVideoPorts"),
450 (DWORD, "dwCurrVideoPorts"),
451 (DWORD, "dwSVBCaps2"),
452 (DWORD, "dwNLVBCaps"),
453 (DWORD, "dwNLVBCaps2"),
454 (DWORD, "dwNLVBCKeyCaps"),
455 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100456 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100457 (DDSCAPS2, "ddsCaps"),
458])
459LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
460
461DDCAPS_DX7 = Struct("DDCAPS_DX7", [
462 (DWORD, "dwSize"),
463 (DWORD, "dwCaps"),
464 (DWORD, "dwCaps2"),
465 (DWORD, "dwCKeyCaps"),
466 (DWORD, "dwFXCaps"),
467 (DWORD, "dwFXAlphaCaps"),
468 (DWORD, "dwPalCaps"),
469 (DWORD, "dwSVCaps"),
470 (DWORD, "dwAlphaBltConstBitDepths"),
471 (DWORD, "dwAlphaBltPixelBitDepths"),
472 (DWORD, "dwAlphaBltSurfaceBitDepths"),
473 (DWORD, "dwAlphaOverlayConstBitDepths"),
474 (DWORD, "dwAlphaOverlayPixelBitDepths"),
475 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
476 (DWORD, "dwZBufferBitDepths"),
477 (DWORD, "dwVidMemTotal"),
478 (DWORD, "dwVidMemFree"),
479 (DWORD, "dwMaxVisibleOverlays"),
480 (DWORD, "dwCurrVisibleOverlays"),
481 (DWORD, "dwNumFourCCCodes"),
482 (DWORD, "dwAlignBoundarySrc"),
483 (DWORD, "dwAlignSizeSrc"),
484 (DWORD, "dwAlignBoundaryDest"),
485 (DWORD, "dwAlignSizeDest"),
486 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100487 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100488 (DDSCAPS, "ddsOldCaps"),
489 (DWORD, "dwMinOverlayStretch"),
490 (DWORD, "dwMaxOverlayStretch"),
491 (DWORD, "dwMinLiveVideoStretch"),
492 (DWORD, "dwMaxLiveVideoStretch"),
493 (DWORD, "dwMinHwCodecStretch"),
494 (DWORD, "dwMaxHwCodecStretch"),
495 (DWORD, "dwReserved1"),
496 (DWORD, "dwReserved2"),
497 (DWORD, "dwReserved3"),
498 (DWORD, "dwSVBCaps"),
499 (DWORD, "dwSVBCKeyCaps"),
500 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100501 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100502 (DWORD, "dwVSBCaps"),
503 (DWORD, "dwVSBCKeyCaps"),
504 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100505 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100506 (DWORD, "dwSSBCaps"),
507 (DWORD, "dwSSBCKeyCaps"),
508 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100509 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100510 (DWORD, "dwMaxVideoPorts"),
511 (DWORD, "dwCurrVideoPorts"),
512 (DWORD, "dwSVBCaps2"),
513 (DWORD, "dwNLVBCaps"),
514 (DWORD, "dwNLVBCaps2"),
515 (DWORD, "dwNLVBCKeyCaps"),
516 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100517 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100518 (DDSCAPS2, "ddsCaps"),
519])
520LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
521DDCAPS = DDCAPS_DX7
522LPDDCAPS = Pointer(DDCAPS)
523
José Fonseca7cdbd382015-01-16 10:59:02 +0000524DirectDrawPixelFormatFlags = Flags(DWORD, [
525 "DDPF_ALPHAPIXELS",
526 "DDPF_ALPHA",
527 "DDPF_FOURCC",
528 "DDPF_PALETTEINDEXED4",
529 "DDPF_PALETTEINDEXEDTO8",
530 "DDPF_PALETTEINDEXED8",
531 "DDPF_RGB",
532 "DDPF_COMPRESSED",
533 "DDPF_RGBTOYUV",
534 "DDPF_YUV",
535 "DDPF_ZBUFFER",
536 "DDPF_PALETTEINDEXED1",
537 "DDPF_PALETTEINDEXED2",
538 "DDPF_ZPIXELS",
539 "DDPF_STENCILBUFFER",
540 "DDPF_ALPHAPREMULT",
541 "DDPF_LUMINANCE",
542 "DDPF_BUMPLUMINANCE",
543 "DDPF_BUMPDUDV",
544])
545
José Fonseca91af9232009-04-13 16:15:28 +0100546DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
547 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000548 (DirectDrawPixelFormatFlags, "dwFlags"),
José Fonseca91af9232009-04-13 16:15:28 +0100549 (DWORD, "dwFourCC"),
550 (DWORD, "dwRGBBitCount"),
551 (DWORD, "dwYUVBitCount"),
552 (DWORD, "dwZBufferBitDepth"),
553 (DWORD, "dwAlphaBitDepth"),
554 (DWORD, "dwLuminanceBitCount"),
555 (DWORD, "dwBumpBitCount"),
556 (DWORD, "dwPrivateFormatBitCount"),
557 (DWORD, "dwRBitMask"),
558 (DWORD, "dwYBitMask"),
559 (DWORD, "dwStencilBitDepth"),
560 (DWORD, "dwLuminanceBitMask"),
561 (DWORD, "dwBumpDuBitMask"),
562 (DWORD, "dwOperations"),
563 (DWORD, "dwGBitMask"),
564 (DWORD, "dwUBitMask"),
565 (DWORD, "dwZBitMask"),
566 (DWORD, "dwBumpDvBitMask"),
José Fonsecab6dda3b2012-11-26 19:47:45 +0000567 (Struct(None, [
568 (WORD, "wFlipMSTypes"),
569 (WORD, "wBltMSTypes"),
570 ]), "MultiSampleCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100571 (DWORD, "dwBBitMask"),
572 (DWORD, "dwVBitMask"),
573 (DWORD, "dwStencilBitMask"),
574 (DWORD, "dwBumpLuminanceBitMask"),
575 (DWORD, "dwRGBAlphaBitMask"),
576 (DWORD, "dwYUVAlphaBitMask"),
577 (DWORD, "dwLuminanceAlphaBitMask"),
578 (DWORD, "dwRGBZBitMask"),
579 (DWORD, "dwYUVZBitMask"),
580])
581LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
582
583DDOVERLAYFX = Struct("DDOVERLAYFX", [
584 (DWORD, "dwSize"),
585 (DWORD, "dwAlphaEdgeBlendBitDepth"),
586 (DWORD, "dwAlphaEdgeBlend"),
587 (DWORD, "dwReserved"),
588 (DWORD, "dwAlphaDestConstBitDepth"),
589 (DWORD, "dwAlphaDestConst"),
590 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
591 (DWORD, "dwAlphaSrcConstBitDepth"),
592 (DWORD, "dwAlphaSrcConst"),
593 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
594 (DDCOLORKEY, "dckDestColorkey"),
595 (DDCOLORKEY, "dckSrcColorkey"),
596 (DWORD, "dwDDFX"),
597 (DWORD, "dwFlags"),
598])
599LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
600
601DDBLTBATCH = Struct("DDBLTBATCH", [
602 (LPRECT, "lprDest"),
603 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
604 (LPRECT, "lprSrc"),
605 (DWORD, "dwFlags"),
606 (LPDDBLTFX, "lpDDBltFx"),
607])
608LPDDBLTBATCH = Pointer(DDBLTBATCH)
609
610DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonseca44756652011-10-15 10:26:30 +0100611 (Array(WORD, 256), "red"),
612 (Array(WORD, 256), "green"),
613 (Array(WORD, 256), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100614])
615LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
616
617DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000618 (CString, "szDriver"),
619 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100620 (LARGE_INTEGER, "liDriverVersion"),
621 (DWORD, "dwVendorId"),
622 (DWORD, "dwDeviceId"),
623 (DWORD, "dwSubSysId"),
624 (DWORD, "dwRevision"),
625 (GUID, "guidDeviceIdentifier"),
626])
627LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
628
629DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100630 (CString, "szDriver"),
631 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100632 (LARGE_INTEGER, "liDriverVersion"),
633 (DWORD, "dwVendorId"),
634 (DWORD, "dwDeviceId"),
635 (DWORD, "dwSubSysId"),
636 (DWORD, "dwRevision"),
637 (GUID, "guidDeviceIdentifier"),
638 (DWORD, "dwWHQLLevel"),
639])
640LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
641
José Fonseca08d21782011-05-26 00:58:26 +0100642LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
643LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100644
José Fonseca08d21782011-05-26 00:58:26 +0100645DirectDrawSurfaceDescFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100646 "DDSD_CAPS",
647 "DDSD_HEIGHT",
648 "DDSD_WIDTH",
649 "DDSD_PITCH",
650 "DDSD_BACKBUFFERCOUNT",
651 "DDSD_ZBUFFERBITDEPTH",
652 "DDSD_ALPHABITDEPTH",
653 "DDSD_LPSURFACE",
654 "DDSD_PIXELFORMAT",
655 "DDSD_CKDESTOVERLAY",
656 "DDSD_CKDESTBLT",
657 "DDSD_CKSRCOVERLAY",
658 "DDSD_CKSRCBLT",
659 "DDSD_MIPMAPCOUNT",
660 "DDSD_REFRESHRATE",
661 "DDSD_LINEARSIZE",
662 "DDSD_TEXTURESTAGE",
663 "DDSD_FVF",
664 "DDSD_SRCVBHANDLE",
665 "DDSD_DEPTH",
666 "DDSD_ALL",
667])
668
José Fonseca7cdbd382015-01-16 10:59:02 +0000669DDSURFACEDESC = Struct("DDSURFACEDESC", [
José Fonseca91af9232009-04-13 16:15:28 +0100670 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000671 (DirectDrawSurfaceDescFlags, "dwFlags"),
672 (DWORD, "dwHeight"),
673 (DWORD, "dwWidth"),
674 (LONG, "lPitch"),
675 (DWORD, "dwLinearSize"),
676 (DWORD, "dwBackBufferCount"),
677 (DWORD, "dwMipMapCount"),
678 (DWORD, "dwZBufferBitDepth"),
679 (DWORD, "dwRefreshRate"),
680 (DWORD, "dwAlphaBitDepth"),
681 (DWORD, "dwReserved"),
682 (IntPointer("LPVOID"), "lpSurface"),
683 (DDCOLORKEY, "ddckCKDestOverlay"),
684 (DDCOLORKEY, "ddckCKDestBlt"),
685 (DDCOLORKEY, "ddckCKSrcOverlay"),
686 (DDCOLORKEY, "ddckCKSrcBlt"),
687 (DDPIXELFORMAT, "ddpfPixelFormat"),
688 (DDSCAPS, "ddsCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100689])
José Fonseca7cdbd382015-01-16 10:59:02 +0000690LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
José Fonseca91af9232009-04-13 16:15:28 +0100691
José Fonseca7cdbd382015-01-16 10:59:02 +0000692DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
693 (DWORD, "dwSize"),
694 (DirectDrawSurfaceDescFlags, "dwFlags"),
695 (DWORD, "dwHeight"),
696 (DWORD, "dwWidth"),
697 (LONG, "lPitch"),
698 (DWORD, "dwLinearSize"),
699 (DWORD, "dwBackBufferCount"),
700 (DWORD, "dwDepth"),
701 (DWORD, "dwMipMapCount"),
702 (DWORD, "dwRefreshRate"),
703 (DWORD, "dwSrcVBHandle"),
704 (DWORD, "dwAlphaBitDepth"),
705 (DWORD, "dwReserved"),
706 (IntPointer("LPVOID"), "lpSurface"),
707 (DDCOLORKEY, "ddckCKDestOverlay"),
708 (DWORD, "dwEmptyFaceColor"),
709 (DDCOLORKEY, "ddckCKDestBlt"),
710 (DDCOLORKEY, "ddckCKSrcOverlay"),
711 (DDCOLORKEY, "ddckCKSrcBlt"),
712 (DDPIXELFORMAT, "ddpfPixelFormat"),
713 (DWORD, "dwFVF"),
714 (DDSCAPS2, "ddsCaps"),
715 (DWORD, "dwTextureStage"),
716])
717LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
718
719DDOSD = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100720 "DDOSD_GUID",
721 "DDOSD_COMPRESSION_RATIO",
722 "DDOSD_SCAPS",
723 "DDOSD_OSCAPS",
724 "DDOSD_ALL",
725])
726
José Fonseca7cdbd382015-01-16 10:59:02 +0000727DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
728 (DWORD, "dwSize"),
729 (DDOSD, "dwFlags"),
730 (DDSCAPS2, "ddSCaps"),
731 (DDOSCAPS, "ddOSCaps"),
732 (GUID, "guid"),
733 (DWORD, "dwCompressionRatio"),
José Fonseca91af9232009-04-13 16:15:28 +0100734])
735
736DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
737 (DWORD, "dwSize"),
738 (DWORD, "dwFlags"),
739 (LONG, "lBrightness"),
740 (LONG, "lContrast"),
741 (LONG, "lHue"),
742 (LONG, "lSaturation"),
743 (LONG, "lSharpness"),
744 (LONG, "lGamma"),
745 (LONG, "lColorEnable"),
746 (DWORD, "dwReserved1"),
747])
748LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
749
Jose Fonseca68d05032015-10-30 23:06:57 +0000750DDENUM = Flags(DWORD, [
José Fonseca08d21782011-05-26 00:58:26 +0100751 "DDENUM_ATTACHEDSECONDARYDEVICES",
752 "DDENUM_DETACHEDSECONDARYDEVICES",
753 "DDENUM_NONDISPLAYDEVICES",
754])
755
Jose Fonseca68d05032015-10-30 23:06:57 +0000756DDCREATE = FakeEnum(DWORD, [
José Fonseca08d21782011-05-26 00:58:26 +0100757 "DDCREATE_HARDWAREONLY",
758 "DDCREATE_EMULATIONONLY",
759])
760
Jose Fonseca68d05032015-10-30 23:06:57 +0000761DDCREATE_LPGUID = Polymorphic("reinterpret_cast<uintptr_t>(lpGUID)", [
762 ("DDCREATE_HARDWAREONLY", IntPointer("LPGUID")),
763 ("DDCREATE_EMULATIONONLY", IntPointer("LPGUID")),
764], LPGUID)
765
766
José Fonseca08d21782011-05-26 00:58:26 +0100767DirectDrawColorControlFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100768 "DDCOLOR_BRIGHTNESS",
769 "DDCOLOR_CONTRAST",
770 "DDCOLOR_HUE",
771 "DDCOLOR_SATURATION",
772 "DDCOLOR_SHARPNESS",
773 "DDCOLOR_GAMMA",
774 "DDCOLOR_COLORENABLE",
775])
776
José Fonseca08d21782011-05-26 00:58:26 +0100777DirectDrawDriverCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100778 "DDCAPS_3D",
779 "DDCAPS_ALIGNBOUNDARYDEST",
780 "DDCAPS_ALIGNSIZEDEST",
781 "DDCAPS_ALIGNBOUNDARYSRC",
782 "DDCAPS_ALIGNSIZESRC",
783 "DDCAPS_ALIGNSTRIDE",
784 "DDCAPS_BLT",
785 "DDCAPS_BLTQUEUE",
786 "DDCAPS_BLTFOURCC",
787 "DDCAPS_BLTSTRETCH",
788 "DDCAPS_GDI",
789 "DDCAPS_OVERLAY",
790 "DDCAPS_OVERLAYCANTCLIP",
791 "DDCAPS_OVERLAYFOURCC",
792 "DDCAPS_OVERLAYSTRETCH",
793 "DDCAPS_PALETTE",
794 "DDCAPS_PALETTEVSYNC",
795 "DDCAPS_READSCANLINE",
796 "DDCAPS_RESERVED1",
797 "DDCAPS_VBI",
798 "DDCAPS_ZBLTS",
799 "DDCAPS_ZOVERLAYS",
800 "DDCAPS_COLORKEY",
801 "DDCAPS_ALPHA",
802 "DDCAPS_COLORKEYHWASSIST",
803 "DDCAPS_NOHARDWARE",
804 "DDCAPS_BLTCOLORFILL",
805 "DDCAPS_BANKSWITCHED",
806 "DDCAPS_BLTDEPTHFILL",
807 "DDCAPS_CANCLIP",
808 "DDCAPS_CANCLIPSTRETCHED",
809 "DDCAPS_CANBLTSYSMEM",
810])
811
José Fonseca08d21782011-05-26 00:58:26 +0100812DirectDrawDriverCapsFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100813 "DDCAPS2_CERTIFIED",
814 "DDCAPS2_NO2DDURING3DSCENE",
815 "DDCAPS2_VIDEOPORT",
816 "DDCAPS2_AUTOFLIPOVERLAY",
817 "DDCAPS2_CANBOBINTERLEAVED",
818 "DDCAPS2_CANBOBNONINTERLEAVED",
819 "DDCAPS2_COLORCONTROLOVERLAY",
820 "DDCAPS2_COLORCONTROLPRIMARY",
821 "DDCAPS2_CANDROPZ16BIT",
822 "DDCAPS2_NONLOCALVIDMEM",
823 "DDCAPS2_NONLOCALVIDMEMCAPS",
824 "DDCAPS2_NOPAGELOCKREQUIRED",
825 "DDCAPS2_WIDESURFACES",
826 "DDCAPS2_CANFLIPODDEVEN",
827 "DDCAPS2_CANBOBHARDWARE",
828 "DDCAPS2_COPYFOURCC",
829 "DDCAPS2_PRIMARYGAMMA",
830 "DDCAPS2_CANRENDERWINDOWED",
831 "DDCAPS2_CANCALIBRATEGAMMA",
832 "DDCAPS2_FLIPINTERVAL",
833 "DDCAPS2_FLIPNOVSYNC",
834 "DDCAPS2_CANMANAGETEXTURE",
835 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
836 "DDCAPS2_STEREO",
837 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
838 "DDCAPS2_RESERVED1",
839 "DDCAPS2_CANMANAGERESOURCE",
840 "DDCAPS2_DYNAMICTEXTURES",
841 "DDCAPS2_CANAUTOGENMIPMAP",
842 "DDCAPS2_CANSHARERESOURCE",
843])
844
José Fonseca08d21782011-05-26 00:58:26 +0100845DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100846 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
847 "DDFXALPHACAPS_BLTALPHAPIXELS",
848 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
849 "DDFXALPHACAPS_BLTALPHASURFACES",
850 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
851 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
852 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
853 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
854 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
855 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
856])
857
José Fonseca08d21782011-05-26 00:58:26 +0100858DirectDrawFxCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100859 "DDFXCAPS_BLTARITHSTRETCHY",
860 "DDFXCAPS_BLTARITHSTRETCHYN",
861 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
862 "DDFXCAPS_BLTMIRRORUPDOWN",
863 "DDFXCAPS_BLTROTATION",
864 "DDFXCAPS_BLTROTATION90",
865 "DDFXCAPS_BLTSHRINKX",
866 "DDFXCAPS_BLTSHRINKXN",
867 "DDFXCAPS_BLTSHRINKY",
868 "DDFXCAPS_BLTSHRINKYN",
869 "DDFXCAPS_BLTSTRETCHX",
870 "DDFXCAPS_BLTSTRETCHXN",
871 "DDFXCAPS_BLTSTRETCHY",
872 "DDFXCAPS_BLTSTRETCHYN",
873 "DDFXCAPS_OVERLAYARITHSTRETCHY",
874 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
875 "DDFXCAPS_OVERLAYSHRINKX",
876 "DDFXCAPS_OVERLAYSHRINKXN",
877 "DDFXCAPS_OVERLAYSHRINKY",
878 "DDFXCAPS_OVERLAYSHRINKYN",
879 "DDFXCAPS_OVERLAYSTRETCHX",
880 "DDFXCAPS_OVERLAYSTRETCHXN",
881 "DDFXCAPS_OVERLAYSTRETCHY",
882 "DDFXCAPS_OVERLAYSTRETCHYN",
883 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
884 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
885 "DDFXCAPS_OVERLAYDEINTERLACE",
886 "DDFXCAPS_BLTALPHA",
887 "DDFXCAPS_BLTFILTER",
888 "DDFXCAPS_OVERLAYALPHA",
889 "DDFXCAPS_OVERLAYFILTER",
890])
891
José Fonseca08d21782011-05-26 00:58:26 +0100892DirectDrawStereoViewCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100893 "DDSVCAPS_RESERVED1",
894 "DDSVCAPS_RESERVED2",
895 "DDSVCAPS_RESERVED3",
896 "DDSVCAPS_RESERVED4",
897 "DDSVCAPS_STEREOSEQUENTIAL",
898])
899
José Fonseca08d21782011-05-26 00:58:26 +0100900DirectDrawPaletteCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100901 "DDPCAPS_4BIT",
902 "DDPCAPS_8BITENTRIES",
903 "DDPCAPS_8BIT",
Jose Fonseca0ff474a2017-11-22 11:21:58 +0000904 #"DDPCAPS_INITIALIZE", # Obsolete. It previously defined as 0x8 but defined now 0x0.
José Fonseca91af9232009-04-13 16:15:28 +0100905 "DDPCAPS_PRIMARYSURFACE",
906 "DDPCAPS_PRIMARYSURFACELEFT",
907 "DDPCAPS_ALLOW256",
908 "DDPCAPS_VSYNC",
909 "DDPCAPS_1BIT",
910 "DDPCAPS_2BIT",
911 "DDPCAPS_ALPHA",
912])
913
José Fonseca08d21782011-05-26 00:58:26 +0100914DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100915 "DDSPD_IUNKNOWNPOINTER",
916 "DDSPD_VOLATILE",
917])
918
José Fonseca08d21782011-05-26 00:58:26 +0100919DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100920 "DDBD_1",
921 "DDBD_2",
922 "DDBD_4",
923 "DDBD_8",
924 "DDBD_16",
925 "DDBD_24",
926 "DDBD_32",
927])
928
José Fonseca08d21782011-05-26 00:58:26 +0100929DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100930 "DDCKEY_COLORSPACE",
931 "DDCKEY_DESTBLT",
932 "DDCKEY_DESTOVERLAY",
933 "DDCKEY_SRCBLT",
934 "DDCKEY_SRCOVERLAY",
935])
936
José Fonseca08d21782011-05-26 00:58:26 +0100937DirectDrawColorKeyCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100938 "DDCKEYCAPS_DESTBLT",
939 "DDCKEYCAPS_DESTBLTCLRSPACE",
940 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
941 "DDCKEYCAPS_DESTBLTYUV",
942 "DDCKEYCAPS_DESTOVERLAY",
943 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
944 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
945 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
946 "DDCKEYCAPS_DESTOVERLAYYUV",
947 "DDCKEYCAPS_SRCBLT",
948 "DDCKEYCAPS_SRCBLTCLRSPACE",
949 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
950 "DDCKEYCAPS_SRCBLTYUV",
951 "DDCKEYCAPS_SRCOVERLAY",
952 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
953 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
954 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
955 "DDCKEYCAPS_SRCOVERLAYYUV",
956 "DDCKEYCAPS_NOCOSTOVERLAY",
957])
958
José Fonseca08d21782011-05-26 00:58:26 +0100959DirectDrawEnumSurfacesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100960 "DDENUMSURFACES_ALL",
961 "DDENUMSURFACES_MATCH",
962 "DDENUMSURFACES_NOMATCH",
963 "DDENUMSURFACES_CANBECREATED",
964 "DDENUMSURFACES_DOESEXIST",
965])
966
José Fonseca08d21782011-05-26 00:58:26 +0100967DirectDrawSetDisplayModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100968 "DDSDM_STANDARDVGAMODE",
969])
970
José Fonseca08d21782011-05-26 00:58:26 +0100971DirectDrawEnumDisplayModesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100972 "DDEDM_REFRESHRATES",
973 "DDEDM_STANDARDVGAMODES",
974])
975
José Fonseca08d21782011-05-26 00:58:26 +0100976DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100977 "DDSCL_FULLSCREEN",
978 "DDSCL_ALLOWREBOOT",
979 "DDSCL_NOWINDOWCHANGES",
980 "DDSCL_NORMAL",
981 "DDSCL_EXCLUSIVE",
982 "DDSCL_ALLOWMODEX",
983 "DDSCL_SETFOCUSWINDOW",
984 "DDSCL_SETDEVICEWINDOW",
985 "DDSCL_CREATEDEVICEWINDOW",
986 "DDSCL_MULTITHREADED",
987 "DDSCL_FPUSETUP",
988 "DDSCL_FPUPRESERVE",
989])
990
José Fonseca08d21782011-05-26 00:58:26 +0100991DirectDrawBltFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100992 "DDBLT_ALPHADEST",
993 "DDBLT_ALPHADESTCONSTOVERRIDE",
994 "DDBLT_ALPHADESTNEG",
995 "DDBLT_ALPHADESTSURFACEOVERRIDE",
996 "DDBLT_ALPHAEDGEBLEND",
997 "DDBLT_ALPHASRC",
998 "DDBLT_ALPHASRCCONSTOVERRIDE",
999 "DDBLT_ALPHASRCNEG",
1000 "DDBLT_ALPHASRCSURFACEOVERRIDE",
1001 "DDBLT_ASYNC",
1002 "DDBLT_COLORFILL",
1003 "DDBLT_DDFX",
1004 "DDBLT_DDROPS",
1005 "DDBLT_KEYDEST",
1006 "DDBLT_KEYDESTOVERRIDE",
1007 "DDBLT_KEYSRC",
1008 "DDBLT_KEYSRCOVERRIDE",
1009 "DDBLT_ROP",
1010 "DDBLT_ROTATIONANGLE",
1011 "DDBLT_ZBUFFER",
1012 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
1013 "DDBLT_ZBUFFERDESTOVERRIDE",
1014 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
1015 "DDBLT_ZBUFFERSRCOVERRIDE",
1016 "DDBLT_WAIT",
1017 "DDBLT_DEPTHFILL",
1018 "DDBLT_DONOTWAIT",
1019 "DDBLT_PRESENTATION",
1020 "DDBLT_LAST_PRESENTATION",
1021 "DDBLT_EXTENDED_FLAGS",
1022 "DDBLT_EXTENDED_LINEAR_CONTENT",
1023])
1024
José Fonseca08d21782011-05-26 00:58:26 +01001025DirectDrawBltFastFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001026 "DDBLTFAST_NOCOLORKEY",
1027 "DDBLTFAST_SRCCOLORKEY",
1028 "DDBLTFAST_DESTCOLORKEY",
1029 "DDBLTFAST_WAIT",
1030 "DDBLTFAST_DONOTWAIT",
1031])
1032
José Fonseca08d21782011-05-26 00:58:26 +01001033DirectDrawFlipFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001034 "DDFLIP_WAIT",
1035 "DDFLIP_EVEN",
1036 "DDFLIP_ODD",
1037 "DDFLIP_NOVSYNC",
1038 "DDFLIP_INTERVAL2",
1039 "DDFLIP_INTERVAL3",
1040 "DDFLIP_INTERVAL4",
1041 "DDFLIP_STEREO",
1042 "DDFLIP_DONOTWAIT",
1043])
1044
José Fonseca08d21782011-05-26 00:58:26 +01001045DirectDrawSurfaceOverlayFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001046 "DDOVER_ALPHADEST",
1047 "DDOVER_ALPHADESTCONSTOVERRIDE",
1048 "DDOVER_ALPHADESTNEG",
1049 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1050 "DDOVER_ALPHAEDGEBLEND",
1051 "DDOVER_ALPHASRC",
1052 "DDOVER_ALPHASRCCONSTOVERRIDE",
1053 "DDOVER_ALPHASRCNEG",
1054 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1055 "DDOVER_HIDE",
1056 "DDOVER_KEYDEST",
1057 "DDOVER_KEYDESTOVERRIDE",
1058 "DDOVER_KEYSRC",
1059 "DDOVER_KEYSRCOVERRIDE",
1060 "DDOVER_SHOW",
1061 "DDOVER_ADDDIRTYRECT",
1062 "DDOVER_REFRESHDIRTYRECTS",
1063 "DDOVER_REFRESHALL",
1064 "DDOVER_DDFX",
1065 "DDOVER_AUTOFLIP",
1066 "DDOVER_BOB",
1067 "DDOVER_OVERRIDEBOBWEAVE",
1068 "DDOVER_INTERLEAVED",
1069 "DDOVER_BOBHARDWARE",
1070 "DDOVER_ARGBSCALEFACTORS",
1071 "DDOVER_DEGRADEARGBSCALING",
1072])
1073
1074DDSETSURFACEDESC = Flags(DWORD, [
1075 #"DDSETSURFACEDESC_RECREATEDC",
1076 #"DDSETSURFACEDESC_PRESERVEDC",
1077])
1078
José Fonseca08d21782011-05-26 00:58:26 +01001079DirectDrawSurfaceLockFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001080 "DDLOCK_SURFACEMEMORYPTR",
1081 "DDLOCK_WAIT",
1082 "DDLOCK_EVENT",
1083 "DDLOCK_READONLY",
1084 "DDLOCK_WRITEONLY",
1085 "DDLOCK_NOSYSLOCK",
1086 "DDLOCK_NOOVERWRITE",
1087 "DDLOCK_DISCARDCONTENTS",
1088 "DDLOCK_OKTOSWAP",
1089 "DDLOCK_DONOTWAIT",
1090 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1091 "DDLOCK_NODIRTYUPDATE",
1092])
1093
José Fonseca08d21782011-05-26 00:58:26 +01001094DirectDrawSurfaceBltFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001095 "DDBLTFX_ARITHSTRETCHY",
1096 "DDBLTFX_MIRRORLEFTRIGHT",
1097 "DDBLTFX_MIRRORUPDOWN",
1098 "DDBLTFX_NOTEARING",
1099 "DDBLTFX_ROTATE180",
1100 "DDBLTFX_ROTATE270",
1101 "DDBLTFX_ROTATE90",
1102 "DDBLTFX_ZBUFFERRANGE",
1103 "DDBLTFX_ZBUFFERBASEDEST",
1104])
1105
José Fonseca08d21782011-05-26 00:58:26 +01001106DirectDrawOverlayFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001107 "DDOVERFX_ARITHSTRETCHY",
1108 "DDOVERFX_MIRRORLEFTRIGHT",
1109 "DDOVERFX_MIRRORUPDOWN",
1110 "DDOVERFX_DEINTERLACE",
1111])
1112
José Fonseca08d21782011-05-26 00:58:26 +01001113DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001114 "DDWAITVB_BLOCKBEGIN",
1115 "DDWAITVB_BLOCKBEGINEVENT",
1116 "DDWAITVB_BLOCKEND",
1117])
1118
José Fonseca08d21782011-05-26 00:58:26 +01001119DirectDrawGetFlipStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001120 "DDGFS_CANFLIP",
1121 "DDGFS_ISFLIPDONE",
1122])
1123
José Fonseca08d21782011-05-26 00:58:26 +01001124DirectDrawGetBltStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001125 "DDGBS_CANBLT",
1126 "DDGBS_ISBLTDONE",
1127])
1128
José Fonseca08d21782011-05-26 00:58:26 +01001129DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001130 "DDENUMOVERLAYZ_BACKTOFRONT",
1131 "DDENUMOVERLAYZ_FRONTTOBACK",
1132])
1133
José Fonseca08d21782011-05-26 00:58:26 +01001134DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001135 "DDOVERZ_SENDTOFRONT",
1136 "DDOVERZ_SENDTOBACK",
1137 "DDOVERZ_MOVEFORWARD",
1138 "DDOVERZ_MOVEBACKWARD",
1139 "DDOVERZ_INSERTINFRONTOF",
1140 "DDOVERZ_INSERTINBACKOF",
1141])
1142
José Fonseca08d21782011-05-26 00:58:26 +01001143DirectDrawSetGammaRampFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001144 "DDSGR_CALIBRATE",
1145])
1146
José Fonseca08d21782011-05-26 00:58:26 +01001147DirectDrawStartModeTestFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001148 "DDSMT_ISTESTREQUIRED",
1149])
1150
José Fonseca08d21782011-05-26 00:58:26 +01001151DirectDrawEvaluateModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001152 "DDEM_MODEPASSED",
1153 "DDEM_MODEFAILED",
1154])
1155
José Fonseca73841ad2012-04-16 20:47:56 +01001156DDRESULT = MAKE_HRESULT(ok = "DD_OK", false = "DD_FALSE", errors = [
José Fonseca91af9232009-04-13 16:15:28 +01001157 "DDERR_ALREADYINITIALIZED",
1158 "DDERR_CANNOTATTACHSURFACE",
1159 "DDERR_CANNOTDETACHSURFACE",
1160 "DDERR_CURRENTLYNOTAVAIL",
1161 "DDERR_EXCEPTION",
1162 "DDERR_GENERIC",
1163 "DDERR_HEIGHTALIGN",
1164 "DDERR_INCOMPATIBLEPRIMARY",
1165 "DDERR_INVALIDCAPS",
1166 "DDERR_INVALIDCLIPLIST",
1167 "DDERR_INVALIDMODE",
1168 "DDERR_INVALIDOBJECT",
1169 "DDERR_INVALIDPARAMS",
1170 "DDERR_INVALIDPIXELFORMAT",
1171 "DDERR_INVALIDRECT",
1172 "DDERR_LOCKEDSURFACES",
1173 "DDERR_NO3D",
1174 "DDERR_NOALPHAHW",
1175 "DDERR_NOSTEREOHARDWARE",
1176 "DDERR_NOSURFACELEFT",
1177 "DDERR_NOCLIPLIST",
1178 "DDERR_NOCOLORCONVHW",
1179 "DDERR_NOCOOPERATIVELEVELSET",
1180 "DDERR_NOCOLORKEY",
1181 "DDERR_NOCOLORKEYHW",
1182 "DDERR_NODIRECTDRAWSUPPORT",
1183 "DDERR_NOEXCLUSIVEMODE",
1184 "DDERR_NOFLIPHW",
1185 "DDERR_NOGDI",
1186 "DDERR_NOMIRRORHW",
1187 "DDERR_NOTFOUND",
1188 "DDERR_NOOVERLAYHW",
1189 "DDERR_OVERLAPPINGRECTS",
1190 "DDERR_NORASTEROPHW",
1191 "DDERR_NOROTATIONHW",
1192 "DDERR_NOSTRETCHHW",
1193 "DDERR_NOT4BITCOLOR",
1194 "DDERR_NOT4BITCOLORINDEX",
1195 "DDERR_NOT8BITCOLOR",
1196 "DDERR_NOTEXTUREHW",
1197 "DDERR_NOVSYNCHW",
1198 "DDERR_NOZBUFFERHW",
1199 "DDERR_NOZOVERLAYHW",
1200 "DDERR_OUTOFCAPS",
1201 "DDERR_OUTOFMEMORY",
1202 "DDERR_OUTOFVIDEOMEMORY",
1203 "DDERR_OVERLAYCANTCLIP",
1204 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1205 "DDERR_PALETTEBUSY",
1206 "DDERR_COLORKEYNOTSET",
1207 "DDERR_SURFACEALREADYATTACHED",
1208 "DDERR_SURFACEALREADYDEPENDENT",
1209 "DDERR_SURFACEBUSY",
1210 "DDERR_CANTLOCKSURFACE",
1211 "DDERR_SURFACEISOBSCURED",
1212 "DDERR_SURFACELOST",
1213 "DDERR_SURFACENOTATTACHED",
1214 "DDERR_TOOBIGHEIGHT",
1215 "DDERR_TOOBIGSIZE",
1216 "DDERR_TOOBIGWIDTH",
1217 "DDERR_UNSUPPORTED",
1218 "DDERR_UNSUPPORTEDFORMAT",
1219 "DDERR_UNSUPPORTEDMASK",
1220 "DDERR_INVALIDSTREAM",
1221 "DDERR_VERTICALBLANKINPROGRESS",
1222 "DDERR_WASSTILLDRAWING",
1223 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1224 "DDERR_XALIGN",
1225 "DDERR_INVALIDDIRECTDRAWGUID",
1226 "DDERR_DIRECTDRAWALREADYCREATED",
1227 "DDERR_NODIRECTDRAWHW",
1228 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1229 "DDERR_NOEMULATION",
1230 "DDERR_REGIONTOOSMALL",
1231 "DDERR_CLIPPERISUSINGHWND",
1232 "DDERR_NOCLIPPERATTACHED",
1233 "DDERR_NOHWND",
1234 "DDERR_HWNDSUBCLASSED",
1235 "DDERR_HWNDALREADYSET",
1236 "DDERR_NOPALETTEATTACHED",
1237 "DDERR_NOPALETTEHW",
1238 "DDERR_BLTFASTCANTCLIP",
1239 "DDERR_NOBLTHW",
1240 "DDERR_NODDROPSHW",
1241 "DDERR_OVERLAYNOTVISIBLE",
1242 "DDERR_NOOVERLAYDEST",
1243 "DDERR_INVALIDPOSITION",
1244 "DDERR_NOTAOVERLAYSURFACE",
1245 "DDERR_EXCLUSIVEMODEALREADYSET",
1246 "DDERR_NOTFLIPPABLE",
1247 "DDERR_CANTDUPLICATE",
1248 "DDERR_NOTLOCKED",
1249 "DDERR_CANTCREATEDC",
1250 "DDERR_NODC",
1251 "DDERR_WRONGMODE",
1252 "DDERR_IMPLICITLYCREATED",
1253 "DDERR_NOTPALETTIZED",
1254 "DDERR_UNSUPPORTEDMODE",
1255 "DDERR_NOMIPMAPHW",
1256 "DDERR_INVALIDSURFACETYPE",
1257 "DDERR_NOOPTIMIZEHW",
1258 "DDERR_NOTLOADED",
1259 "DDERR_NOFOCUSWINDOW",
1260 "DDERR_NOTONMIPMAPSUBLEVEL",
1261 "DDERR_DCALREADYCREATED",
1262 "DDERR_NONONLOCALVIDMEM",
1263 "DDERR_CANTPAGELOCK",
1264 "DDERR_CANTPAGEUNLOCK",
1265 "DDERR_NOTPAGELOCKED",
1266 "DDERR_MOREDATA",
1267 "DDERR_EXPIRED",
1268 "DDERR_TESTFINISHED",
1269 "DDERR_NEWMODE",
1270 "DDERR_D3DNOTINITIALIZED",
1271 "DDERR_VIDEONOTACTIVE",
1272 "DDERR_NOMONITORINFORMATION",
1273 "DDERR_NODRIVERSUPPORT",
1274 "DDERR_DEVICEDOESNTOWNSURFACE",
1275 "DDERR_NOTINITIALIZED",
1276])
1277
José Fonseca31524192010-11-22 21:05:26 +00001278LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1279LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1280LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1281LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1282LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
José Fonseca91af9232009-04-13 16:15:28 +01001283
1284IDirectDraw.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001285 StdMethod(DDRESULT, "Compact", []),
1286 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1287 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1288 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1289 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001290 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1291 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001292 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001293 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1294 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1295 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001296 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001297 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1298 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1299 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001300 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1301 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1302 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1303 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1304 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca91af9232009-04-13 16:15:28 +01001305]
1306
1307IDirectDraw2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001308 StdMethod(DDRESULT, "Compact", []),
1309 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1310 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1311 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1312 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001313 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1314 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001315 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001316 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1317 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1318 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001319 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001320 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1321 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1322 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001323 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1324 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1325 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1326 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1327 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001328 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001329]
1330
1331IDirectDraw4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001332 StdMethod(DDRESULT, "Compact", []),
1333 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1334 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1335 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1336 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001337 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1338 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001339 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001340 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1341 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1342 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001343 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001344 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1345 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1346 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001347 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1348 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1349 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1350 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1351 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001352 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001353 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1354 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1355 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001356 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001357]
1358
1359IDirectDraw7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001360 StdMethod(DDRESULT, "Compact", []),
1361 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1362 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1363 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1364 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001365 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1366 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001367 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001368 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1369 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1370 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001371 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001372 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1373 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1374 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001375 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1376 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1377 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1378 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1379 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001380 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001381 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1382 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1383 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001384 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001385 StdMethod(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1386 StdMethod(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
José Fonseca91af9232009-04-13 16:15:28 +01001387]
1388
1389IDirectDrawPalette.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001390 StdMethod(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")], sideeffects=False),
Jose Fonsecadeb1d682015-05-20 17:19:18 +01001391 StdMethod(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(Array(PALETTEENTRY, "dwNumEntries"), "lpEntries")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001392 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
Jose Fonsecadeb1d682015-05-20 17:19:18 +01001393 StdMethod(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (Array(PALETTEENTRY, "dwCount"), "lpEntries")]),
José Fonseca91af9232009-04-13 16:15:28 +01001394]
1395
1396IDirectDrawClipper.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001397 StdMethod(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")], sideeffects=False),
1398 StdMethod(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001399 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1400 StdMethod(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1401 StdMethod(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1402 StdMethod(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
José Fonseca91af9232009-04-13 16:15:28 +01001403]
1404
1405
1406IDirectDrawSurface.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001407 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1408 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1409 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1410 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1411 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1412 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001413 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1414 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001415 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1416 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1417 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001418 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001419 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001420 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1421 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1422 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1423 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001424 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001425 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1426 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001427 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1428 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001429 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001430 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001431 StdMethod(DDRESULT, "Restore", []),
1432 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1433 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1434 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1435 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1436 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1437 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1438 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1439 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
José Fonseca91af9232009-04-13 16:15:28 +01001440]
1441
1442IDirectDrawSurface2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001443 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1444 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1445 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1446 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1447 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1448 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001449 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1450 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001451 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1452 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001453 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1454 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001455 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001456 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1457 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1458 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1459 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001460 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001461 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1462 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001463 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1464 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001465 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001466 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001467 StdMethod(DDRESULT, "Restore", []),
1468 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1469 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1470 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1471 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1472 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1473 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1474 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1475 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001476 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001477 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1478 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001479]
1480
1481IDirectDrawSurface3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001482 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1483 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1484 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1485 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1486 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1487 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001488 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1489 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001490 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1491 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001492 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1493 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001494 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001495 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1496 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1497 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1498 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001499 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001500 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1501 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001502 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1503 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001504 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001505 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001506 StdMethod(DDRESULT, "Restore", []),
1507 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1508 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1509 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1510 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1511 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1512 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1513 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1514 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001515 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001516 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1517 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1518 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001519]
1520
1521IDirectDrawSurface4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001522 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1523 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1524 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1525 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1526 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1527 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001528 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
1529 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001530 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1531 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001532 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1533 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001534 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001535 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1536 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1537 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1538 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001539 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001540 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1541 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001542 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1543 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001544 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001545 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001546 StdMethod(DDRESULT, "Restore", []),
1547 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1548 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1549 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1550 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1551 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1552 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1553 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1554 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001555 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001556 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1557 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1558 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001559 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1560 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1561 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001562 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1563 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
José Fonseca91af9232009-04-13 16:15:28 +01001564]
1565
1566IDirectDrawSurface7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001567 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1568 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1569 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1570 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1571 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1572 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001573 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
1574 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001575 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1576 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1577 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1578 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1579 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1580 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001581 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001582 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001583 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001584 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001585 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1586 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001587 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001588 StdMethod(DDRESULT, "IsLost", [], sideeffects=False),
1589 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1590 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001591 StdMethod(DDRESULT, "Restore", []),
1592 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1593 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1594 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1595 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1596 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1597 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1598 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1599 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001600 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001601 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1602 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1603 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001604 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1605 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1606 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
1607 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001608 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1609 StdMethod(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001610 StdMethod(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001611 StdMethod(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001612 StdMethod(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001613]
1614
1615IDirectDrawColorControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001616 StdMethod(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1617 StdMethod(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
José Fonseca91af9232009-04-13 16:15:28 +01001618]
1619
1620IDirectDrawGammaControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001621 StdMethod(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
1622 StdMethod(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]),
José Fonseca91af9232009-04-13 16:15:28 +01001623]
1624
José Fonseca31524192010-11-22 21:05:26 +00001625LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1626LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1627LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1628LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
José Fonseca91af9232009-04-13 16:15:28 +01001629
José Fonseca81301932012-11-11 00:10:20 +00001630ddraw = Module("ddraw")
José Fonseca54f304a2012-01-14 19:33:08 +00001631ddraw.addFunctions([
José Fonseca50c2a142015-01-15 13:10:46 +00001632 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1633 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1634 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
1635 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
Jose Fonseca68d05032015-10-30 23:06:57 +00001636 StdFunction(HRESULT, "DirectDrawCreate", [(DDCREATE_LPGUID, "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
1637 StdFunction(HRESULT, "DirectDrawCreateEx", [(DDCREATE_LPGUID, "lpGUID"), Out(Pointer(ObjPointer(Void)), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca9782b292012-04-14 22:02:42 +01001638 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecaa6f94092012-11-11 00:22:33 +00001639 StdFunction(Void, "AcquireDDThreadLock", [], internal=True),
1640 StdFunction(Void, "ReleaseDDThreadLock", [], internal=True),
José Fonseca50c2a142015-01-15 13:10:46 +00001641 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")], internal=True),
1642 StdFunction(HRESULT, "DllCanUnloadNow", [], internal=True),
1643 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")], sideeffects=False),
José Fonsecabb8760b2011-05-25 23:21:18 +01001644
1645 # XXX
José Fonseca50c2a142015-01-15 13:10:46 +00001646 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int], internal=True),
1647 #StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int], internal=True),
1648 StdFunction(HRESULT, "DDInternalLock", [Int, Int], internal=True),
1649 StdFunction(HRESULT, "DDInternalUnlock", [Int], internal=True),
1650 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int], internal=True),
1651 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int], internal=True),
1652 StdFunction(HANDLE, "GetOLEThunkData", [Int], internal=True),
1653 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int], internal=True),
1654 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int], internal=True),
José Fonsecabb8760b2011-05-25 23:21:18 +01001655
1656 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001657])
José Fonseca91af9232009-04-13 16:15:28 +01001658
Bastien Bouclet33d05062015-02-12 12:41:06 +01001659# Add otherwise unreferenced interfaces
1660ddraw.addInterfaces([
1661 IDirectDrawSurface2,
1662 IDirectDrawSurface3,
Jose Fonseca481d3a12015-06-22 15:17:59 +01001663 IDirectDrawColorControl,
1664 IDirectDrawGammaControl,
Bastien Bouclet33d05062015-02-12 12:41:06 +01001665])