blob: 39b4121e8e0168f618da3483546abce26cd791dc [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
Piotr Podsiadły0b8b0192019-01-03 20:39:55 +010028from .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"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000111
112 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100113 (DWORD, "dwZDestConst"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000114 #(LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
115
José Fonseca91af9232009-04-13 16:15:28 +0100116 (DWORD, "dwZSrcConstBitDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000117
118 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100119 (DWORD, "dwZSrcConst"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000120 #(LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
121
José Fonseca91af9232009-04-13 16:15:28 +0100122 (DWORD, "dwAlphaEdgeBlendBitDepth"),
123 (DWORD, "dwAlphaEdgeBlend"),
124 (DWORD, "dwReserved"),
125 (DWORD, "dwAlphaDestConstBitDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000126
127 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100128 (DWORD, "dwAlphaDestConst"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000129 #(LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
130
José Fonseca91af9232009-04-13 16:15:28 +0100131 (DWORD, "dwAlphaSrcConstBitDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000132
133 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100134 (DWORD, "dwAlphaSrcConst"),
135 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000136
137 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100138 (DWORD, "dwFillColor"),
139 (DWORD, "dwFillDepth"),
140 (DWORD, "dwFillPixel"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000141 #(LPDIRECTDRAWSURFACE, "lpDDSPattern"),
142
José Fonseca91af9232009-04-13 16:15:28 +0100143 (DDCOLORKEY, "ddckDestColorkey"),
144 (DDCOLORKEY, "ddckSrcColorkey"),
145])
146LPDDBLTFX = Pointer(DDBLTFX)
147
José Fonseca7cdbd382015-01-16 10:59:02 +0000148DirectDrawCapsFlags = Flags(DWORD, [
149 "DDSCAPS_RESERVED1",
150 "DDSCAPS_ALPHA",
151 "DDSCAPS_BACKBUFFER",
152 "DDSCAPS_COMPLEX",
153 "DDSCAPS_FLIP",
154 "DDSCAPS_FRONTBUFFER",
155 "DDSCAPS_OFFSCREENPLAIN",
156 "DDSCAPS_OVERLAY",
157 "DDSCAPS_PALETTE",
158 "DDSCAPS_PRIMARYSURFACE",
159 "DDSCAPS_RESERVED3", # was DDSCAPS_PRIMARYSURFACELEFT
160 "DDSCAPS_SYSTEMMEMORY",
161 "DDSCAPS_TEXTURE",
162 "DDSCAPS_3DDEVICE",
163 "DDSCAPS_VIDEOMEMORY",
164 "DDSCAPS_VISIBLE",
165 "DDSCAPS_WRITEONLY",
166 "DDSCAPS_ZBUFFER",
167 "DDSCAPS_OWNDC",
168 "DDSCAPS_LIVEVIDEO",
169 "DDSCAPS_HWCODEC",
170 "DDSCAPS_MODEX",
171 "DDSCAPS_MIPMAP",
172 "DDSCAPS_RESERVED2",
173 "DDSCAPS_ALLOCONLOAD",
174 "DDSCAPS_VIDEOPORT",
175 "DDSCAPS_LOCALVIDMEM",
176 "DDSCAPS_NONLOCALVIDMEM",
177 "DDSCAPS_STANDARDVGAMODE",
178 "DDSCAPS_OPTIMIZED",
179])
180
181DirectDrawCapabilityFlags2 = Flags(DWORD, [
182 "DDSCAPS2_RESERVED4", # was DDSCAPS2_HARDWAREDEINTERLACE
183 "DDSCAPS2_HINTDYNAMIC",
184 "DDSCAPS2_HINTSTATIC",
185 "DDSCAPS2_TEXTUREMANAGE",
186 "DDSCAPS2_RESERVED1",
187 "DDSCAPS2_RESERVED2",
188 "DDSCAPS2_OPAQUE",
189 "DDSCAPS2_HINTANTIALIASING",
190 "DDSCAPS2_CUBEMAP",
191 "DDSCAPS2_CUBEMAP_ALLFACES",
192 "DDSCAPS2_CUBEMAP_POSITIVEX",
193 "DDSCAPS2_CUBEMAP_NEGATIVEX",
194 "DDSCAPS2_CUBEMAP_POSITIVEY",
195 "DDSCAPS2_CUBEMAP_NEGATIVEY",
196 "DDSCAPS2_CUBEMAP_POSITIVEZ",
197 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
198 "DDSCAPS2_MIPMAPSUBLEVEL",
199 "DDSCAPS2_D3DTEXTUREMANAGE",
200 "DDSCAPS2_DONOTPERSIST",
201 "DDSCAPS2_STEREOSURFACELEFT",
202 "DDSCAPS2_VOLUME",
203 "DDSCAPS2_NOTUSERLOCKABLE",
204 "DDSCAPS2_POINTS",
205 "DDSCAPS2_RTPATCHES",
206 "DDSCAPS2_NPATCHES",
207 "DDSCAPS2_RESERVED3",
208 "DDSCAPS2_DISCARDBACKBUFFER",
209 "DDSCAPS2_ENABLEALPHACHANNEL",
210 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
211 "DDSCAPS2_ADDITIONALPRIMARY",
212])
213DirectDrawCapabilityFlags3 = Flags(DWORD, [
214 "DDSCAPS3_MULTISAMPLE_MASK",
215 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
216 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
217 "DDSCAPS3_RESERVED1",
218 "DDSCAPS3_RESERVED2",
219 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
220 "DDSCAPS3_AUTOGENMIPMAP",
221 "DDSCAPS3_DMAP",
222 "DDSCAPS3_CREATESHAREDRESOURCE",
223 "DDSCAPS3_READONLYRESOURCE",
224 "DDSCAPS3_OPENSHAREDRESOURCE",
225])
226
José Fonseca91af9232009-04-13 16:15:28 +0100227DDSCAPS = Struct("DDSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000228 (DirectDrawCapsFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100229])
230LPDDSCAPS = Pointer(DDSCAPS)
231
José Fonseca7cdbd382015-01-16 10:59:02 +0000232DDOSDCAPSFlags = Flags(DWORD, [
233 "DDOSDCAPS_OPTCOMPRESSED",
234 "DDOSDCAPS_OPTREORDERED",
235 "DDOSDCAPS_MONOLITHICMIPMAP",
236 "DDOSDCAPS_VALIDSCAPS",
237 "DDOSDCAPS_VALIDOSCAPS",
238])
239
José Fonseca91af9232009-04-13 16:15:28 +0100240DDOSCAPS = Struct("DDOSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000241 (DDOSDCAPSFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100242])
243LPDDOSCAPS = Pointer(DDOSCAPS)
244
245DDSCAPSEX = Struct("DDSCAPSEX", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000246 (DirectDrawCapabilityFlags2, "dwCaps2"),
247 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100248 (DWORD, "dwCaps4"),
249])
250
251DDSCAPS2 = Struct("DDSCAPS2", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000252 (DirectDrawCapsFlags, "dwCaps"),
253 (DirectDrawCapabilityFlags2, "dwCaps2"),
254 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100255 (DWORD, "dwCaps4"),
256])
257LPDDSCAPS2 = Pointer(DDSCAPS2)
258
259DDCAPS_DX1 = Struct("DDCAPS_DX1", [
260 (DWORD, "dwSize"),
261 (DWORD, "dwCaps"),
262 (DWORD, "dwCaps2"),
263 (DWORD, "dwCKeyCaps"),
264 (DWORD, "dwFXCaps"),
265 (DWORD, "dwFXAlphaCaps"),
266 (DWORD, "dwPalCaps"),
267 (DWORD, "dwSVCaps"),
268 (DWORD, "dwAlphaBltConstBitDepths"),
269 (DWORD, "dwAlphaBltPixelBitDepths"),
270 (DWORD, "dwAlphaBltSurfaceBitDepths"),
271 (DWORD, "dwAlphaOverlayConstBitDepths"),
272 (DWORD, "dwAlphaOverlayPixelBitDepths"),
273 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
274 (DWORD, "dwZBufferBitDepths"),
275 (DWORD, "dwVidMemTotal"),
276 (DWORD, "dwVidMemFree"),
277 (DWORD, "dwMaxVisibleOverlays"),
278 (DWORD, "dwCurrVisibleOverlays"),
279 (DWORD, "dwNumFourCCCodes"),
280 (DWORD, "dwAlignBoundarySrc"),
281 (DWORD, "dwAlignSizeSrc"),
282 (DWORD, "dwAlignBoundaryDest"),
283 (DWORD, "dwAlignSizeDest"),
284 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100285 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100286 (DDSCAPS, "ddsCaps"),
287 (DWORD, "dwMinOverlayStretch"),
288 (DWORD, "dwMaxOverlayStretch"),
289 (DWORD, "dwMinLiveVideoStretch"),
290 (DWORD, "dwMaxLiveVideoStretch"),
291 (DWORD, "dwMinHwCodecStretch"),
292 (DWORD, "dwMaxHwCodecStretch"),
293 (DWORD, "dwReserved1"),
294 (DWORD, "dwReserved2"),
295 (DWORD, "dwReserved3"),
296])
297LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
298
299DDCAPS_DX3 = Struct("DDCAPS_DX3", [
300 (DWORD, "dwSize"),
301 (DWORD, "dwCaps"),
302 (DWORD, "dwCaps2"),
303 (DWORD, "dwCKeyCaps"),
304 (DWORD, "dwFXCaps"),
305 (DWORD, "dwFXAlphaCaps"),
306 (DWORD, "dwPalCaps"),
307 (DWORD, "dwSVCaps"),
308 (DWORD, "dwAlphaBltConstBitDepths"),
309 (DWORD, "dwAlphaBltPixelBitDepths"),
310 (DWORD, "dwAlphaBltSurfaceBitDepths"),
311 (DWORD, "dwAlphaOverlayConstBitDepths"),
312 (DWORD, "dwAlphaOverlayPixelBitDepths"),
313 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
314 (DWORD, "dwZBufferBitDepths"),
315 (DWORD, "dwVidMemTotal"),
316 (DWORD, "dwVidMemFree"),
317 (DWORD, "dwMaxVisibleOverlays"),
318 (DWORD, "dwCurrVisibleOverlays"),
319 (DWORD, "dwNumFourCCCodes"),
320 (DWORD, "dwAlignBoundarySrc"),
321 (DWORD, "dwAlignSizeSrc"),
322 (DWORD, "dwAlignBoundaryDest"),
323 (DWORD, "dwAlignSizeDest"),
324 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100325 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100326 (DDSCAPS, "ddsCaps"),
327 (DWORD, "dwMinOverlayStretch"),
328 (DWORD, "dwMaxOverlayStretch"),
329 (DWORD, "dwMinLiveVideoStretch"),
330 (DWORD, "dwMaxLiveVideoStretch"),
331 (DWORD, "dwMinHwCodecStretch"),
332 (DWORD, "dwMaxHwCodecStretch"),
333 (DWORD, "dwReserved1"),
334 (DWORD, "dwReserved2"),
335 (DWORD, "dwReserved3"),
336 (DWORD, "dwSVBCaps"),
337 (DWORD, "dwSVBCKeyCaps"),
338 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100339 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100340 (DWORD, "dwVSBCaps"),
341 (DWORD, "dwVSBCKeyCaps"),
342 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100343 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100344 (DWORD, "dwSSBCaps"),
345 (DWORD, "dwSSBCKeyCaps"),
346 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100347 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100348 (DWORD, "dwReserved4"),
349 (DWORD, "dwReserved5"),
350 (DWORD, "dwReserved6"),
351])
352LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
353
354DDCAPS_DX5 = Struct("DDCAPS_DX5", [
355 (DWORD, "dwSize"),
356 (DWORD, "dwCaps"),
357 (DWORD, "dwCaps2"),
358 (DWORD, "dwCKeyCaps"),
359 (DWORD, "dwFXCaps"),
360 (DWORD, "dwFXAlphaCaps"),
361 (DWORD, "dwPalCaps"),
362 (DWORD, "dwSVCaps"),
363 (DWORD, "dwAlphaBltConstBitDepths"),
364 (DWORD, "dwAlphaBltPixelBitDepths"),
365 (DWORD, "dwAlphaBltSurfaceBitDepths"),
366 (DWORD, "dwAlphaOverlayConstBitDepths"),
367 (DWORD, "dwAlphaOverlayPixelBitDepths"),
368 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
369 (DWORD, "dwZBufferBitDepths"),
370 (DWORD, "dwVidMemTotal"),
371 (DWORD, "dwVidMemFree"),
372 (DWORD, "dwMaxVisibleOverlays"),
373 (DWORD, "dwCurrVisibleOverlays"),
374 (DWORD, "dwNumFourCCCodes"),
375 (DWORD, "dwAlignBoundarySrc"),
376 (DWORD, "dwAlignSizeSrc"),
377 (DWORD, "dwAlignBoundaryDest"),
378 (DWORD, "dwAlignSizeDest"),
379 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100380 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100381 (DDSCAPS, "ddsCaps"),
382 (DWORD, "dwMinOverlayStretch"),
383 (DWORD, "dwMaxOverlayStretch"),
384 (DWORD, "dwMinLiveVideoStretch"),
385 (DWORD, "dwMaxLiveVideoStretch"),
386 (DWORD, "dwMinHwCodecStretch"),
387 (DWORD, "dwMaxHwCodecStretch"),
388 (DWORD, "dwReserved1"),
389 (DWORD, "dwReserved2"),
390 (DWORD, "dwReserved3"),
391 (DWORD, "dwSVBCaps"),
392 (DWORD, "dwSVBCKeyCaps"),
393 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100394 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100395 (DWORD, "dwVSBCaps"),
396 (DWORD, "dwVSBCKeyCaps"),
397 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100398 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100399 (DWORD, "dwSSBCaps"),
400 (DWORD, "dwSSBCKeyCaps"),
401 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100402 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100403 (DWORD, "dwMaxVideoPorts"),
404 (DWORD, "dwCurrVideoPorts"),
405 (DWORD, "dwSVBCaps2"),
406 (DWORD, "dwNLVBCaps"),
407 (DWORD, "dwNLVBCaps2"),
408 (DWORD, "dwNLVBCKeyCaps"),
409 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100410 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100411])
412LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
413
414DDCAPS_DX6 = Struct("DDCAPS_DX6", [
415 (DWORD, "dwSize"),
416 (DWORD, "dwCaps"),
417 (DWORD, "dwCaps2"),
418 (DWORD, "dwCKeyCaps"),
419 (DWORD, "dwFXCaps"),
420 (DWORD, "dwFXAlphaCaps"),
421 (DWORD, "dwPalCaps"),
422 (DWORD, "dwSVCaps"),
423 (DWORD, "dwAlphaBltConstBitDepths"),
424 (DWORD, "dwAlphaBltPixelBitDepths"),
425 (DWORD, "dwAlphaBltSurfaceBitDepths"),
426 (DWORD, "dwAlphaOverlayConstBitDepths"),
427 (DWORD, "dwAlphaOverlayPixelBitDepths"),
428 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
429 (DWORD, "dwZBufferBitDepths"),
430 (DWORD, "dwVidMemTotal"),
431 (DWORD, "dwVidMemFree"),
432 (DWORD, "dwMaxVisibleOverlays"),
433 (DWORD, "dwCurrVisibleOverlays"),
434 (DWORD, "dwNumFourCCCodes"),
435 (DWORD, "dwAlignBoundarySrc"),
436 (DWORD, "dwAlignSizeSrc"),
437 (DWORD, "dwAlignBoundaryDest"),
438 (DWORD, "dwAlignSizeDest"),
439 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100440 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100441 (DDSCAPS, "ddsOldCaps"),
442 (DWORD, "dwMinOverlayStretch"),
443 (DWORD, "dwMaxOverlayStretch"),
444 (DWORD, "dwMinLiveVideoStretch"),
445 (DWORD, "dwMaxLiveVideoStretch"),
446 (DWORD, "dwMinHwCodecStretch"),
447 (DWORD, "dwMaxHwCodecStretch"),
448 (DWORD, "dwReserved1"),
449 (DWORD, "dwReserved2"),
450 (DWORD, "dwReserved3"),
451 (DWORD, "dwSVBCaps"),
452 (DWORD, "dwSVBCKeyCaps"),
453 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100454 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100455 (DWORD, "dwVSBCaps"),
456 (DWORD, "dwVSBCKeyCaps"),
457 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100458 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100459 (DWORD, "dwSSBCaps"),
460 (DWORD, "dwSSBCKeyCaps"),
461 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100462 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100463 (DWORD, "dwMaxVideoPorts"),
464 (DWORD, "dwCurrVideoPorts"),
465 (DWORD, "dwSVBCaps2"),
466 (DWORD, "dwNLVBCaps"),
467 (DWORD, "dwNLVBCaps2"),
468 (DWORD, "dwNLVBCKeyCaps"),
469 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100470 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100471 (DDSCAPS2, "ddsCaps"),
472])
473LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
474
475DDCAPS_DX7 = Struct("DDCAPS_DX7", [
476 (DWORD, "dwSize"),
477 (DWORD, "dwCaps"),
478 (DWORD, "dwCaps2"),
479 (DWORD, "dwCKeyCaps"),
480 (DWORD, "dwFXCaps"),
481 (DWORD, "dwFXAlphaCaps"),
482 (DWORD, "dwPalCaps"),
483 (DWORD, "dwSVCaps"),
484 (DWORD, "dwAlphaBltConstBitDepths"),
485 (DWORD, "dwAlphaBltPixelBitDepths"),
486 (DWORD, "dwAlphaBltSurfaceBitDepths"),
487 (DWORD, "dwAlphaOverlayConstBitDepths"),
488 (DWORD, "dwAlphaOverlayPixelBitDepths"),
489 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
490 (DWORD, "dwZBufferBitDepths"),
491 (DWORD, "dwVidMemTotal"),
492 (DWORD, "dwVidMemFree"),
493 (DWORD, "dwMaxVisibleOverlays"),
494 (DWORD, "dwCurrVisibleOverlays"),
495 (DWORD, "dwNumFourCCCodes"),
496 (DWORD, "dwAlignBoundarySrc"),
497 (DWORD, "dwAlignSizeSrc"),
498 (DWORD, "dwAlignBoundaryDest"),
499 (DWORD, "dwAlignSizeDest"),
500 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100501 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100502 (DDSCAPS, "ddsOldCaps"),
503 (DWORD, "dwMinOverlayStretch"),
504 (DWORD, "dwMaxOverlayStretch"),
505 (DWORD, "dwMinLiveVideoStretch"),
506 (DWORD, "dwMaxLiveVideoStretch"),
507 (DWORD, "dwMinHwCodecStretch"),
508 (DWORD, "dwMaxHwCodecStretch"),
509 (DWORD, "dwReserved1"),
510 (DWORD, "dwReserved2"),
511 (DWORD, "dwReserved3"),
512 (DWORD, "dwSVBCaps"),
513 (DWORD, "dwSVBCKeyCaps"),
514 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100515 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100516 (DWORD, "dwVSBCaps"),
517 (DWORD, "dwVSBCKeyCaps"),
518 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100519 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100520 (DWORD, "dwSSBCaps"),
521 (DWORD, "dwSSBCKeyCaps"),
522 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100523 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100524 (DWORD, "dwMaxVideoPorts"),
525 (DWORD, "dwCurrVideoPorts"),
526 (DWORD, "dwSVBCaps2"),
527 (DWORD, "dwNLVBCaps"),
528 (DWORD, "dwNLVBCaps2"),
529 (DWORD, "dwNLVBCKeyCaps"),
530 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100531 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100532 (DDSCAPS2, "ddsCaps"),
533])
534LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
535DDCAPS = DDCAPS_DX7
536LPDDCAPS = Pointer(DDCAPS)
537
José Fonseca7cdbd382015-01-16 10:59:02 +0000538DirectDrawPixelFormatFlags = Flags(DWORD, [
539 "DDPF_ALPHAPIXELS",
540 "DDPF_ALPHA",
541 "DDPF_FOURCC",
542 "DDPF_PALETTEINDEXED4",
543 "DDPF_PALETTEINDEXEDTO8",
544 "DDPF_PALETTEINDEXED8",
545 "DDPF_RGB",
546 "DDPF_COMPRESSED",
547 "DDPF_RGBTOYUV",
548 "DDPF_YUV",
549 "DDPF_ZBUFFER",
550 "DDPF_PALETTEINDEXED1",
551 "DDPF_PALETTEINDEXED2",
552 "DDPF_ZPIXELS",
553 "DDPF_STENCILBUFFER",
554 "DDPF_ALPHAPREMULT",
555 "DDPF_LUMINANCE",
556 "DDPF_BUMPLUMINANCE",
557 "DDPF_BUMPDUDV",
558])
559
José Fonseca91af9232009-04-13 16:15:28 +0100560DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
561 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000562 (DirectDrawPixelFormatFlags, "dwFlags"),
José Fonseca91af9232009-04-13 16:15:28 +0100563 (DWORD, "dwFourCC"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000564
565 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100566 (DWORD, "dwRGBBitCount"),
567 (DWORD, "dwYUVBitCount"),
568 (DWORD, "dwZBufferBitDepth"),
569 (DWORD, "dwAlphaBitDepth"),
570 (DWORD, "dwLuminanceBitCount"),
571 (DWORD, "dwBumpBitCount"),
572 (DWORD, "dwPrivateFormatBitCount"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000573
574 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100575 (DWORD, "dwRBitMask"),
576 (DWORD, "dwYBitMask"),
577 (DWORD, "dwStencilBitDepth"),
578 (DWORD, "dwLuminanceBitMask"),
579 (DWORD, "dwBumpDuBitMask"),
580 (DWORD, "dwOperations"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000581
582 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100583 (DWORD, "dwGBitMask"),
584 (DWORD, "dwUBitMask"),
585 (DWORD, "dwZBitMask"),
586 (DWORD, "dwBumpDvBitMask"),
José Fonsecab6dda3b2012-11-26 19:47:45 +0000587 (Struct(None, [
588 (WORD, "wFlipMSTypes"),
589 (WORD, "wBltMSTypes"),
590 ]), "MultiSampleCaps"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000591
592 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100593 (DWORD, "dwBBitMask"),
594 (DWORD, "dwVBitMask"),
595 (DWORD, "dwStencilBitMask"),
596 (DWORD, "dwBumpLuminanceBitMask"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000597
598 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100599 (DWORD, "dwRGBAlphaBitMask"),
600 (DWORD, "dwYUVAlphaBitMask"),
601 (DWORD, "dwLuminanceAlphaBitMask"),
602 (DWORD, "dwRGBZBitMask"),
603 (DWORD, "dwYUVZBitMask"),
604])
605LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
606
607DDOVERLAYFX = Struct("DDOVERLAYFX", [
608 (DWORD, "dwSize"),
609 (DWORD, "dwAlphaEdgeBlendBitDepth"),
610 (DWORD, "dwAlphaEdgeBlend"),
611 (DWORD, "dwReserved"),
612 (DWORD, "dwAlphaDestConstBitDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000613
614 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100615 (DWORD, "dwAlphaDestConst"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000616 #(LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
617
José Fonseca91af9232009-04-13 16:15:28 +0100618 (DWORD, "dwAlphaSrcConstBitDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000619
620 # FIXME: Anonymous union
José Fonseca91af9232009-04-13 16:15:28 +0100621 (DWORD, "dwAlphaSrcConst"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000622 #(LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
623
José Fonseca91af9232009-04-13 16:15:28 +0100624 (DDCOLORKEY, "dckDestColorkey"),
625 (DDCOLORKEY, "dckSrcColorkey"),
626 (DWORD, "dwDDFX"),
627 (DWORD, "dwFlags"),
628])
629LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
630
631DDBLTBATCH = Struct("DDBLTBATCH", [
632 (LPRECT, "lprDest"),
633 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
634 (LPRECT, "lprSrc"),
635 (DWORD, "dwFlags"),
636 (LPDDBLTFX, "lpDDBltFx"),
637])
638LPDDBLTBATCH = Pointer(DDBLTBATCH)
639
640DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonseca44756652011-10-15 10:26:30 +0100641 (Array(WORD, 256), "red"),
642 (Array(WORD, 256), "green"),
643 (Array(WORD, 256), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100644])
645LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
646
647DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000648 (CString, "szDriver"),
649 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100650 (LARGE_INTEGER, "liDriverVersion"),
651 (DWORD, "dwVendorId"),
652 (DWORD, "dwDeviceId"),
653 (DWORD, "dwSubSysId"),
654 (DWORD, "dwRevision"),
655 (GUID, "guidDeviceIdentifier"),
656])
657LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
658
659DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100660 (CString, "szDriver"),
661 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100662 (LARGE_INTEGER, "liDriverVersion"),
663 (DWORD, "dwVendorId"),
664 (DWORD, "dwDeviceId"),
665 (DWORD, "dwSubSysId"),
666 (DWORD, "dwRevision"),
667 (GUID, "guidDeviceIdentifier"),
668 (DWORD, "dwWHQLLevel"),
669])
670LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
671
José Fonseca08d21782011-05-26 00:58:26 +0100672LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
673LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100674
José Fonseca08d21782011-05-26 00:58:26 +0100675DirectDrawSurfaceDescFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100676 "DDSD_CAPS",
677 "DDSD_HEIGHT",
678 "DDSD_WIDTH",
679 "DDSD_PITCH",
680 "DDSD_BACKBUFFERCOUNT",
681 "DDSD_ZBUFFERBITDEPTH",
682 "DDSD_ALPHABITDEPTH",
683 "DDSD_LPSURFACE",
684 "DDSD_PIXELFORMAT",
685 "DDSD_CKDESTOVERLAY",
686 "DDSD_CKDESTBLT",
687 "DDSD_CKSRCOVERLAY",
688 "DDSD_CKSRCBLT",
689 "DDSD_MIPMAPCOUNT",
690 "DDSD_REFRESHRATE",
691 "DDSD_LINEARSIZE",
692 "DDSD_TEXTURESTAGE",
693 "DDSD_FVF",
694 "DDSD_SRCVBHANDLE",
695 "DDSD_DEPTH",
696 "DDSD_ALL",
697])
698
José Fonseca7cdbd382015-01-16 10:59:02 +0000699DDSURFACEDESC = Struct("DDSURFACEDESC", [
José Fonseca91af9232009-04-13 16:15:28 +0100700 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000701 (DirectDrawSurfaceDescFlags, "dwFlags"),
702 (DWORD, "dwHeight"),
703 (DWORD, "dwWidth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000704
705 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000706 (LONG, "lPitch"),
707 (DWORD, "dwLinearSize"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000708
José Fonseca7cdbd382015-01-16 10:59:02 +0000709 (DWORD, "dwBackBufferCount"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000710
711 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000712 (DWORD, "dwMipMapCount"),
713 (DWORD, "dwZBufferBitDepth"),
714 (DWORD, "dwRefreshRate"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000715
José Fonseca7cdbd382015-01-16 10:59:02 +0000716 (DWORD, "dwAlphaBitDepth"),
717 (DWORD, "dwReserved"),
718 (IntPointer("LPVOID"), "lpSurface"),
719 (DDCOLORKEY, "ddckCKDestOverlay"),
720 (DDCOLORKEY, "ddckCKDestBlt"),
721 (DDCOLORKEY, "ddckCKSrcOverlay"),
722 (DDCOLORKEY, "ddckCKSrcBlt"),
723 (DDPIXELFORMAT, "ddpfPixelFormat"),
724 (DDSCAPS, "ddsCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100725])
José Fonseca7cdbd382015-01-16 10:59:02 +0000726LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
José Fonseca91af9232009-04-13 16:15:28 +0100727
José Fonseca7cdbd382015-01-16 10:59:02 +0000728DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
729 (DWORD, "dwSize"),
730 (DirectDrawSurfaceDescFlags, "dwFlags"),
731 (DWORD, "dwHeight"),
732 (DWORD, "dwWidth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000733
734 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000735 (LONG, "lPitch"),
736 (DWORD, "dwLinearSize"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000737
738 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000739 (DWORD, "dwBackBufferCount"),
740 (DWORD, "dwDepth"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000741
742 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000743 (DWORD, "dwMipMapCount"),
744 (DWORD, "dwRefreshRate"),
745 (DWORD, "dwSrcVBHandle"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000746
José Fonseca7cdbd382015-01-16 10:59:02 +0000747 (DWORD, "dwAlphaBitDepth"),
748 (DWORD, "dwReserved"),
749 (IntPointer("LPVOID"), "lpSurface"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000750
751 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000752 (DDCOLORKEY, "ddckCKDestOverlay"),
753 (DWORD, "dwEmptyFaceColor"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000754
José Fonseca7cdbd382015-01-16 10:59:02 +0000755 (DDCOLORKEY, "ddckCKDestBlt"),
756 (DDCOLORKEY, "ddckCKSrcOverlay"),
757 (DDCOLORKEY, "ddckCKSrcBlt"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000758
759 # FIXME: Anonymous union
José Fonseca7cdbd382015-01-16 10:59:02 +0000760 (DDPIXELFORMAT, "ddpfPixelFormat"),
761 (DWORD, "dwFVF"),
Jose Fonseca58fec9b2017-11-22 11:59:44 +0000762
José Fonseca7cdbd382015-01-16 10:59:02 +0000763 (DDSCAPS2, "ddsCaps"),
764 (DWORD, "dwTextureStage"),
765])
766LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
767
768DDOSD = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100769 "DDOSD_GUID",
770 "DDOSD_COMPRESSION_RATIO",
771 "DDOSD_SCAPS",
772 "DDOSD_OSCAPS",
773 "DDOSD_ALL",
774])
775
José Fonseca7cdbd382015-01-16 10:59:02 +0000776DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
777 (DWORD, "dwSize"),
778 (DDOSD, "dwFlags"),
779 (DDSCAPS2, "ddSCaps"),
780 (DDOSCAPS, "ddOSCaps"),
781 (GUID, "guid"),
782 (DWORD, "dwCompressionRatio"),
José Fonseca91af9232009-04-13 16:15:28 +0100783])
784
785DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
786 (DWORD, "dwSize"),
787 (DWORD, "dwFlags"),
788 (LONG, "lBrightness"),
789 (LONG, "lContrast"),
790 (LONG, "lHue"),
791 (LONG, "lSaturation"),
792 (LONG, "lSharpness"),
793 (LONG, "lGamma"),
794 (LONG, "lColorEnable"),
795 (DWORD, "dwReserved1"),
796])
797LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
798
Jose Fonseca68d05032015-10-30 23:06:57 +0000799DDENUM = Flags(DWORD, [
José Fonseca08d21782011-05-26 00:58:26 +0100800 "DDENUM_ATTACHEDSECONDARYDEVICES",
801 "DDENUM_DETACHEDSECONDARYDEVICES",
802 "DDENUM_NONDISPLAYDEVICES",
803])
804
Jose Fonseca68d05032015-10-30 23:06:57 +0000805DDCREATE = FakeEnum(DWORD, [
José Fonseca08d21782011-05-26 00:58:26 +0100806 "DDCREATE_HARDWAREONLY",
807 "DDCREATE_EMULATIONONLY",
808])
809
Jose Fonseca68d05032015-10-30 23:06:57 +0000810DDCREATE_LPGUID = Polymorphic("reinterpret_cast<uintptr_t>(lpGUID)", [
811 ("DDCREATE_HARDWAREONLY", IntPointer("LPGUID")),
812 ("DDCREATE_EMULATIONONLY", IntPointer("LPGUID")),
813], LPGUID)
814
815
José Fonseca08d21782011-05-26 00:58:26 +0100816DirectDrawColorControlFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100817 "DDCOLOR_BRIGHTNESS",
818 "DDCOLOR_CONTRAST",
819 "DDCOLOR_HUE",
820 "DDCOLOR_SATURATION",
821 "DDCOLOR_SHARPNESS",
822 "DDCOLOR_GAMMA",
823 "DDCOLOR_COLORENABLE",
824])
825
José Fonseca08d21782011-05-26 00:58:26 +0100826DirectDrawDriverCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100827 "DDCAPS_3D",
828 "DDCAPS_ALIGNBOUNDARYDEST",
829 "DDCAPS_ALIGNSIZEDEST",
830 "DDCAPS_ALIGNBOUNDARYSRC",
831 "DDCAPS_ALIGNSIZESRC",
832 "DDCAPS_ALIGNSTRIDE",
833 "DDCAPS_BLT",
834 "DDCAPS_BLTQUEUE",
835 "DDCAPS_BLTFOURCC",
836 "DDCAPS_BLTSTRETCH",
837 "DDCAPS_GDI",
838 "DDCAPS_OVERLAY",
839 "DDCAPS_OVERLAYCANTCLIP",
840 "DDCAPS_OVERLAYFOURCC",
841 "DDCAPS_OVERLAYSTRETCH",
842 "DDCAPS_PALETTE",
843 "DDCAPS_PALETTEVSYNC",
844 "DDCAPS_READSCANLINE",
845 "DDCAPS_RESERVED1",
846 "DDCAPS_VBI",
847 "DDCAPS_ZBLTS",
848 "DDCAPS_ZOVERLAYS",
849 "DDCAPS_COLORKEY",
850 "DDCAPS_ALPHA",
851 "DDCAPS_COLORKEYHWASSIST",
852 "DDCAPS_NOHARDWARE",
853 "DDCAPS_BLTCOLORFILL",
854 "DDCAPS_BANKSWITCHED",
855 "DDCAPS_BLTDEPTHFILL",
856 "DDCAPS_CANCLIP",
857 "DDCAPS_CANCLIPSTRETCHED",
858 "DDCAPS_CANBLTSYSMEM",
859])
860
José Fonseca08d21782011-05-26 00:58:26 +0100861DirectDrawDriverCapsFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100862 "DDCAPS2_CERTIFIED",
863 "DDCAPS2_NO2DDURING3DSCENE",
864 "DDCAPS2_VIDEOPORT",
865 "DDCAPS2_AUTOFLIPOVERLAY",
866 "DDCAPS2_CANBOBINTERLEAVED",
867 "DDCAPS2_CANBOBNONINTERLEAVED",
868 "DDCAPS2_COLORCONTROLOVERLAY",
869 "DDCAPS2_COLORCONTROLPRIMARY",
870 "DDCAPS2_CANDROPZ16BIT",
871 "DDCAPS2_NONLOCALVIDMEM",
872 "DDCAPS2_NONLOCALVIDMEMCAPS",
873 "DDCAPS2_NOPAGELOCKREQUIRED",
874 "DDCAPS2_WIDESURFACES",
875 "DDCAPS2_CANFLIPODDEVEN",
876 "DDCAPS2_CANBOBHARDWARE",
877 "DDCAPS2_COPYFOURCC",
878 "DDCAPS2_PRIMARYGAMMA",
879 "DDCAPS2_CANRENDERWINDOWED",
880 "DDCAPS2_CANCALIBRATEGAMMA",
881 "DDCAPS2_FLIPINTERVAL",
882 "DDCAPS2_FLIPNOVSYNC",
883 "DDCAPS2_CANMANAGETEXTURE",
884 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
885 "DDCAPS2_STEREO",
886 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
887 "DDCAPS2_RESERVED1",
888 "DDCAPS2_CANMANAGERESOURCE",
889 "DDCAPS2_DYNAMICTEXTURES",
890 "DDCAPS2_CANAUTOGENMIPMAP",
891 "DDCAPS2_CANSHARERESOURCE",
892])
893
José Fonseca08d21782011-05-26 00:58:26 +0100894DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100895 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
896 "DDFXALPHACAPS_BLTALPHAPIXELS",
897 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
898 "DDFXALPHACAPS_BLTALPHASURFACES",
899 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
900 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
901 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
902 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
903 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
904 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
905])
906
José Fonseca08d21782011-05-26 00:58:26 +0100907DirectDrawFxCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100908 "DDFXCAPS_BLTARITHSTRETCHY",
909 "DDFXCAPS_BLTARITHSTRETCHYN",
910 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
911 "DDFXCAPS_BLTMIRRORUPDOWN",
912 "DDFXCAPS_BLTROTATION",
913 "DDFXCAPS_BLTROTATION90",
914 "DDFXCAPS_BLTSHRINKX",
915 "DDFXCAPS_BLTSHRINKXN",
916 "DDFXCAPS_BLTSHRINKY",
917 "DDFXCAPS_BLTSHRINKYN",
918 "DDFXCAPS_BLTSTRETCHX",
919 "DDFXCAPS_BLTSTRETCHXN",
920 "DDFXCAPS_BLTSTRETCHY",
921 "DDFXCAPS_BLTSTRETCHYN",
922 "DDFXCAPS_OVERLAYARITHSTRETCHY",
923 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
924 "DDFXCAPS_OVERLAYSHRINKX",
925 "DDFXCAPS_OVERLAYSHRINKXN",
926 "DDFXCAPS_OVERLAYSHRINKY",
927 "DDFXCAPS_OVERLAYSHRINKYN",
928 "DDFXCAPS_OVERLAYSTRETCHX",
929 "DDFXCAPS_OVERLAYSTRETCHXN",
930 "DDFXCAPS_OVERLAYSTRETCHY",
931 "DDFXCAPS_OVERLAYSTRETCHYN",
932 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
933 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
934 "DDFXCAPS_OVERLAYDEINTERLACE",
935 "DDFXCAPS_BLTALPHA",
936 "DDFXCAPS_BLTFILTER",
937 "DDFXCAPS_OVERLAYALPHA",
938 "DDFXCAPS_OVERLAYFILTER",
939])
940
José Fonseca08d21782011-05-26 00:58:26 +0100941DirectDrawStereoViewCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100942 "DDSVCAPS_RESERVED1",
943 "DDSVCAPS_RESERVED2",
944 "DDSVCAPS_RESERVED3",
945 "DDSVCAPS_RESERVED4",
946 "DDSVCAPS_STEREOSEQUENTIAL",
947])
948
José Fonseca08d21782011-05-26 00:58:26 +0100949DirectDrawPaletteCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100950 "DDPCAPS_4BIT",
951 "DDPCAPS_8BITENTRIES",
952 "DDPCAPS_8BIT",
Jose Fonseca0ff474a2017-11-22 11:21:58 +0000953 #"DDPCAPS_INITIALIZE", # Obsolete. It previously defined as 0x8 but defined now 0x0.
José Fonseca91af9232009-04-13 16:15:28 +0100954 "DDPCAPS_PRIMARYSURFACE",
955 "DDPCAPS_PRIMARYSURFACELEFT",
956 "DDPCAPS_ALLOW256",
957 "DDPCAPS_VSYNC",
958 "DDPCAPS_1BIT",
959 "DDPCAPS_2BIT",
960 "DDPCAPS_ALPHA",
961])
962
José Fonseca08d21782011-05-26 00:58:26 +0100963DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100964 "DDSPD_IUNKNOWNPOINTER",
965 "DDSPD_VOLATILE",
966])
967
José Fonseca08d21782011-05-26 00:58:26 +0100968DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100969 "DDBD_1",
970 "DDBD_2",
971 "DDBD_4",
972 "DDBD_8",
973 "DDBD_16",
974 "DDBD_24",
975 "DDBD_32",
976])
977
José Fonseca08d21782011-05-26 00:58:26 +0100978DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100979 "DDCKEY_COLORSPACE",
980 "DDCKEY_DESTBLT",
981 "DDCKEY_DESTOVERLAY",
982 "DDCKEY_SRCBLT",
983 "DDCKEY_SRCOVERLAY",
984])
985
José Fonseca08d21782011-05-26 00:58:26 +0100986DirectDrawColorKeyCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100987 "DDCKEYCAPS_DESTBLT",
988 "DDCKEYCAPS_DESTBLTCLRSPACE",
989 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
990 "DDCKEYCAPS_DESTBLTYUV",
991 "DDCKEYCAPS_DESTOVERLAY",
992 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
993 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
994 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
995 "DDCKEYCAPS_DESTOVERLAYYUV",
996 "DDCKEYCAPS_SRCBLT",
997 "DDCKEYCAPS_SRCBLTCLRSPACE",
998 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
999 "DDCKEYCAPS_SRCBLTYUV",
1000 "DDCKEYCAPS_SRCOVERLAY",
1001 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
1002 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
1003 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
1004 "DDCKEYCAPS_SRCOVERLAYYUV",
1005 "DDCKEYCAPS_NOCOSTOVERLAY",
1006])
1007
José Fonseca08d21782011-05-26 00:58:26 +01001008DirectDrawEnumSurfacesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001009 "DDENUMSURFACES_ALL",
1010 "DDENUMSURFACES_MATCH",
1011 "DDENUMSURFACES_NOMATCH",
1012 "DDENUMSURFACES_CANBECREATED",
1013 "DDENUMSURFACES_DOESEXIST",
1014])
1015
José Fonseca08d21782011-05-26 00:58:26 +01001016DirectDrawSetDisplayModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001017 "DDSDM_STANDARDVGAMODE",
1018])
1019
José Fonseca08d21782011-05-26 00:58:26 +01001020DirectDrawEnumDisplayModesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001021 "DDEDM_REFRESHRATES",
1022 "DDEDM_STANDARDVGAMODES",
1023])
1024
José Fonseca08d21782011-05-26 00:58:26 +01001025DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001026 "DDSCL_FULLSCREEN",
1027 "DDSCL_ALLOWREBOOT",
1028 "DDSCL_NOWINDOWCHANGES",
1029 "DDSCL_NORMAL",
1030 "DDSCL_EXCLUSIVE",
1031 "DDSCL_ALLOWMODEX",
1032 "DDSCL_SETFOCUSWINDOW",
1033 "DDSCL_SETDEVICEWINDOW",
1034 "DDSCL_CREATEDEVICEWINDOW",
1035 "DDSCL_MULTITHREADED",
1036 "DDSCL_FPUSETUP",
1037 "DDSCL_FPUPRESERVE",
1038])
1039
José Fonseca08d21782011-05-26 00:58:26 +01001040DirectDrawBltFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001041 "DDBLT_ALPHADEST",
1042 "DDBLT_ALPHADESTCONSTOVERRIDE",
1043 "DDBLT_ALPHADESTNEG",
1044 "DDBLT_ALPHADESTSURFACEOVERRIDE",
1045 "DDBLT_ALPHAEDGEBLEND",
1046 "DDBLT_ALPHASRC",
1047 "DDBLT_ALPHASRCCONSTOVERRIDE",
1048 "DDBLT_ALPHASRCNEG",
1049 "DDBLT_ALPHASRCSURFACEOVERRIDE",
1050 "DDBLT_ASYNC",
1051 "DDBLT_COLORFILL",
1052 "DDBLT_DDFX",
1053 "DDBLT_DDROPS",
1054 "DDBLT_KEYDEST",
1055 "DDBLT_KEYDESTOVERRIDE",
1056 "DDBLT_KEYSRC",
1057 "DDBLT_KEYSRCOVERRIDE",
1058 "DDBLT_ROP",
1059 "DDBLT_ROTATIONANGLE",
1060 "DDBLT_ZBUFFER",
1061 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
1062 "DDBLT_ZBUFFERDESTOVERRIDE",
1063 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
1064 "DDBLT_ZBUFFERSRCOVERRIDE",
1065 "DDBLT_WAIT",
1066 "DDBLT_DEPTHFILL",
1067 "DDBLT_DONOTWAIT",
1068 "DDBLT_PRESENTATION",
1069 "DDBLT_LAST_PRESENTATION",
1070 "DDBLT_EXTENDED_FLAGS",
1071 "DDBLT_EXTENDED_LINEAR_CONTENT",
1072])
1073
José Fonseca08d21782011-05-26 00:58:26 +01001074DirectDrawBltFastFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001075 "DDBLTFAST_NOCOLORKEY",
1076 "DDBLTFAST_SRCCOLORKEY",
1077 "DDBLTFAST_DESTCOLORKEY",
1078 "DDBLTFAST_WAIT",
1079 "DDBLTFAST_DONOTWAIT",
1080])
1081
José Fonseca08d21782011-05-26 00:58:26 +01001082DirectDrawFlipFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001083 "DDFLIP_WAIT",
1084 "DDFLIP_EVEN",
1085 "DDFLIP_ODD",
1086 "DDFLIP_NOVSYNC",
1087 "DDFLIP_INTERVAL2",
1088 "DDFLIP_INTERVAL3",
1089 "DDFLIP_INTERVAL4",
1090 "DDFLIP_STEREO",
1091 "DDFLIP_DONOTWAIT",
1092])
1093
José Fonseca08d21782011-05-26 00:58:26 +01001094DirectDrawSurfaceOverlayFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001095 "DDOVER_ALPHADEST",
1096 "DDOVER_ALPHADESTCONSTOVERRIDE",
1097 "DDOVER_ALPHADESTNEG",
1098 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1099 "DDOVER_ALPHAEDGEBLEND",
1100 "DDOVER_ALPHASRC",
1101 "DDOVER_ALPHASRCCONSTOVERRIDE",
1102 "DDOVER_ALPHASRCNEG",
1103 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1104 "DDOVER_HIDE",
1105 "DDOVER_KEYDEST",
1106 "DDOVER_KEYDESTOVERRIDE",
1107 "DDOVER_KEYSRC",
1108 "DDOVER_KEYSRCOVERRIDE",
1109 "DDOVER_SHOW",
1110 "DDOVER_ADDDIRTYRECT",
1111 "DDOVER_REFRESHDIRTYRECTS",
1112 "DDOVER_REFRESHALL",
1113 "DDOVER_DDFX",
1114 "DDOVER_AUTOFLIP",
1115 "DDOVER_BOB",
1116 "DDOVER_OVERRIDEBOBWEAVE",
1117 "DDOVER_INTERLEAVED",
1118 "DDOVER_BOBHARDWARE",
1119 "DDOVER_ARGBSCALEFACTORS",
1120 "DDOVER_DEGRADEARGBSCALING",
1121])
1122
1123DDSETSURFACEDESC = Flags(DWORD, [
1124 #"DDSETSURFACEDESC_RECREATEDC",
1125 #"DDSETSURFACEDESC_PRESERVEDC",
1126])
1127
José Fonseca08d21782011-05-26 00:58:26 +01001128DirectDrawSurfaceLockFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001129 "DDLOCK_SURFACEMEMORYPTR",
1130 "DDLOCK_WAIT",
1131 "DDLOCK_EVENT",
1132 "DDLOCK_READONLY",
1133 "DDLOCK_WRITEONLY",
1134 "DDLOCK_NOSYSLOCK",
1135 "DDLOCK_NOOVERWRITE",
1136 "DDLOCK_DISCARDCONTENTS",
1137 "DDLOCK_OKTOSWAP",
1138 "DDLOCK_DONOTWAIT",
1139 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1140 "DDLOCK_NODIRTYUPDATE",
1141])
1142
José Fonseca08d21782011-05-26 00:58:26 +01001143DirectDrawSurfaceBltFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001144 "DDBLTFX_ARITHSTRETCHY",
1145 "DDBLTFX_MIRRORLEFTRIGHT",
1146 "DDBLTFX_MIRRORUPDOWN",
1147 "DDBLTFX_NOTEARING",
1148 "DDBLTFX_ROTATE180",
1149 "DDBLTFX_ROTATE270",
1150 "DDBLTFX_ROTATE90",
1151 "DDBLTFX_ZBUFFERRANGE",
1152 "DDBLTFX_ZBUFFERBASEDEST",
1153])
1154
José Fonseca08d21782011-05-26 00:58:26 +01001155DirectDrawOverlayFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001156 "DDOVERFX_ARITHSTRETCHY",
1157 "DDOVERFX_MIRRORLEFTRIGHT",
1158 "DDOVERFX_MIRRORUPDOWN",
1159 "DDOVERFX_DEINTERLACE",
1160])
1161
José Fonseca08d21782011-05-26 00:58:26 +01001162DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001163 "DDWAITVB_BLOCKBEGIN",
1164 "DDWAITVB_BLOCKBEGINEVENT",
1165 "DDWAITVB_BLOCKEND",
1166])
1167
José Fonseca08d21782011-05-26 00:58:26 +01001168DirectDrawGetFlipStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001169 "DDGFS_CANFLIP",
1170 "DDGFS_ISFLIPDONE",
1171])
1172
José Fonseca08d21782011-05-26 00:58:26 +01001173DirectDrawGetBltStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001174 "DDGBS_CANBLT",
1175 "DDGBS_ISBLTDONE",
1176])
1177
José Fonseca08d21782011-05-26 00:58:26 +01001178DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001179 "DDENUMOVERLAYZ_BACKTOFRONT",
1180 "DDENUMOVERLAYZ_FRONTTOBACK",
1181])
1182
José Fonseca08d21782011-05-26 00:58:26 +01001183DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001184 "DDOVERZ_SENDTOFRONT",
1185 "DDOVERZ_SENDTOBACK",
1186 "DDOVERZ_MOVEFORWARD",
1187 "DDOVERZ_MOVEBACKWARD",
1188 "DDOVERZ_INSERTINFRONTOF",
1189 "DDOVERZ_INSERTINBACKOF",
1190])
1191
José Fonseca08d21782011-05-26 00:58:26 +01001192DirectDrawSetGammaRampFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001193 "DDSGR_CALIBRATE",
1194])
1195
José Fonseca08d21782011-05-26 00:58:26 +01001196DirectDrawStartModeTestFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001197 "DDSMT_ISTESTREQUIRED",
1198])
1199
José Fonseca08d21782011-05-26 00:58:26 +01001200DirectDrawEvaluateModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001201 "DDEM_MODEPASSED",
1202 "DDEM_MODEFAILED",
1203])
1204
José Fonseca73841ad2012-04-16 20:47:56 +01001205DDRESULT = MAKE_HRESULT(ok = "DD_OK", false = "DD_FALSE", errors = [
José Fonseca91af9232009-04-13 16:15:28 +01001206 "DDERR_ALREADYINITIALIZED",
1207 "DDERR_CANNOTATTACHSURFACE",
1208 "DDERR_CANNOTDETACHSURFACE",
1209 "DDERR_CURRENTLYNOTAVAIL",
1210 "DDERR_EXCEPTION",
1211 "DDERR_GENERIC",
1212 "DDERR_HEIGHTALIGN",
1213 "DDERR_INCOMPATIBLEPRIMARY",
1214 "DDERR_INVALIDCAPS",
1215 "DDERR_INVALIDCLIPLIST",
1216 "DDERR_INVALIDMODE",
1217 "DDERR_INVALIDOBJECT",
1218 "DDERR_INVALIDPARAMS",
1219 "DDERR_INVALIDPIXELFORMAT",
1220 "DDERR_INVALIDRECT",
1221 "DDERR_LOCKEDSURFACES",
1222 "DDERR_NO3D",
1223 "DDERR_NOALPHAHW",
1224 "DDERR_NOSTEREOHARDWARE",
1225 "DDERR_NOSURFACELEFT",
1226 "DDERR_NOCLIPLIST",
1227 "DDERR_NOCOLORCONVHW",
1228 "DDERR_NOCOOPERATIVELEVELSET",
1229 "DDERR_NOCOLORKEY",
1230 "DDERR_NOCOLORKEYHW",
1231 "DDERR_NODIRECTDRAWSUPPORT",
1232 "DDERR_NOEXCLUSIVEMODE",
1233 "DDERR_NOFLIPHW",
1234 "DDERR_NOGDI",
1235 "DDERR_NOMIRRORHW",
1236 "DDERR_NOTFOUND",
1237 "DDERR_NOOVERLAYHW",
1238 "DDERR_OVERLAPPINGRECTS",
1239 "DDERR_NORASTEROPHW",
1240 "DDERR_NOROTATIONHW",
1241 "DDERR_NOSTRETCHHW",
1242 "DDERR_NOT4BITCOLOR",
1243 "DDERR_NOT4BITCOLORINDEX",
1244 "DDERR_NOT8BITCOLOR",
1245 "DDERR_NOTEXTUREHW",
1246 "DDERR_NOVSYNCHW",
1247 "DDERR_NOZBUFFERHW",
1248 "DDERR_NOZOVERLAYHW",
1249 "DDERR_OUTOFCAPS",
1250 "DDERR_OUTOFMEMORY",
1251 "DDERR_OUTOFVIDEOMEMORY",
1252 "DDERR_OVERLAYCANTCLIP",
1253 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1254 "DDERR_PALETTEBUSY",
1255 "DDERR_COLORKEYNOTSET",
1256 "DDERR_SURFACEALREADYATTACHED",
1257 "DDERR_SURFACEALREADYDEPENDENT",
1258 "DDERR_SURFACEBUSY",
1259 "DDERR_CANTLOCKSURFACE",
1260 "DDERR_SURFACEISOBSCURED",
1261 "DDERR_SURFACELOST",
1262 "DDERR_SURFACENOTATTACHED",
1263 "DDERR_TOOBIGHEIGHT",
1264 "DDERR_TOOBIGSIZE",
1265 "DDERR_TOOBIGWIDTH",
1266 "DDERR_UNSUPPORTED",
1267 "DDERR_UNSUPPORTEDFORMAT",
1268 "DDERR_UNSUPPORTEDMASK",
1269 "DDERR_INVALIDSTREAM",
1270 "DDERR_VERTICALBLANKINPROGRESS",
1271 "DDERR_WASSTILLDRAWING",
1272 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1273 "DDERR_XALIGN",
1274 "DDERR_INVALIDDIRECTDRAWGUID",
1275 "DDERR_DIRECTDRAWALREADYCREATED",
1276 "DDERR_NODIRECTDRAWHW",
1277 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1278 "DDERR_NOEMULATION",
1279 "DDERR_REGIONTOOSMALL",
1280 "DDERR_CLIPPERISUSINGHWND",
1281 "DDERR_NOCLIPPERATTACHED",
1282 "DDERR_NOHWND",
1283 "DDERR_HWNDSUBCLASSED",
1284 "DDERR_HWNDALREADYSET",
1285 "DDERR_NOPALETTEATTACHED",
1286 "DDERR_NOPALETTEHW",
1287 "DDERR_BLTFASTCANTCLIP",
1288 "DDERR_NOBLTHW",
1289 "DDERR_NODDROPSHW",
1290 "DDERR_OVERLAYNOTVISIBLE",
1291 "DDERR_NOOVERLAYDEST",
1292 "DDERR_INVALIDPOSITION",
1293 "DDERR_NOTAOVERLAYSURFACE",
1294 "DDERR_EXCLUSIVEMODEALREADYSET",
1295 "DDERR_NOTFLIPPABLE",
1296 "DDERR_CANTDUPLICATE",
1297 "DDERR_NOTLOCKED",
1298 "DDERR_CANTCREATEDC",
1299 "DDERR_NODC",
1300 "DDERR_WRONGMODE",
1301 "DDERR_IMPLICITLYCREATED",
1302 "DDERR_NOTPALETTIZED",
1303 "DDERR_UNSUPPORTEDMODE",
1304 "DDERR_NOMIPMAPHW",
1305 "DDERR_INVALIDSURFACETYPE",
1306 "DDERR_NOOPTIMIZEHW",
1307 "DDERR_NOTLOADED",
1308 "DDERR_NOFOCUSWINDOW",
1309 "DDERR_NOTONMIPMAPSUBLEVEL",
1310 "DDERR_DCALREADYCREATED",
1311 "DDERR_NONONLOCALVIDMEM",
1312 "DDERR_CANTPAGELOCK",
1313 "DDERR_CANTPAGEUNLOCK",
1314 "DDERR_NOTPAGELOCKED",
1315 "DDERR_MOREDATA",
1316 "DDERR_EXPIRED",
1317 "DDERR_TESTFINISHED",
1318 "DDERR_NEWMODE",
1319 "DDERR_D3DNOTINITIALIZED",
1320 "DDERR_VIDEONOTACTIVE",
1321 "DDERR_NOMONITORINFORMATION",
1322 "DDERR_NODRIVERSUPPORT",
1323 "DDERR_DEVICEDOESNTOWNSURFACE",
1324 "DDERR_NOTINITIALIZED",
1325])
1326
José Fonseca31524192010-11-22 21:05:26 +00001327LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1328LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1329LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1330LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1331LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
José Fonseca91af9232009-04-13 16:15:28 +01001332
1333IDirectDraw.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001334 StdMethod(DDRESULT, "Compact", []),
1335 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1336 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1337 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1338 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001339 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1340 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001341 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001342 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1343 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1344 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001345 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001346 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1347 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1348 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001349 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1350 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1351 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1352 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1353 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca91af9232009-04-13 16:15:28 +01001354]
1355
1356IDirectDraw2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001357 StdMethod(DDRESULT, "Compact", []),
1358 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1359 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1360 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1361 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001362 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1363 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001364 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001365 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1366 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1367 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001368 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001369 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1370 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1371 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001372 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1373 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1374 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1375 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1376 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001377 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001378]
1379
1380IDirectDraw4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001381 StdMethod(DDRESULT, "Compact", []),
1382 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1383 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1384 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1385 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001386 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1387 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001388 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001389 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1390 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1391 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001392 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001393 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1394 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1395 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001396 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1397 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1398 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1399 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1400 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001401 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001402 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1403 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1404 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001405 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001406]
1407
1408IDirectDraw7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001409 StdMethod(DDRESULT, "Compact", []),
1410 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1411 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1412 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1413 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001414 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1415 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001416 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001417 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1418 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1419 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001420 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001421 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1422 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1423 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001424 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1425 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1426 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1427 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1428 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001429 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001430 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1431 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1432 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001433 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001434 StdMethod(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1435 StdMethod(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
José Fonseca91af9232009-04-13 16:15:28 +01001436]
1437
1438IDirectDrawPalette.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001439 StdMethod(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")], sideeffects=False),
Jose Fonsecadeb1d682015-05-20 17:19:18 +01001440 StdMethod(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(Array(PALETTEENTRY, "dwNumEntries"), "lpEntries")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001441 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
Jose Fonsecadeb1d682015-05-20 17:19:18 +01001442 StdMethod(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (Array(PALETTEENTRY, "dwCount"), "lpEntries")]),
José Fonseca91af9232009-04-13 16:15:28 +01001443]
1444
1445IDirectDrawClipper.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001446 StdMethod(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")], sideeffects=False),
1447 StdMethod(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001448 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1449 StdMethod(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1450 StdMethod(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1451 StdMethod(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
José Fonseca91af9232009-04-13 16:15:28 +01001452]
1453
1454
1455IDirectDrawSurface.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001456 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1457 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1458 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1459 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1460 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1461 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001462 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1463 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001464 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1465 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1466 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001467 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001468 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001469 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1470 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1471 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1472 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001473 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001474 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1475 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001476 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1477 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001478 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001479 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001480 StdMethod(DDRESULT, "Restore", []),
1481 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1482 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1483 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1484 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1485 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1486 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1487 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1488 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
José Fonseca91af9232009-04-13 16:15:28 +01001489]
1490
1491IDirectDrawSurface2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001492 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1493 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1494 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1495 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1496 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1497 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001498 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1499 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001500 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1501 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001502 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1503 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001504 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001505 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1506 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1507 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1508 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001509 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001510 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1511 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001512 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1513 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001514 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001515 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001516 StdMethod(DDRESULT, "Restore", []),
1517 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1518 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1519 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1520 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1521 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1522 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1523 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1524 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001525 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001526 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1527 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001528]
1529
1530IDirectDrawSurface3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001531 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1532 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1533 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1534 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1535 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1536 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001537 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1538 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001539 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1540 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001541 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1542 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001543 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001544 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1545 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1546 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1547 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001548 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001549 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1550 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001551 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1552 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001553 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001554 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001555 StdMethod(DDRESULT, "Restore", []),
1556 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1557 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1558 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1559 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1560 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1561 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1562 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1563 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001564 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001565 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1566 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1567 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001568]
1569
1570IDirectDrawSurface4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001571 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1572 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1573 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1574 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1575 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1576 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001577 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
1578 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001579 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1580 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001581 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1582 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001583 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001584 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1585 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1586 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1587 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001588 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001589 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1590 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001591 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1592 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001593 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
Jose Fonseca481d3a12015-06-22 15:17:59 +01001594 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001595 StdMethod(DDRESULT, "Restore", []),
1596 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1597 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1598 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1599 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1600 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1601 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1602 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1603 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
Bastien Bouclet33d05062015-02-12 12:41:06 +01001604 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001605 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1606 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1607 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001608 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1609 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1610 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001611 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1612 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
José Fonseca91af9232009-04-13 16:15:28 +01001613]
1614
1615IDirectDrawSurface7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001616 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1617 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1618 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1619 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1620 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1621 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001622 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
1623 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001624 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1625 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1626 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1627 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1628 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1629 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001630 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001631 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001632 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001633 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001634 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1635 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001636 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001637 StdMethod(DDRESULT, "IsLost", [], sideeffects=False),
1638 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1639 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001640 StdMethod(DDRESULT, "Restore", []),
1641 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1642 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1643 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1644 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1645 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1646 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1647 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1648 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001649 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001650 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1651 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1652 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001653 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1654 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1655 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
1656 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001657 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1658 StdMethod(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001659 StdMethod(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001660 StdMethod(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001661 StdMethod(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001662]
1663
1664IDirectDrawColorControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001665 StdMethod(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1666 StdMethod(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
José Fonseca91af9232009-04-13 16:15:28 +01001667]
1668
1669IDirectDrawGammaControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001670 StdMethod(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
1671 StdMethod(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]),
José Fonseca91af9232009-04-13 16:15:28 +01001672]
1673
José Fonseca31524192010-11-22 21:05:26 +00001674LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1675LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1676LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1677LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
José Fonseca91af9232009-04-13 16:15:28 +01001678
José Fonseca81301932012-11-11 00:10:20 +00001679ddraw = Module("ddraw")
José Fonseca54f304a2012-01-14 19:33:08 +00001680ddraw.addFunctions([
José Fonseca50c2a142015-01-15 13:10:46 +00001681 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1682 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1683 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
1684 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
Jose Fonseca68d05032015-10-30 23:06:57 +00001685 StdFunction(HRESULT, "DirectDrawCreate", [(DDCREATE_LPGUID, "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
1686 StdFunction(HRESULT, "DirectDrawCreateEx", [(DDCREATE_LPGUID, "lpGUID"), Out(Pointer(ObjPointer(Void)), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca9782b292012-04-14 22:02:42 +01001687 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecaa6f94092012-11-11 00:22:33 +00001688 StdFunction(Void, "AcquireDDThreadLock", [], internal=True),
1689 StdFunction(Void, "ReleaseDDThreadLock", [], internal=True),
José Fonseca50c2a142015-01-15 13:10:46 +00001690 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")], internal=True),
1691 StdFunction(HRESULT, "DllCanUnloadNow", [], internal=True),
1692 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")], sideeffects=False),
José Fonsecabb8760b2011-05-25 23:21:18 +01001693
1694 # XXX
José Fonseca50c2a142015-01-15 13:10:46 +00001695 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int], internal=True),
1696 #StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int], internal=True),
1697 StdFunction(HRESULT, "DDInternalLock", [Int, Int], internal=True),
1698 StdFunction(HRESULT, "DDInternalUnlock", [Int], internal=True),
1699 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int], internal=True),
1700 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int], internal=True),
1701 StdFunction(HANDLE, "GetOLEThunkData", [Int], internal=True),
1702 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int], internal=True),
1703 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int], internal=True),
José Fonsecabb8760b2011-05-25 23:21:18 +01001704
1705 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001706])
José Fonseca91af9232009-04-13 16:15:28 +01001707
Bastien Bouclet33d05062015-02-12 12:41:06 +01001708# Add otherwise unreferenced interfaces
1709ddraw.addInterfaces([
1710 IDirectDrawSurface2,
1711 IDirectDrawSurface3,
Jose Fonseca481d3a12015-06-22 15:17:59 +01001712 IDirectDrawColorControl,
1713 IDirectDrawGammaControl,
Bastien Bouclet33d05062015-02-12 12:41:06 +01001714])