blob: dd9380067ff8d9d95e2072f16f9c2c072a004ecd [file] [log] [blame]
José Fonseca7ad40262009-09-30 17:17:12 +01001##########################################################################
José Fonseca91af9232009-04-13 16:15:28 +01002#
José Fonseca7ad40262009-09-30 17:17:12 +01003# Copyright 2008-2009 VMware, Inc.
4# All Rights Reserved.
José Fonseca91af9232009-04-13 16:15:28 +01005#
José Fonseca7ad40262009-09-30 17:17:12 +01006# Permission is hereby granted, free of charge, to any person obtaining a copy
7# of this software and associated documentation files (the "Software"), to deal
8# in the Software without restriction, including without limitation the rights
9# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10# copies of the Software, and to permit persons to whom the Software is
11# furnished to do so, subject to the following conditions:
José Fonseca91af9232009-04-13 16:15:28 +010012#
José Fonseca7ad40262009-09-30 17:17:12 +010013# The above copyright notice and this permission notice shall be included in
14# all copies or substantial portions of the Software.
José Fonseca91af9232009-04-13 16:15:28 +010015#
José Fonseca7ad40262009-09-30 17:17:12 +010016# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22# THE SOFTWARE.
José Fonseca91af9232009-04-13 16:15:28 +010023#
José Fonseca7ad40262009-09-30 17:17:12 +010024##########################################################################/
José Fonseca91af9232009-04-13 16:15:28 +010025
26"""ddraw.h"""
27
José Fonsecaf20c1262010-11-25 11:39:57 +000028from winapi import *
José Fonseca91af9232009-04-13 16:15:28 +010029
José Fonseca08d21782011-05-26 00:58:26 +010030DirectDrawOptSurfaceDescFlags = Flags(DWORD, [
31 "DDOSD_GUID",
32 "DDOSD_COMPRESSION_RATIO",
33 "DDOSD_SCAPS",
34 "DDOSD_OSCAPS",
35 "DDOSD_ALL",
36])
37
38DirectDrawOptSurfaceDescCapsFlags = Flags(DWORD, [
39 "DDOSDCAPS_OPTCOMPRESSED",
40 "DDOSDCAPS_OPTREORDERED",
41 "DDOSDCAPS_MONOLITHICMIPMAP",
42])
43
44DirectDrawGetDeviceIdentifierFlags = Flags(DWORD, [
45 "DDGDI_GETHOSTIDENTIFIER",
46])
47
José Fonseca91af9232009-04-13 16:15:28 +010048IDirectDraw = Interface("IDirectDraw", IUnknown)
49IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
50IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
51IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
52IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
53IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
54IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
55IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
56IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
57IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
58IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
59IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
60IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
61
José Fonseca9782b292012-04-14 22:02:42 +010062LPUNKNOWN = ObjPointer(IUnknown)
63LPDIRECTDRAW = ObjPointer(IDirectDraw)
64LPDIRECTDRAW2 = ObjPointer(IDirectDraw2)
65LPDIRECTDRAW4 = ObjPointer(IDirectDraw4)
66LPDIRECTDRAW7 = ObjPointer(IDirectDraw7)
67LPDIRECTDRAWSURFACE = ObjPointer(IDirectDrawSurface)
68LPDIRECTDRAWSURFACE2 = ObjPointer(IDirectDrawSurface2)
69LPDIRECTDRAWSURFACE3 = ObjPointer(IDirectDrawSurface3)
70LPDIRECTDRAWSURFACE4 = ObjPointer(IDirectDrawSurface4)
71LPDIRECTDRAWSURFACE7 = ObjPointer(IDirectDrawSurface7)
72LPDIRECTDRAWPALETTE = ObjPointer(IDirectDrawPalette)
73LPDIRECTDRAWCLIPPER = ObjPointer(IDirectDrawClipper)
74LPDIRECTDRAWCOLORCONTROL = ObjPointer(IDirectDrawColorControl)
75LPDIRECTDRAWGAMMACONTROL = ObjPointer(IDirectDrawGammaControl)
José Fonseca91af9232009-04-13 16:15:28 +010076
77DDARGB = Struct("DDARGB", [
78 (BYTE, "blue"),
79 (BYTE, "green"),
80 (BYTE, "red"),
81 (BYTE, "alpha"),
82])
83
84LPDDARGB = Pointer(DDARGB)
85
86DDRGBA = Struct("DDRGBA", [
87 (BYTE, "red"),
88 (BYTE, "green"),
89 (BYTE, "blue"),
90 (BYTE, "alpha"),
91])
92LPDDRGBA = Pointer(DDRGBA)
93
94DDCOLORKEY = Struct("DDCOLORKEY", [
95 (DWORD, "dwColorSpaceLowValue"),
96 (DWORD, "dwColorSpaceHighValue"),
97])
98LPDDCOLORKEY = Pointer(DDCOLORKEY)
99
100DDBLTFX = Struct("DDBLTFX", [
101 (DWORD, "dwSize"),
102 (DWORD, "dwDDFX"),
103 (DWORD, "dwROP"),
104 (DWORD, "dwDDROP"),
105 (DWORD, "dwRotationAngle"),
106 (DWORD, "dwZBufferOpCode"),
107 (DWORD, "dwZBufferLow"),
108 (DWORD, "dwZBufferHigh"),
109 (DWORD, "dwZBufferBaseDest"),
110 (DWORD, "dwZDestConstBitDepth"),
111 (DWORD, "dwZDestConst"),
112 (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
113 (DWORD, "dwZSrcConstBitDepth"),
114 (DWORD, "dwZSrcConst"),
115 (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
116 (DWORD, "dwAlphaEdgeBlendBitDepth"),
117 (DWORD, "dwAlphaEdgeBlend"),
118 (DWORD, "dwReserved"),
119 (DWORD, "dwAlphaDestConstBitDepth"),
120 (DWORD, "dwAlphaDestConst"),
121 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
122 (DWORD, "dwAlphaSrcConstBitDepth"),
123 (DWORD, "dwAlphaSrcConst"),
124 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
125 (DWORD, "dwFillColor"),
126 (DWORD, "dwFillDepth"),
127 (DWORD, "dwFillPixel"),
128 (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
129 (DDCOLORKEY, "ddckDestColorkey"),
130 (DDCOLORKEY, "ddckSrcColorkey"),
131])
132LPDDBLTFX = Pointer(DDBLTFX)
133
José Fonseca7cdbd382015-01-16 10:59:02 +0000134DirectDrawCapsFlags = Flags(DWORD, [
135 "DDSCAPS_RESERVED1",
136 "DDSCAPS_ALPHA",
137 "DDSCAPS_BACKBUFFER",
138 "DDSCAPS_COMPLEX",
139 "DDSCAPS_FLIP",
140 "DDSCAPS_FRONTBUFFER",
141 "DDSCAPS_OFFSCREENPLAIN",
142 "DDSCAPS_OVERLAY",
143 "DDSCAPS_PALETTE",
144 "DDSCAPS_PRIMARYSURFACE",
145 "DDSCAPS_RESERVED3", # was DDSCAPS_PRIMARYSURFACELEFT
146 "DDSCAPS_SYSTEMMEMORY",
147 "DDSCAPS_TEXTURE",
148 "DDSCAPS_3DDEVICE",
149 "DDSCAPS_VIDEOMEMORY",
150 "DDSCAPS_VISIBLE",
151 "DDSCAPS_WRITEONLY",
152 "DDSCAPS_ZBUFFER",
153 "DDSCAPS_OWNDC",
154 "DDSCAPS_LIVEVIDEO",
155 "DDSCAPS_HWCODEC",
156 "DDSCAPS_MODEX",
157 "DDSCAPS_MIPMAP",
158 "DDSCAPS_RESERVED2",
159 "DDSCAPS_ALLOCONLOAD",
160 "DDSCAPS_VIDEOPORT",
161 "DDSCAPS_LOCALVIDMEM",
162 "DDSCAPS_NONLOCALVIDMEM",
163 "DDSCAPS_STANDARDVGAMODE",
164 "DDSCAPS_OPTIMIZED",
165])
166
167DirectDrawCapabilityFlags2 = Flags(DWORD, [
168 "DDSCAPS2_RESERVED4", # was DDSCAPS2_HARDWAREDEINTERLACE
169 "DDSCAPS2_HINTDYNAMIC",
170 "DDSCAPS2_HINTSTATIC",
171 "DDSCAPS2_TEXTUREMANAGE",
172 "DDSCAPS2_RESERVED1",
173 "DDSCAPS2_RESERVED2",
174 "DDSCAPS2_OPAQUE",
175 "DDSCAPS2_HINTANTIALIASING",
176 "DDSCAPS2_CUBEMAP",
177 "DDSCAPS2_CUBEMAP_ALLFACES",
178 "DDSCAPS2_CUBEMAP_POSITIVEX",
179 "DDSCAPS2_CUBEMAP_NEGATIVEX",
180 "DDSCAPS2_CUBEMAP_POSITIVEY",
181 "DDSCAPS2_CUBEMAP_NEGATIVEY",
182 "DDSCAPS2_CUBEMAP_POSITIVEZ",
183 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
184 "DDSCAPS2_MIPMAPSUBLEVEL",
185 "DDSCAPS2_D3DTEXTUREMANAGE",
186 "DDSCAPS2_DONOTPERSIST",
187 "DDSCAPS2_STEREOSURFACELEFT",
188 "DDSCAPS2_VOLUME",
189 "DDSCAPS2_NOTUSERLOCKABLE",
190 "DDSCAPS2_POINTS",
191 "DDSCAPS2_RTPATCHES",
192 "DDSCAPS2_NPATCHES",
193 "DDSCAPS2_RESERVED3",
194 "DDSCAPS2_DISCARDBACKBUFFER",
195 "DDSCAPS2_ENABLEALPHACHANNEL",
196 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
197 "DDSCAPS2_ADDITIONALPRIMARY",
198])
199DirectDrawCapabilityFlags3 = Flags(DWORD, [
200 "DDSCAPS3_MULTISAMPLE_MASK",
201 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
202 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
203 "DDSCAPS3_RESERVED1",
204 "DDSCAPS3_RESERVED2",
205 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
206 "DDSCAPS3_AUTOGENMIPMAP",
207 "DDSCAPS3_DMAP",
208 "DDSCAPS3_CREATESHAREDRESOURCE",
209 "DDSCAPS3_READONLYRESOURCE",
210 "DDSCAPS3_OPENSHAREDRESOURCE",
211])
212
José Fonseca91af9232009-04-13 16:15:28 +0100213DDSCAPS = Struct("DDSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000214 (DirectDrawCapsFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100215])
216LPDDSCAPS = Pointer(DDSCAPS)
217
José Fonseca7cdbd382015-01-16 10:59:02 +0000218DDOSDCAPSFlags = Flags(DWORD, [
219 "DDOSDCAPS_OPTCOMPRESSED",
220 "DDOSDCAPS_OPTREORDERED",
221 "DDOSDCAPS_MONOLITHICMIPMAP",
222 "DDOSDCAPS_VALIDSCAPS",
223 "DDOSDCAPS_VALIDOSCAPS",
224])
225
José Fonseca91af9232009-04-13 16:15:28 +0100226DDOSCAPS = Struct("DDOSCAPS", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000227 (DDOSDCAPSFlags, "dwCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100228])
229LPDDOSCAPS = Pointer(DDOSCAPS)
230
231DDSCAPSEX = Struct("DDSCAPSEX", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000232 (DirectDrawCapabilityFlags2, "dwCaps2"),
233 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100234 (DWORD, "dwCaps4"),
235])
236
237DDSCAPS2 = Struct("DDSCAPS2", [
José Fonseca7cdbd382015-01-16 10:59:02 +0000238 (DirectDrawCapsFlags, "dwCaps"),
239 (DirectDrawCapabilityFlags2, "dwCaps2"),
240 (DirectDrawCapabilityFlags3, "dwCaps3"),
José Fonseca91af9232009-04-13 16:15:28 +0100241 (DWORD, "dwCaps4"),
242])
243LPDDSCAPS2 = Pointer(DDSCAPS2)
244
245DDCAPS_DX1 = Struct("DDCAPS_DX1", [
246 (DWORD, "dwSize"),
247 (DWORD, "dwCaps"),
248 (DWORD, "dwCaps2"),
249 (DWORD, "dwCKeyCaps"),
250 (DWORD, "dwFXCaps"),
251 (DWORD, "dwFXAlphaCaps"),
252 (DWORD, "dwPalCaps"),
253 (DWORD, "dwSVCaps"),
254 (DWORD, "dwAlphaBltConstBitDepths"),
255 (DWORD, "dwAlphaBltPixelBitDepths"),
256 (DWORD, "dwAlphaBltSurfaceBitDepths"),
257 (DWORD, "dwAlphaOverlayConstBitDepths"),
258 (DWORD, "dwAlphaOverlayPixelBitDepths"),
259 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
260 (DWORD, "dwZBufferBitDepths"),
261 (DWORD, "dwVidMemTotal"),
262 (DWORD, "dwVidMemFree"),
263 (DWORD, "dwMaxVisibleOverlays"),
264 (DWORD, "dwCurrVisibleOverlays"),
265 (DWORD, "dwNumFourCCCodes"),
266 (DWORD, "dwAlignBoundarySrc"),
267 (DWORD, "dwAlignSizeSrc"),
268 (DWORD, "dwAlignBoundaryDest"),
269 (DWORD, "dwAlignSizeDest"),
270 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100271 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100272 (DDSCAPS, "ddsCaps"),
273 (DWORD, "dwMinOverlayStretch"),
274 (DWORD, "dwMaxOverlayStretch"),
275 (DWORD, "dwMinLiveVideoStretch"),
276 (DWORD, "dwMaxLiveVideoStretch"),
277 (DWORD, "dwMinHwCodecStretch"),
278 (DWORD, "dwMaxHwCodecStretch"),
279 (DWORD, "dwReserved1"),
280 (DWORD, "dwReserved2"),
281 (DWORD, "dwReserved3"),
282])
283LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
284
285DDCAPS_DX3 = Struct("DDCAPS_DX3", [
286 (DWORD, "dwSize"),
287 (DWORD, "dwCaps"),
288 (DWORD, "dwCaps2"),
289 (DWORD, "dwCKeyCaps"),
290 (DWORD, "dwFXCaps"),
291 (DWORD, "dwFXAlphaCaps"),
292 (DWORD, "dwPalCaps"),
293 (DWORD, "dwSVCaps"),
294 (DWORD, "dwAlphaBltConstBitDepths"),
295 (DWORD, "dwAlphaBltPixelBitDepths"),
296 (DWORD, "dwAlphaBltSurfaceBitDepths"),
297 (DWORD, "dwAlphaOverlayConstBitDepths"),
298 (DWORD, "dwAlphaOverlayPixelBitDepths"),
299 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
300 (DWORD, "dwZBufferBitDepths"),
301 (DWORD, "dwVidMemTotal"),
302 (DWORD, "dwVidMemFree"),
303 (DWORD, "dwMaxVisibleOverlays"),
304 (DWORD, "dwCurrVisibleOverlays"),
305 (DWORD, "dwNumFourCCCodes"),
306 (DWORD, "dwAlignBoundarySrc"),
307 (DWORD, "dwAlignSizeSrc"),
308 (DWORD, "dwAlignBoundaryDest"),
309 (DWORD, "dwAlignSizeDest"),
310 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100311 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100312 (DDSCAPS, "ddsCaps"),
313 (DWORD, "dwMinOverlayStretch"),
314 (DWORD, "dwMaxOverlayStretch"),
315 (DWORD, "dwMinLiveVideoStretch"),
316 (DWORD, "dwMaxLiveVideoStretch"),
317 (DWORD, "dwMinHwCodecStretch"),
318 (DWORD, "dwMaxHwCodecStretch"),
319 (DWORD, "dwReserved1"),
320 (DWORD, "dwReserved2"),
321 (DWORD, "dwReserved3"),
322 (DWORD, "dwSVBCaps"),
323 (DWORD, "dwSVBCKeyCaps"),
324 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100325 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100326 (DWORD, "dwVSBCaps"),
327 (DWORD, "dwVSBCKeyCaps"),
328 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100329 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100330 (DWORD, "dwSSBCaps"),
331 (DWORD, "dwSSBCKeyCaps"),
332 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100333 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100334 (DWORD, "dwReserved4"),
335 (DWORD, "dwReserved5"),
336 (DWORD, "dwReserved6"),
337])
338LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
339
340DDCAPS_DX5 = Struct("DDCAPS_DX5", [
341 (DWORD, "dwSize"),
342 (DWORD, "dwCaps"),
343 (DWORD, "dwCaps2"),
344 (DWORD, "dwCKeyCaps"),
345 (DWORD, "dwFXCaps"),
346 (DWORD, "dwFXAlphaCaps"),
347 (DWORD, "dwPalCaps"),
348 (DWORD, "dwSVCaps"),
349 (DWORD, "dwAlphaBltConstBitDepths"),
350 (DWORD, "dwAlphaBltPixelBitDepths"),
351 (DWORD, "dwAlphaBltSurfaceBitDepths"),
352 (DWORD, "dwAlphaOverlayConstBitDepths"),
353 (DWORD, "dwAlphaOverlayPixelBitDepths"),
354 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
355 (DWORD, "dwZBufferBitDepths"),
356 (DWORD, "dwVidMemTotal"),
357 (DWORD, "dwVidMemFree"),
358 (DWORD, "dwMaxVisibleOverlays"),
359 (DWORD, "dwCurrVisibleOverlays"),
360 (DWORD, "dwNumFourCCCodes"),
361 (DWORD, "dwAlignBoundarySrc"),
362 (DWORD, "dwAlignSizeSrc"),
363 (DWORD, "dwAlignBoundaryDest"),
364 (DWORD, "dwAlignSizeDest"),
365 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100366 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100367 (DDSCAPS, "ddsCaps"),
368 (DWORD, "dwMinOverlayStretch"),
369 (DWORD, "dwMaxOverlayStretch"),
370 (DWORD, "dwMinLiveVideoStretch"),
371 (DWORD, "dwMaxLiveVideoStretch"),
372 (DWORD, "dwMinHwCodecStretch"),
373 (DWORD, "dwMaxHwCodecStretch"),
374 (DWORD, "dwReserved1"),
375 (DWORD, "dwReserved2"),
376 (DWORD, "dwReserved3"),
377 (DWORD, "dwSVBCaps"),
378 (DWORD, "dwSVBCKeyCaps"),
379 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100380 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100381 (DWORD, "dwVSBCaps"),
382 (DWORD, "dwVSBCKeyCaps"),
383 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100384 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100385 (DWORD, "dwSSBCaps"),
386 (DWORD, "dwSSBCKeyCaps"),
387 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100388 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100389 (DWORD, "dwMaxVideoPorts"),
390 (DWORD, "dwCurrVideoPorts"),
391 (DWORD, "dwSVBCaps2"),
392 (DWORD, "dwNLVBCaps"),
393 (DWORD, "dwNLVBCaps2"),
394 (DWORD, "dwNLVBCKeyCaps"),
395 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100396 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100397])
398LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
399
400DDCAPS_DX6 = Struct("DDCAPS_DX6", [
401 (DWORD, "dwSize"),
402 (DWORD, "dwCaps"),
403 (DWORD, "dwCaps2"),
404 (DWORD, "dwCKeyCaps"),
405 (DWORD, "dwFXCaps"),
406 (DWORD, "dwFXAlphaCaps"),
407 (DWORD, "dwPalCaps"),
408 (DWORD, "dwSVCaps"),
409 (DWORD, "dwAlphaBltConstBitDepths"),
410 (DWORD, "dwAlphaBltPixelBitDepths"),
411 (DWORD, "dwAlphaBltSurfaceBitDepths"),
412 (DWORD, "dwAlphaOverlayConstBitDepths"),
413 (DWORD, "dwAlphaOverlayPixelBitDepths"),
414 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
415 (DWORD, "dwZBufferBitDepths"),
416 (DWORD, "dwVidMemTotal"),
417 (DWORD, "dwVidMemFree"),
418 (DWORD, "dwMaxVisibleOverlays"),
419 (DWORD, "dwCurrVisibleOverlays"),
420 (DWORD, "dwNumFourCCCodes"),
421 (DWORD, "dwAlignBoundarySrc"),
422 (DWORD, "dwAlignSizeSrc"),
423 (DWORD, "dwAlignBoundaryDest"),
424 (DWORD, "dwAlignSizeDest"),
425 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100426 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100427 (DDSCAPS, "ddsOldCaps"),
428 (DWORD, "dwMinOverlayStretch"),
429 (DWORD, "dwMaxOverlayStretch"),
430 (DWORD, "dwMinLiveVideoStretch"),
431 (DWORD, "dwMaxLiveVideoStretch"),
432 (DWORD, "dwMinHwCodecStretch"),
433 (DWORD, "dwMaxHwCodecStretch"),
434 (DWORD, "dwReserved1"),
435 (DWORD, "dwReserved2"),
436 (DWORD, "dwReserved3"),
437 (DWORD, "dwSVBCaps"),
438 (DWORD, "dwSVBCKeyCaps"),
439 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100440 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100441 (DWORD, "dwVSBCaps"),
442 (DWORD, "dwVSBCKeyCaps"),
443 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100444 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100445 (DWORD, "dwSSBCaps"),
446 (DWORD, "dwSSBCKeyCaps"),
447 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100448 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100449 (DWORD, "dwMaxVideoPorts"),
450 (DWORD, "dwCurrVideoPorts"),
451 (DWORD, "dwSVBCaps2"),
452 (DWORD, "dwNLVBCaps"),
453 (DWORD, "dwNLVBCaps2"),
454 (DWORD, "dwNLVBCKeyCaps"),
455 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100456 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100457 (DDSCAPS2, "ddsCaps"),
458])
459LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
460
461DDCAPS_DX7 = Struct("DDCAPS_DX7", [
462 (DWORD, "dwSize"),
463 (DWORD, "dwCaps"),
464 (DWORD, "dwCaps2"),
465 (DWORD, "dwCKeyCaps"),
466 (DWORD, "dwFXCaps"),
467 (DWORD, "dwFXAlphaCaps"),
468 (DWORD, "dwPalCaps"),
469 (DWORD, "dwSVCaps"),
470 (DWORD, "dwAlphaBltConstBitDepths"),
471 (DWORD, "dwAlphaBltPixelBitDepths"),
472 (DWORD, "dwAlphaBltSurfaceBitDepths"),
473 (DWORD, "dwAlphaOverlayConstBitDepths"),
474 (DWORD, "dwAlphaOverlayPixelBitDepths"),
475 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
476 (DWORD, "dwZBufferBitDepths"),
477 (DWORD, "dwVidMemTotal"),
478 (DWORD, "dwVidMemFree"),
479 (DWORD, "dwMaxVisibleOverlays"),
480 (DWORD, "dwCurrVisibleOverlays"),
481 (DWORD, "dwNumFourCCCodes"),
482 (DWORD, "dwAlignBoundarySrc"),
483 (DWORD, "dwAlignSizeSrc"),
484 (DWORD, "dwAlignBoundaryDest"),
485 (DWORD, "dwAlignSizeDest"),
486 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100487 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100488 (DDSCAPS, "ddsOldCaps"),
489 (DWORD, "dwMinOverlayStretch"),
490 (DWORD, "dwMaxOverlayStretch"),
491 (DWORD, "dwMinLiveVideoStretch"),
492 (DWORD, "dwMaxLiveVideoStretch"),
493 (DWORD, "dwMinHwCodecStretch"),
494 (DWORD, "dwMaxHwCodecStretch"),
495 (DWORD, "dwReserved1"),
496 (DWORD, "dwReserved2"),
497 (DWORD, "dwReserved3"),
498 (DWORD, "dwSVBCaps"),
499 (DWORD, "dwSVBCKeyCaps"),
500 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100501 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100502 (DWORD, "dwVSBCaps"),
503 (DWORD, "dwVSBCKeyCaps"),
504 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100505 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100506 (DWORD, "dwSSBCaps"),
507 (DWORD, "dwSSBCKeyCaps"),
508 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100509 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100510 (DWORD, "dwMaxVideoPorts"),
511 (DWORD, "dwCurrVideoPorts"),
512 (DWORD, "dwSVBCaps2"),
513 (DWORD, "dwNLVBCaps"),
514 (DWORD, "dwNLVBCaps2"),
515 (DWORD, "dwNLVBCKeyCaps"),
516 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100517 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100518 (DDSCAPS2, "ddsCaps"),
519])
520LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
521DDCAPS = DDCAPS_DX7
522LPDDCAPS = Pointer(DDCAPS)
523
José Fonseca7cdbd382015-01-16 10:59:02 +0000524DirectDrawPixelFormatFlags = Flags(DWORD, [
525 "DDPF_ALPHAPIXELS",
526 "DDPF_ALPHA",
527 "DDPF_FOURCC",
528 "DDPF_PALETTEINDEXED4",
529 "DDPF_PALETTEINDEXEDTO8",
530 "DDPF_PALETTEINDEXED8",
531 "DDPF_RGB",
532 "DDPF_COMPRESSED",
533 "DDPF_RGBTOYUV",
534 "DDPF_YUV",
535 "DDPF_ZBUFFER",
536 "DDPF_PALETTEINDEXED1",
537 "DDPF_PALETTEINDEXED2",
538 "DDPF_ZPIXELS",
539 "DDPF_STENCILBUFFER",
540 "DDPF_ALPHAPREMULT",
541 "DDPF_LUMINANCE",
542 "DDPF_BUMPLUMINANCE",
543 "DDPF_BUMPDUDV",
544])
545
José Fonseca91af9232009-04-13 16:15:28 +0100546DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
547 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000548 (DirectDrawPixelFormatFlags, "dwFlags"),
José Fonseca91af9232009-04-13 16:15:28 +0100549 (DWORD, "dwFourCC"),
550 (DWORD, "dwRGBBitCount"),
551 (DWORD, "dwYUVBitCount"),
552 (DWORD, "dwZBufferBitDepth"),
553 (DWORD, "dwAlphaBitDepth"),
554 (DWORD, "dwLuminanceBitCount"),
555 (DWORD, "dwBumpBitCount"),
556 (DWORD, "dwPrivateFormatBitCount"),
557 (DWORD, "dwRBitMask"),
558 (DWORD, "dwYBitMask"),
559 (DWORD, "dwStencilBitDepth"),
560 (DWORD, "dwLuminanceBitMask"),
561 (DWORD, "dwBumpDuBitMask"),
562 (DWORD, "dwOperations"),
563 (DWORD, "dwGBitMask"),
564 (DWORD, "dwUBitMask"),
565 (DWORD, "dwZBitMask"),
566 (DWORD, "dwBumpDvBitMask"),
José Fonsecab6dda3b2012-11-26 19:47:45 +0000567 (Struct(None, [
568 (WORD, "wFlipMSTypes"),
569 (WORD, "wBltMSTypes"),
570 ]), "MultiSampleCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100571 (DWORD, "dwBBitMask"),
572 (DWORD, "dwVBitMask"),
573 (DWORD, "dwStencilBitMask"),
574 (DWORD, "dwBumpLuminanceBitMask"),
575 (DWORD, "dwRGBAlphaBitMask"),
576 (DWORD, "dwYUVAlphaBitMask"),
577 (DWORD, "dwLuminanceAlphaBitMask"),
578 (DWORD, "dwRGBZBitMask"),
579 (DWORD, "dwYUVZBitMask"),
580])
581LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
582
583DDOVERLAYFX = Struct("DDOVERLAYFX", [
584 (DWORD, "dwSize"),
585 (DWORD, "dwAlphaEdgeBlendBitDepth"),
586 (DWORD, "dwAlphaEdgeBlend"),
587 (DWORD, "dwReserved"),
588 (DWORD, "dwAlphaDestConstBitDepth"),
589 (DWORD, "dwAlphaDestConst"),
590 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
591 (DWORD, "dwAlphaSrcConstBitDepth"),
592 (DWORD, "dwAlphaSrcConst"),
593 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
594 (DDCOLORKEY, "dckDestColorkey"),
595 (DDCOLORKEY, "dckSrcColorkey"),
596 (DWORD, "dwDDFX"),
597 (DWORD, "dwFlags"),
598])
599LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
600
601DDBLTBATCH = Struct("DDBLTBATCH", [
602 (LPRECT, "lprDest"),
603 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
604 (LPRECT, "lprSrc"),
605 (DWORD, "dwFlags"),
606 (LPDDBLTFX, "lpDDBltFx"),
607])
608LPDDBLTBATCH = Pointer(DDBLTBATCH)
609
610DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonseca44756652011-10-15 10:26:30 +0100611 (Array(WORD, 256), "red"),
612 (Array(WORD, 256), "green"),
613 (Array(WORD, 256), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100614])
615LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
616
617DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000618 (CString, "szDriver"),
619 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100620 (LARGE_INTEGER, "liDriverVersion"),
621 (DWORD, "dwVendorId"),
622 (DWORD, "dwDeviceId"),
623 (DWORD, "dwSubSysId"),
624 (DWORD, "dwRevision"),
625 (GUID, "guidDeviceIdentifier"),
626])
627LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
628
629DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100630 (CString, "szDriver"),
631 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100632 (LARGE_INTEGER, "liDriverVersion"),
633 (DWORD, "dwVendorId"),
634 (DWORD, "dwDeviceId"),
635 (DWORD, "dwSubSysId"),
636 (DWORD, "dwRevision"),
637 (GUID, "guidDeviceIdentifier"),
638 (DWORD, "dwWHQLLevel"),
639])
640LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
641
José Fonseca08d21782011-05-26 00:58:26 +0100642LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
643LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100644
José Fonseca08d21782011-05-26 00:58:26 +0100645DirectDrawSurfaceDescFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100646 "DDSD_CAPS",
647 "DDSD_HEIGHT",
648 "DDSD_WIDTH",
649 "DDSD_PITCH",
650 "DDSD_BACKBUFFERCOUNT",
651 "DDSD_ZBUFFERBITDEPTH",
652 "DDSD_ALPHABITDEPTH",
653 "DDSD_LPSURFACE",
654 "DDSD_PIXELFORMAT",
655 "DDSD_CKDESTOVERLAY",
656 "DDSD_CKDESTBLT",
657 "DDSD_CKSRCOVERLAY",
658 "DDSD_CKSRCBLT",
659 "DDSD_MIPMAPCOUNT",
660 "DDSD_REFRESHRATE",
661 "DDSD_LINEARSIZE",
662 "DDSD_TEXTURESTAGE",
663 "DDSD_FVF",
664 "DDSD_SRCVBHANDLE",
665 "DDSD_DEPTH",
666 "DDSD_ALL",
667])
668
José Fonseca7cdbd382015-01-16 10:59:02 +0000669DDSURFACEDESC = Struct("DDSURFACEDESC", [
José Fonseca91af9232009-04-13 16:15:28 +0100670 (DWORD, "dwSize"),
José Fonseca7cdbd382015-01-16 10:59:02 +0000671 (DirectDrawSurfaceDescFlags, "dwFlags"),
672 (DWORD, "dwHeight"),
673 (DWORD, "dwWidth"),
674 (LONG, "lPitch"),
675 (DWORD, "dwLinearSize"),
676 (DWORD, "dwBackBufferCount"),
677 (DWORD, "dwMipMapCount"),
678 (DWORD, "dwZBufferBitDepth"),
679 (DWORD, "dwRefreshRate"),
680 (DWORD, "dwAlphaBitDepth"),
681 (DWORD, "dwReserved"),
682 (IntPointer("LPVOID"), "lpSurface"),
683 (DDCOLORKEY, "ddckCKDestOverlay"),
684 (DDCOLORKEY, "ddckCKDestBlt"),
685 (DDCOLORKEY, "ddckCKSrcOverlay"),
686 (DDCOLORKEY, "ddckCKSrcBlt"),
687 (DDPIXELFORMAT, "ddpfPixelFormat"),
688 (DDSCAPS, "ddsCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100689])
José Fonseca7cdbd382015-01-16 10:59:02 +0000690LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
José Fonseca91af9232009-04-13 16:15:28 +0100691
José Fonseca7cdbd382015-01-16 10:59:02 +0000692DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
693 (DWORD, "dwSize"),
694 (DirectDrawSurfaceDescFlags, "dwFlags"),
695 (DWORD, "dwHeight"),
696 (DWORD, "dwWidth"),
697 (LONG, "lPitch"),
698 (DWORD, "dwLinearSize"),
699 (DWORD, "dwBackBufferCount"),
700 (DWORD, "dwDepth"),
701 (DWORD, "dwMipMapCount"),
702 (DWORD, "dwRefreshRate"),
703 (DWORD, "dwSrcVBHandle"),
704 (DWORD, "dwAlphaBitDepth"),
705 (DWORD, "dwReserved"),
706 (IntPointer("LPVOID"), "lpSurface"),
707 (DDCOLORKEY, "ddckCKDestOverlay"),
708 (DWORD, "dwEmptyFaceColor"),
709 (DDCOLORKEY, "ddckCKDestBlt"),
710 (DDCOLORKEY, "ddckCKSrcOverlay"),
711 (DDCOLORKEY, "ddckCKSrcBlt"),
712 (DDPIXELFORMAT, "ddpfPixelFormat"),
713 (DWORD, "dwFVF"),
714 (DDSCAPS2, "ddsCaps"),
715 (DWORD, "dwTextureStage"),
716])
717LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
718
719DDOSD = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100720 "DDOSD_GUID",
721 "DDOSD_COMPRESSION_RATIO",
722 "DDOSD_SCAPS",
723 "DDOSD_OSCAPS",
724 "DDOSD_ALL",
725])
726
José Fonseca7cdbd382015-01-16 10:59:02 +0000727DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
728 (DWORD, "dwSize"),
729 (DDOSD, "dwFlags"),
730 (DDSCAPS2, "ddSCaps"),
731 (DDOSCAPS, "ddOSCaps"),
732 (GUID, "guid"),
733 (DWORD, "dwCompressionRatio"),
José Fonseca91af9232009-04-13 16:15:28 +0100734])
735
736DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
737 (DWORD, "dwSize"),
738 (DWORD, "dwFlags"),
739 (LONG, "lBrightness"),
740 (LONG, "lContrast"),
741 (LONG, "lHue"),
742 (LONG, "lSaturation"),
743 (LONG, "lSharpness"),
744 (LONG, "lGamma"),
745 (LONG, "lColorEnable"),
746 (DWORD, "dwReserved1"),
747])
748LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
749
José Fonseca08d21782011-05-26 00:58:26 +0100750DirectDrawEnumerateExFlags = Flags(DWORD, [
751 "DDENUM_ATTACHEDSECONDARYDEVICES",
752 "DDENUM_DETACHEDSECONDARYDEVICES",
753 "DDENUM_NONDISPLAYDEVICES",
754])
755
756DirectDrawCreateFlags = FakeEnum(DWORD, [
757 "DDCREATE_HARDWAREONLY",
758 "DDCREATE_EMULATIONONLY",
759])
760
761DirectDrawColorControlFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100762 "DDCOLOR_BRIGHTNESS",
763 "DDCOLOR_CONTRAST",
764 "DDCOLOR_HUE",
765 "DDCOLOR_SATURATION",
766 "DDCOLOR_SHARPNESS",
767 "DDCOLOR_GAMMA",
768 "DDCOLOR_COLORENABLE",
769])
770
José Fonseca08d21782011-05-26 00:58:26 +0100771DirectDrawDriverCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100772 "DDCAPS_3D",
773 "DDCAPS_ALIGNBOUNDARYDEST",
774 "DDCAPS_ALIGNSIZEDEST",
775 "DDCAPS_ALIGNBOUNDARYSRC",
776 "DDCAPS_ALIGNSIZESRC",
777 "DDCAPS_ALIGNSTRIDE",
778 "DDCAPS_BLT",
779 "DDCAPS_BLTQUEUE",
780 "DDCAPS_BLTFOURCC",
781 "DDCAPS_BLTSTRETCH",
782 "DDCAPS_GDI",
783 "DDCAPS_OVERLAY",
784 "DDCAPS_OVERLAYCANTCLIP",
785 "DDCAPS_OVERLAYFOURCC",
786 "DDCAPS_OVERLAYSTRETCH",
787 "DDCAPS_PALETTE",
788 "DDCAPS_PALETTEVSYNC",
789 "DDCAPS_READSCANLINE",
790 "DDCAPS_RESERVED1",
791 "DDCAPS_VBI",
792 "DDCAPS_ZBLTS",
793 "DDCAPS_ZOVERLAYS",
794 "DDCAPS_COLORKEY",
795 "DDCAPS_ALPHA",
796 "DDCAPS_COLORKEYHWASSIST",
797 "DDCAPS_NOHARDWARE",
798 "DDCAPS_BLTCOLORFILL",
799 "DDCAPS_BANKSWITCHED",
800 "DDCAPS_BLTDEPTHFILL",
801 "DDCAPS_CANCLIP",
802 "DDCAPS_CANCLIPSTRETCHED",
803 "DDCAPS_CANBLTSYSMEM",
804])
805
José Fonseca08d21782011-05-26 00:58:26 +0100806DirectDrawDriverCapsFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100807 "DDCAPS2_CERTIFIED",
808 "DDCAPS2_NO2DDURING3DSCENE",
809 "DDCAPS2_VIDEOPORT",
810 "DDCAPS2_AUTOFLIPOVERLAY",
811 "DDCAPS2_CANBOBINTERLEAVED",
812 "DDCAPS2_CANBOBNONINTERLEAVED",
813 "DDCAPS2_COLORCONTROLOVERLAY",
814 "DDCAPS2_COLORCONTROLPRIMARY",
815 "DDCAPS2_CANDROPZ16BIT",
816 "DDCAPS2_NONLOCALVIDMEM",
817 "DDCAPS2_NONLOCALVIDMEMCAPS",
818 "DDCAPS2_NOPAGELOCKREQUIRED",
819 "DDCAPS2_WIDESURFACES",
820 "DDCAPS2_CANFLIPODDEVEN",
821 "DDCAPS2_CANBOBHARDWARE",
822 "DDCAPS2_COPYFOURCC",
823 "DDCAPS2_PRIMARYGAMMA",
824 "DDCAPS2_CANRENDERWINDOWED",
825 "DDCAPS2_CANCALIBRATEGAMMA",
826 "DDCAPS2_FLIPINTERVAL",
827 "DDCAPS2_FLIPNOVSYNC",
828 "DDCAPS2_CANMANAGETEXTURE",
829 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
830 "DDCAPS2_STEREO",
831 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
832 "DDCAPS2_RESERVED1",
833 "DDCAPS2_CANMANAGERESOURCE",
834 "DDCAPS2_DYNAMICTEXTURES",
835 "DDCAPS2_CANAUTOGENMIPMAP",
836 "DDCAPS2_CANSHARERESOURCE",
837])
838
José Fonseca08d21782011-05-26 00:58:26 +0100839DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100840 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
841 "DDFXALPHACAPS_BLTALPHAPIXELS",
842 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
843 "DDFXALPHACAPS_BLTALPHASURFACES",
844 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
845 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
846 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
847 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
848 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
849 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
850])
851
José Fonseca08d21782011-05-26 00:58:26 +0100852DirectDrawFxCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100853 "DDFXCAPS_BLTARITHSTRETCHY",
854 "DDFXCAPS_BLTARITHSTRETCHYN",
855 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
856 "DDFXCAPS_BLTMIRRORUPDOWN",
857 "DDFXCAPS_BLTROTATION",
858 "DDFXCAPS_BLTROTATION90",
859 "DDFXCAPS_BLTSHRINKX",
860 "DDFXCAPS_BLTSHRINKXN",
861 "DDFXCAPS_BLTSHRINKY",
862 "DDFXCAPS_BLTSHRINKYN",
863 "DDFXCAPS_BLTSTRETCHX",
864 "DDFXCAPS_BLTSTRETCHXN",
865 "DDFXCAPS_BLTSTRETCHY",
866 "DDFXCAPS_BLTSTRETCHYN",
867 "DDFXCAPS_OVERLAYARITHSTRETCHY",
868 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
869 "DDFXCAPS_OVERLAYSHRINKX",
870 "DDFXCAPS_OVERLAYSHRINKXN",
871 "DDFXCAPS_OVERLAYSHRINKY",
872 "DDFXCAPS_OVERLAYSHRINKYN",
873 "DDFXCAPS_OVERLAYSTRETCHX",
874 "DDFXCAPS_OVERLAYSTRETCHXN",
875 "DDFXCAPS_OVERLAYSTRETCHY",
876 "DDFXCAPS_OVERLAYSTRETCHYN",
877 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
878 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
879 "DDFXCAPS_OVERLAYDEINTERLACE",
880 "DDFXCAPS_BLTALPHA",
881 "DDFXCAPS_BLTFILTER",
882 "DDFXCAPS_OVERLAYALPHA",
883 "DDFXCAPS_OVERLAYFILTER",
884])
885
José Fonseca08d21782011-05-26 00:58:26 +0100886DirectDrawStereoViewCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100887 "DDSVCAPS_RESERVED1",
888 "DDSVCAPS_RESERVED2",
889 "DDSVCAPS_RESERVED3",
890 "DDSVCAPS_RESERVED4",
891 "DDSVCAPS_STEREOSEQUENTIAL",
892])
893
José Fonseca08d21782011-05-26 00:58:26 +0100894DirectDrawPaletteCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100895 "DDPCAPS_4BIT",
896 "DDPCAPS_8BITENTRIES",
897 "DDPCAPS_8BIT",
898 "DDPCAPS_INITIALIZE",
899 "DDPCAPS_PRIMARYSURFACE",
900 "DDPCAPS_PRIMARYSURFACELEFT",
901 "DDPCAPS_ALLOW256",
902 "DDPCAPS_VSYNC",
903 "DDPCAPS_1BIT",
904 "DDPCAPS_2BIT",
905 "DDPCAPS_ALPHA",
906])
907
José Fonseca08d21782011-05-26 00:58:26 +0100908DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100909 "DDSPD_IUNKNOWNPOINTER",
910 "DDSPD_VOLATILE",
911])
912
José Fonseca08d21782011-05-26 00:58:26 +0100913DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100914 "DDBD_1",
915 "DDBD_2",
916 "DDBD_4",
917 "DDBD_8",
918 "DDBD_16",
919 "DDBD_24",
920 "DDBD_32",
921])
922
José Fonseca08d21782011-05-26 00:58:26 +0100923DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100924 "DDCKEY_COLORSPACE",
925 "DDCKEY_DESTBLT",
926 "DDCKEY_DESTOVERLAY",
927 "DDCKEY_SRCBLT",
928 "DDCKEY_SRCOVERLAY",
929])
930
José Fonseca08d21782011-05-26 00:58:26 +0100931DirectDrawColorKeyCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100932 "DDCKEYCAPS_DESTBLT",
933 "DDCKEYCAPS_DESTBLTCLRSPACE",
934 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
935 "DDCKEYCAPS_DESTBLTYUV",
936 "DDCKEYCAPS_DESTOVERLAY",
937 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
938 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
939 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
940 "DDCKEYCAPS_DESTOVERLAYYUV",
941 "DDCKEYCAPS_SRCBLT",
942 "DDCKEYCAPS_SRCBLTCLRSPACE",
943 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
944 "DDCKEYCAPS_SRCBLTYUV",
945 "DDCKEYCAPS_SRCOVERLAY",
946 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
947 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
948 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
949 "DDCKEYCAPS_SRCOVERLAYYUV",
950 "DDCKEYCAPS_NOCOSTOVERLAY",
951])
952
José Fonseca08d21782011-05-26 00:58:26 +0100953DirectDrawEnumSurfacesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100954 "DDENUMSURFACES_ALL",
955 "DDENUMSURFACES_MATCH",
956 "DDENUMSURFACES_NOMATCH",
957 "DDENUMSURFACES_CANBECREATED",
958 "DDENUMSURFACES_DOESEXIST",
959])
960
José Fonseca08d21782011-05-26 00:58:26 +0100961DirectDrawSetDisplayModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100962 "DDSDM_STANDARDVGAMODE",
963])
964
José Fonseca08d21782011-05-26 00:58:26 +0100965DirectDrawEnumDisplayModesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100966 "DDEDM_REFRESHRATES",
967 "DDEDM_STANDARDVGAMODES",
968])
969
José Fonseca08d21782011-05-26 00:58:26 +0100970DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100971 "DDSCL_FULLSCREEN",
972 "DDSCL_ALLOWREBOOT",
973 "DDSCL_NOWINDOWCHANGES",
974 "DDSCL_NORMAL",
975 "DDSCL_EXCLUSIVE",
976 "DDSCL_ALLOWMODEX",
977 "DDSCL_SETFOCUSWINDOW",
978 "DDSCL_SETDEVICEWINDOW",
979 "DDSCL_CREATEDEVICEWINDOW",
980 "DDSCL_MULTITHREADED",
981 "DDSCL_FPUSETUP",
982 "DDSCL_FPUPRESERVE",
983])
984
José Fonseca08d21782011-05-26 00:58:26 +0100985DirectDrawBltFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100986 "DDBLT_ALPHADEST",
987 "DDBLT_ALPHADESTCONSTOVERRIDE",
988 "DDBLT_ALPHADESTNEG",
989 "DDBLT_ALPHADESTSURFACEOVERRIDE",
990 "DDBLT_ALPHAEDGEBLEND",
991 "DDBLT_ALPHASRC",
992 "DDBLT_ALPHASRCCONSTOVERRIDE",
993 "DDBLT_ALPHASRCNEG",
994 "DDBLT_ALPHASRCSURFACEOVERRIDE",
995 "DDBLT_ASYNC",
996 "DDBLT_COLORFILL",
997 "DDBLT_DDFX",
998 "DDBLT_DDROPS",
999 "DDBLT_KEYDEST",
1000 "DDBLT_KEYDESTOVERRIDE",
1001 "DDBLT_KEYSRC",
1002 "DDBLT_KEYSRCOVERRIDE",
1003 "DDBLT_ROP",
1004 "DDBLT_ROTATIONANGLE",
1005 "DDBLT_ZBUFFER",
1006 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
1007 "DDBLT_ZBUFFERDESTOVERRIDE",
1008 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
1009 "DDBLT_ZBUFFERSRCOVERRIDE",
1010 "DDBLT_WAIT",
1011 "DDBLT_DEPTHFILL",
1012 "DDBLT_DONOTWAIT",
1013 "DDBLT_PRESENTATION",
1014 "DDBLT_LAST_PRESENTATION",
1015 "DDBLT_EXTENDED_FLAGS",
1016 "DDBLT_EXTENDED_LINEAR_CONTENT",
1017])
1018
José Fonseca08d21782011-05-26 00:58:26 +01001019DirectDrawBltFastFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001020 "DDBLTFAST_NOCOLORKEY",
1021 "DDBLTFAST_SRCCOLORKEY",
1022 "DDBLTFAST_DESTCOLORKEY",
1023 "DDBLTFAST_WAIT",
1024 "DDBLTFAST_DONOTWAIT",
1025])
1026
José Fonseca08d21782011-05-26 00:58:26 +01001027DirectDrawFlipFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001028 "DDFLIP_WAIT",
1029 "DDFLIP_EVEN",
1030 "DDFLIP_ODD",
1031 "DDFLIP_NOVSYNC",
1032 "DDFLIP_INTERVAL2",
1033 "DDFLIP_INTERVAL3",
1034 "DDFLIP_INTERVAL4",
1035 "DDFLIP_STEREO",
1036 "DDFLIP_DONOTWAIT",
1037])
1038
José Fonseca08d21782011-05-26 00:58:26 +01001039DirectDrawSurfaceOverlayFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001040 "DDOVER_ALPHADEST",
1041 "DDOVER_ALPHADESTCONSTOVERRIDE",
1042 "DDOVER_ALPHADESTNEG",
1043 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1044 "DDOVER_ALPHAEDGEBLEND",
1045 "DDOVER_ALPHASRC",
1046 "DDOVER_ALPHASRCCONSTOVERRIDE",
1047 "DDOVER_ALPHASRCNEG",
1048 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1049 "DDOVER_HIDE",
1050 "DDOVER_KEYDEST",
1051 "DDOVER_KEYDESTOVERRIDE",
1052 "DDOVER_KEYSRC",
1053 "DDOVER_KEYSRCOVERRIDE",
1054 "DDOVER_SHOW",
1055 "DDOVER_ADDDIRTYRECT",
1056 "DDOVER_REFRESHDIRTYRECTS",
1057 "DDOVER_REFRESHALL",
1058 "DDOVER_DDFX",
1059 "DDOVER_AUTOFLIP",
1060 "DDOVER_BOB",
1061 "DDOVER_OVERRIDEBOBWEAVE",
1062 "DDOVER_INTERLEAVED",
1063 "DDOVER_BOBHARDWARE",
1064 "DDOVER_ARGBSCALEFACTORS",
1065 "DDOVER_DEGRADEARGBSCALING",
1066])
1067
1068DDSETSURFACEDESC = Flags(DWORD, [
1069 #"DDSETSURFACEDESC_RECREATEDC",
1070 #"DDSETSURFACEDESC_PRESERVEDC",
1071])
1072
José Fonseca08d21782011-05-26 00:58:26 +01001073DirectDrawSurfaceLockFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001074 "DDLOCK_SURFACEMEMORYPTR",
1075 "DDLOCK_WAIT",
1076 "DDLOCK_EVENT",
1077 "DDLOCK_READONLY",
1078 "DDLOCK_WRITEONLY",
1079 "DDLOCK_NOSYSLOCK",
1080 "DDLOCK_NOOVERWRITE",
1081 "DDLOCK_DISCARDCONTENTS",
1082 "DDLOCK_OKTOSWAP",
1083 "DDLOCK_DONOTWAIT",
1084 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1085 "DDLOCK_NODIRTYUPDATE",
1086])
1087
José Fonseca08d21782011-05-26 00:58:26 +01001088DirectDrawSurfaceBltFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001089 "DDBLTFX_ARITHSTRETCHY",
1090 "DDBLTFX_MIRRORLEFTRIGHT",
1091 "DDBLTFX_MIRRORUPDOWN",
1092 "DDBLTFX_NOTEARING",
1093 "DDBLTFX_ROTATE180",
1094 "DDBLTFX_ROTATE270",
1095 "DDBLTFX_ROTATE90",
1096 "DDBLTFX_ZBUFFERRANGE",
1097 "DDBLTFX_ZBUFFERBASEDEST",
1098])
1099
José Fonseca08d21782011-05-26 00:58:26 +01001100DirectDrawOverlayFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001101 "DDOVERFX_ARITHSTRETCHY",
1102 "DDOVERFX_MIRRORLEFTRIGHT",
1103 "DDOVERFX_MIRRORUPDOWN",
1104 "DDOVERFX_DEINTERLACE",
1105])
1106
José Fonseca08d21782011-05-26 00:58:26 +01001107DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001108 "DDWAITVB_BLOCKBEGIN",
1109 "DDWAITVB_BLOCKBEGINEVENT",
1110 "DDWAITVB_BLOCKEND",
1111])
1112
José Fonseca08d21782011-05-26 00:58:26 +01001113DirectDrawGetFlipStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001114 "DDGFS_CANFLIP",
1115 "DDGFS_ISFLIPDONE",
1116])
1117
José Fonseca08d21782011-05-26 00:58:26 +01001118DirectDrawGetBltStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001119 "DDGBS_CANBLT",
1120 "DDGBS_ISBLTDONE",
1121])
1122
José Fonseca08d21782011-05-26 00:58:26 +01001123DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001124 "DDENUMOVERLAYZ_BACKTOFRONT",
1125 "DDENUMOVERLAYZ_FRONTTOBACK",
1126])
1127
José Fonseca08d21782011-05-26 00:58:26 +01001128DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001129 "DDOVERZ_SENDTOFRONT",
1130 "DDOVERZ_SENDTOBACK",
1131 "DDOVERZ_MOVEFORWARD",
1132 "DDOVERZ_MOVEBACKWARD",
1133 "DDOVERZ_INSERTINFRONTOF",
1134 "DDOVERZ_INSERTINBACKOF",
1135])
1136
José Fonseca08d21782011-05-26 00:58:26 +01001137DirectDrawSetGammaRampFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001138 "DDSGR_CALIBRATE",
1139])
1140
José Fonseca08d21782011-05-26 00:58:26 +01001141DirectDrawStartModeTestFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001142 "DDSMT_ISTESTREQUIRED",
1143])
1144
José Fonseca08d21782011-05-26 00:58:26 +01001145DirectDrawEvaluateModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001146 "DDEM_MODEPASSED",
1147 "DDEM_MODEFAILED",
1148])
1149
José Fonseca73841ad2012-04-16 20:47:56 +01001150DDRESULT = MAKE_HRESULT(ok = "DD_OK", false = "DD_FALSE", errors = [
José Fonseca91af9232009-04-13 16:15:28 +01001151 "DDERR_ALREADYINITIALIZED",
1152 "DDERR_CANNOTATTACHSURFACE",
1153 "DDERR_CANNOTDETACHSURFACE",
1154 "DDERR_CURRENTLYNOTAVAIL",
1155 "DDERR_EXCEPTION",
1156 "DDERR_GENERIC",
1157 "DDERR_HEIGHTALIGN",
1158 "DDERR_INCOMPATIBLEPRIMARY",
1159 "DDERR_INVALIDCAPS",
1160 "DDERR_INVALIDCLIPLIST",
1161 "DDERR_INVALIDMODE",
1162 "DDERR_INVALIDOBJECT",
1163 "DDERR_INVALIDPARAMS",
1164 "DDERR_INVALIDPIXELFORMAT",
1165 "DDERR_INVALIDRECT",
1166 "DDERR_LOCKEDSURFACES",
1167 "DDERR_NO3D",
1168 "DDERR_NOALPHAHW",
1169 "DDERR_NOSTEREOHARDWARE",
1170 "DDERR_NOSURFACELEFT",
1171 "DDERR_NOCLIPLIST",
1172 "DDERR_NOCOLORCONVHW",
1173 "DDERR_NOCOOPERATIVELEVELSET",
1174 "DDERR_NOCOLORKEY",
1175 "DDERR_NOCOLORKEYHW",
1176 "DDERR_NODIRECTDRAWSUPPORT",
1177 "DDERR_NOEXCLUSIVEMODE",
1178 "DDERR_NOFLIPHW",
1179 "DDERR_NOGDI",
1180 "DDERR_NOMIRRORHW",
1181 "DDERR_NOTFOUND",
1182 "DDERR_NOOVERLAYHW",
1183 "DDERR_OVERLAPPINGRECTS",
1184 "DDERR_NORASTEROPHW",
1185 "DDERR_NOROTATIONHW",
1186 "DDERR_NOSTRETCHHW",
1187 "DDERR_NOT4BITCOLOR",
1188 "DDERR_NOT4BITCOLORINDEX",
1189 "DDERR_NOT8BITCOLOR",
1190 "DDERR_NOTEXTUREHW",
1191 "DDERR_NOVSYNCHW",
1192 "DDERR_NOZBUFFERHW",
1193 "DDERR_NOZOVERLAYHW",
1194 "DDERR_OUTOFCAPS",
1195 "DDERR_OUTOFMEMORY",
1196 "DDERR_OUTOFVIDEOMEMORY",
1197 "DDERR_OVERLAYCANTCLIP",
1198 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1199 "DDERR_PALETTEBUSY",
1200 "DDERR_COLORKEYNOTSET",
1201 "DDERR_SURFACEALREADYATTACHED",
1202 "DDERR_SURFACEALREADYDEPENDENT",
1203 "DDERR_SURFACEBUSY",
1204 "DDERR_CANTLOCKSURFACE",
1205 "DDERR_SURFACEISOBSCURED",
1206 "DDERR_SURFACELOST",
1207 "DDERR_SURFACENOTATTACHED",
1208 "DDERR_TOOBIGHEIGHT",
1209 "DDERR_TOOBIGSIZE",
1210 "DDERR_TOOBIGWIDTH",
1211 "DDERR_UNSUPPORTED",
1212 "DDERR_UNSUPPORTEDFORMAT",
1213 "DDERR_UNSUPPORTEDMASK",
1214 "DDERR_INVALIDSTREAM",
1215 "DDERR_VERTICALBLANKINPROGRESS",
1216 "DDERR_WASSTILLDRAWING",
1217 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1218 "DDERR_XALIGN",
1219 "DDERR_INVALIDDIRECTDRAWGUID",
1220 "DDERR_DIRECTDRAWALREADYCREATED",
1221 "DDERR_NODIRECTDRAWHW",
1222 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1223 "DDERR_NOEMULATION",
1224 "DDERR_REGIONTOOSMALL",
1225 "DDERR_CLIPPERISUSINGHWND",
1226 "DDERR_NOCLIPPERATTACHED",
1227 "DDERR_NOHWND",
1228 "DDERR_HWNDSUBCLASSED",
1229 "DDERR_HWNDALREADYSET",
1230 "DDERR_NOPALETTEATTACHED",
1231 "DDERR_NOPALETTEHW",
1232 "DDERR_BLTFASTCANTCLIP",
1233 "DDERR_NOBLTHW",
1234 "DDERR_NODDROPSHW",
1235 "DDERR_OVERLAYNOTVISIBLE",
1236 "DDERR_NOOVERLAYDEST",
1237 "DDERR_INVALIDPOSITION",
1238 "DDERR_NOTAOVERLAYSURFACE",
1239 "DDERR_EXCLUSIVEMODEALREADYSET",
1240 "DDERR_NOTFLIPPABLE",
1241 "DDERR_CANTDUPLICATE",
1242 "DDERR_NOTLOCKED",
1243 "DDERR_CANTCREATEDC",
1244 "DDERR_NODC",
1245 "DDERR_WRONGMODE",
1246 "DDERR_IMPLICITLYCREATED",
1247 "DDERR_NOTPALETTIZED",
1248 "DDERR_UNSUPPORTEDMODE",
1249 "DDERR_NOMIPMAPHW",
1250 "DDERR_INVALIDSURFACETYPE",
1251 "DDERR_NOOPTIMIZEHW",
1252 "DDERR_NOTLOADED",
1253 "DDERR_NOFOCUSWINDOW",
1254 "DDERR_NOTONMIPMAPSUBLEVEL",
1255 "DDERR_DCALREADYCREATED",
1256 "DDERR_NONONLOCALVIDMEM",
1257 "DDERR_CANTPAGELOCK",
1258 "DDERR_CANTPAGEUNLOCK",
1259 "DDERR_NOTPAGELOCKED",
1260 "DDERR_MOREDATA",
1261 "DDERR_EXPIRED",
1262 "DDERR_TESTFINISHED",
1263 "DDERR_NEWMODE",
1264 "DDERR_D3DNOTINITIALIZED",
1265 "DDERR_VIDEONOTACTIVE",
1266 "DDERR_NOMONITORINFORMATION",
1267 "DDERR_NODRIVERSUPPORT",
1268 "DDERR_DEVICEDOESNTOWNSURFACE",
1269 "DDERR_NOTINITIALIZED",
1270])
1271
José Fonseca31524192010-11-22 21:05:26 +00001272LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1273LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1274LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1275LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1276LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
José Fonseca91af9232009-04-13 16:15:28 +01001277
1278IDirectDraw.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001279 StdMethod(DDRESULT, "Compact", []),
1280 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1281 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1282 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1283 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001284 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1285 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001286 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001287 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1288 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1289 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001290 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001291 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1292 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1293 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001294 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1295 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1296 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1297 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1298 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca91af9232009-04-13 16:15:28 +01001299]
1300
1301IDirectDraw2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001302 StdMethod(DDRESULT, "Compact", []),
1303 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1304 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1305 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1306 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001307 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1308 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001309 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001310 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1311 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1312 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001313 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001314 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1315 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1316 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001317 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1318 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1319 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1320 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1321 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001322 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001323]
1324
1325IDirectDraw4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001326 StdMethod(DDRESULT, "Compact", []),
1327 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1328 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1329 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1330 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001331 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1332 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001333 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001334 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1335 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1336 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001337 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001338 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1339 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1340 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001341 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1342 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1343 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1344 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1345 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001346 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001347 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1348 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1349 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001350 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001351]
1352
1353IDirectDraw7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001354 StdMethod(DDRESULT, "Compact", []),
1355 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1356 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1357 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1358 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001359 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1360 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001361 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001362 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1363 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1364 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001365 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001366 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1367 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1368 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001369 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1370 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1371 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1372 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1373 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001374 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001375 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1376 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1377 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001378 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001379 StdMethod(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1380 StdMethod(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
José Fonseca91af9232009-04-13 16:15:28 +01001381]
1382
1383IDirectDrawPalette.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001384 StdMethod(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")], sideeffects=False),
1385 StdMethod(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(LPPALETTEENTRY, "lpEntries")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001386 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
1387 StdMethod(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (LPPALETTEENTRY, "lpEntries")]),
José Fonseca91af9232009-04-13 16:15:28 +01001388]
1389
1390IDirectDrawClipper.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001391 StdMethod(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")], sideeffects=False),
1392 StdMethod(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001393 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1394 StdMethod(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1395 StdMethod(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1396 StdMethod(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
José Fonseca91af9232009-04-13 16:15:28 +01001397]
1398
1399
1400IDirectDrawSurface.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001401 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1402 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1403 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1404 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1405 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1406 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001407 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1408 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001409 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1410 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1411 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001412 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001413 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001414 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1415 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1416 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1417 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001418 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001419 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1420 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001421 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1422 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001423 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001424 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1425 StdMethod(DDRESULT, "Restore", []),
1426 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1427 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1428 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1429 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1430 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1431 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1432 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1433 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
José Fonseca91af9232009-04-13 16:15:28 +01001434]
1435
1436IDirectDrawSurface2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001437 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1438 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1439 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1440 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1441 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1442 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001443 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1444 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001445 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1446 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001447 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1448 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001449 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001450 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1451 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1452 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1453 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001454 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001455 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1456 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001457 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1458 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001459 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001460 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1461 StdMethod(DDRESULT, "Restore", []),
1462 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1463 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1464 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1465 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1466 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1467 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1468 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1469 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
1470 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1471 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1472 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001473]
1474
1475IDirectDrawSurface3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001476 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1477 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1478 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1479 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1480 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1481 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001482 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1483 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001484 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1485 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001486 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1487 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001488 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001489 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1490 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1491 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1492 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001493 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001494 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1495 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001496 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1497 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001498 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001499 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1500 StdMethod(DDRESULT, "Restore", []),
1501 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1502 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1503 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1504 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1505 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1506 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1507 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1508 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
1509 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1510 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1511 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1512 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001513]
1514
1515IDirectDrawSurface4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001516 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1517 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1518 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1519 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1520 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1521 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001522 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
1523 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001524 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1525 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001526 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1527 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001528 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001529 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1530 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1531 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1532 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001533 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001534 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1535 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001536 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1537 StdMethod(DDRESULT, "IsLost", []),
José Fonseca7cdbd382015-01-16 10:59:02 +00001538 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001539 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1540 StdMethod(DDRESULT, "Restore", []),
1541 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1542 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1543 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1544 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1545 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1546 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1547 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1548 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
1549 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1550 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1551 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1552 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001553 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1554 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1555 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001556 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1557 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
José Fonseca91af9232009-04-13 16:15:28 +01001558]
1559
1560IDirectDrawSurface7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001561 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1562 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1563 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1564 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1565 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1566 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001567 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
1568 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001569 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1570 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1571 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1572 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1573 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1574 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001575 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001576 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001577 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001578 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001579 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1580 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001581 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001582 StdMethod(DDRESULT, "IsLost", [], sideeffects=False),
1583 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), InOut(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1584 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001585 StdMethod(DDRESULT, "Restore", []),
1586 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1587 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1588 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1589 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1590 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1591 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1592 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1593 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
José Fonseca7cdbd382015-01-16 10:59:02 +00001594 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(ObjPointer(VOID)), "lplpDD")]),
José Fonseca43aa19f2012-11-10 09:29:38 +00001595 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1596 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1597 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001598 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1599 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1600 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
1601 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001602 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1603 StdMethod(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001604 StdMethod(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001605 StdMethod(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001606 StdMethod(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001607]
1608
1609IDirectDrawColorControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001610 StdMethod(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1611 StdMethod(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
José Fonseca91af9232009-04-13 16:15:28 +01001612]
1613
1614IDirectDrawGammaControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001615 StdMethod(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
1616 StdMethod(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]),
José Fonseca91af9232009-04-13 16:15:28 +01001617]
1618
José Fonseca31524192010-11-22 21:05:26 +00001619LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1620LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1621LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1622LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
José Fonseca91af9232009-04-13 16:15:28 +01001623
1624DDENUM = Flags(DWORD, [
1625 "DDENUM_ATTACHEDSECONDARYDEVICES",
1626 "DDENUM_DETACHEDSECONDARYDEVICES",
1627 "DDENUM_NONDISPLAYDEVICES",
1628])
1629
1630DDCREATE = Flags(DWORD, [
1631 "DDCREATE_HARDWAREONLY",
1632 "DDCREATE_EMULATIONONLY",
1633])
1634
José Fonseca81301932012-11-11 00:10:20 +00001635ddraw = Module("ddraw")
José Fonseca54f304a2012-01-14 19:33:08 +00001636ddraw.addFunctions([
José Fonseca50c2a142015-01-15 13:10:46 +00001637 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1638 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1639 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
1640 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
José Fonseca9782b292012-04-14 22:02:42 +01001641 StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecabcb26b22012-04-15 08:42:25 +01001642 StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(ObjPointer(Void)), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca9782b292012-04-14 22:02:42 +01001643 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecaa6f94092012-11-11 00:22:33 +00001644 StdFunction(Void, "AcquireDDThreadLock", [], internal=True),
1645 StdFunction(Void, "ReleaseDDThreadLock", [], internal=True),
José Fonseca50c2a142015-01-15 13:10:46 +00001646 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")], internal=True),
1647 StdFunction(HRESULT, "DllCanUnloadNow", [], internal=True),
1648 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")], sideeffects=False),
José Fonsecabb8760b2011-05-25 23:21:18 +01001649
1650 # XXX
José Fonseca50c2a142015-01-15 13:10:46 +00001651 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int], internal=True),
1652 #StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int], internal=True),
1653 StdFunction(HRESULT, "DDInternalLock", [Int, Int], internal=True),
1654 StdFunction(HRESULT, "DDInternalUnlock", [Int], internal=True),
1655 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int], internal=True),
1656 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int], internal=True),
1657 StdFunction(HANDLE, "GetOLEThunkData", [Int], internal=True),
1658 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int], internal=True),
1659 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int], internal=True),
José Fonsecabb8760b2011-05-25 23:21:18 +01001660
1661 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001662])
José Fonseca91af9232009-04-13 16:15:28 +01001663