blob: 16263bc6d1f642df768128b012f83d30770d1e74 [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
134DDSCAPS = Struct("DDSCAPS", [
135 (DWORD, "dwCaps"),
136])
137LPDDSCAPS = Pointer(DDSCAPS)
138
139DDOSCAPS = Struct("DDOSCAPS", [
140 (DWORD, "dwCaps"),
141])
142LPDDOSCAPS = Pointer(DDOSCAPS)
143
144DDSCAPSEX = Struct("DDSCAPSEX", [
145 (DWORD, "dwCaps2"),
146 (DWORD, "dwCaps3"),
147 (DWORD, "dwCaps4"),
148])
149
150DDSCAPS2 = Struct("DDSCAPS2", [
151 (DWORD, "dwCaps"),
152 (DWORD, "dwCaps2"),
153 (DWORD, "dwCaps3"),
154 (DWORD, "dwCaps4"),
155])
156LPDDSCAPS2 = Pointer(DDSCAPS2)
157
158DDCAPS_DX1 = Struct("DDCAPS_DX1", [
159 (DWORD, "dwSize"),
160 (DWORD, "dwCaps"),
161 (DWORD, "dwCaps2"),
162 (DWORD, "dwCKeyCaps"),
163 (DWORD, "dwFXCaps"),
164 (DWORD, "dwFXAlphaCaps"),
165 (DWORD, "dwPalCaps"),
166 (DWORD, "dwSVCaps"),
167 (DWORD, "dwAlphaBltConstBitDepths"),
168 (DWORD, "dwAlphaBltPixelBitDepths"),
169 (DWORD, "dwAlphaBltSurfaceBitDepths"),
170 (DWORD, "dwAlphaOverlayConstBitDepths"),
171 (DWORD, "dwAlphaOverlayPixelBitDepths"),
172 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
173 (DWORD, "dwZBufferBitDepths"),
174 (DWORD, "dwVidMemTotal"),
175 (DWORD, "dwVidMemFree"),
176 (DWORD, "dwMaxVisibleOverlays"),
177 (DWORD, "dwCurrVisibleOverlays"),
178 (DWORD, "dwNumFourCCCodes"),
179 (DWORD, "dwAlignBoundarySrc"),
180 (DWORD, "dwAlignSizeSrc"),
181 (DWORD, "dwAlignBoundaryDest"),
182 (DWORD, "dwAlignSizeDest"),
183 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100184 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100185 (DDSCAPS, "ddsCaps"),
186 (DWORD, "dwMinOverlayStretch"),
187 (DWORD, "dwMaxOverlayStretch"),
188 (DWORD, "dwMinLiveVideoStretch"),
189 (DWORD, "dwMaxLiveVideoStretch"),
190 (DWORD, "dwMinHwCodecStretch"),
191 (DWORD, "dwMaxHwCodecStretch"),
192 (DWORD, "dwReserved1"),
193 (DWORD, "dwReserved2"),
194 (DWORD, "dwReserved3"),
195])
196LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
197
198DDCAPS_DX3 = Struct("DDCAPS_DX3", [
199 (DWORD, "dwSize"),
200 (DWORD, "dwCaps"),
201 (DWORD, "dwCaps2"),
202 (DWORD, "dwCKeyCaps"),
203 (DWORD, "dwFXCaps"),
204 (DWORD, "dwFXAlphaCaps"),
205 (DWORD, "dwPalCaps"),
206 (DWORD, "dwSVCaps"),
207 (DWORD, "dwAlphaBltConstBitDepths"),
208 (DWORD, "dwAlphaBltPixelBitDepths"),
209 (DWORD, "dwAlphaBltSurfaceBitDepths"),
210 (DWORD, "dwAlphaOverlayConstBitDepths"),
211 (DWORD, "dwAlphaOverlayPixelBitDepths"),
212 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
213 (DWORD, "dwZBufferBitDepths"),
214 (DWORD, "dwVidMemTotal"),
215 (DWORD, "dwVidMemFree"),
216 (DWORD, "dwMaxVisibleOverlays"),
217 (DWORD, "dwCurrVisibleOverlays"),
218 (DWORD, "dwNumFourCCCodes"),
219 (DWORD, "dwAlignBoundarySrc"),
220 (DWORD, "dwAlignSizeSrc"),
221 (DWORD, "dwAlignBoundaryDest"),
222 (DWORD, "dwAlignSizeDest"),
223 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100224 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100225 (DDSCAPS, "ddsCaps"),
226 (DWORD, "dwMinOverlayStretch"),
227 (DWORD, "dwMaxOverlayStretch"),
228 (DWORD, "dwMinLiveVideoStretch"),
229 (DWORD, "dwMaxLiveVideoStretch"),
230 (DWORD, "dwMinHwCodecStretch"),
231 (DWORD, "dwMaxHwCodecStretch"),
232 (DWORD, "dwReserved1"),
233 (DWORD, "dwReserved2"),
234 (DWORD, "dwReserved3"),
235 (DWORD, "dwSVBCaps"),
236 (DWORD, "dwSVBCKeyCaps"),
237 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100238 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100239 (DWORD, "dwVSBCaps"),
240 (DWORD, "dwVSBCKeyCaps"),
241 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100242 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100243 (DWORD, "dwSSBCaps"),
244 (DWORD, "dwSSBCKeyCaps"),
245 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100246 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100247 (DWORD, "dwReserved4"),
248 (DWORD, "dwReserved5"),
249 (DWORD, "dwReserved6"),
250])
251LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
252
253DDCAPS_DX5 = Struct("DDCAPS_DX5", [
254 (DWORD, "dwSize"),
255 (DWORD, "dwCaps"),
256 (DWORD, "dwCaps2"),
257 (DWORD, "dwCKeyCaps"),
258 (DWORD, "dwFXCaps"),
259 (DWORD, "dwFXAlphaCaps"),
260 (DWORD, "dwPalCaps"),
261 (DWORD, "dwSVCaps"),
262 (DWORD, "dwAlphaBltConstBitDepths"),
263 (DWORD, "dwAlphaBltPixelBitDepths"),
264 (DWORD, "dwAlphaBltSurfaceBitDepths"),
265 (DWORD, "dwAlphaOverlayConstBitDepths"),
266 (DWORD, "dwAlphaOverlayPixelBitDepths"),
267 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
268 (DWORD, "dwZBufferBitDepths"),
269 (DWORD, "dwVidMemTotal"),
270 (DWORD, "dwVidMemFree"),
271 (DWORD, "dwMaxVisibleOverlays"),
272 (DWORD, "dwCurrVisibleOverlays"),
273 (DWORD, "dwNumFourCCCodes"),
274 (DWORD, "dwAlignBoundarySrc"),
275 (DWORD, "dwAlignSizeSrc"),
276 (DWORD, "dwAlignBoundaryDest"),
277 (DWORD, "dwAlignSizeDest"),
278 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100279 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100280 (DDSCAPS, "ddsCaps"),
281 (DWORD, "dwMinOverlayStretch"),
282 (DWORD, "dwMaxOverlayStretch"),
283 (DWORD, "dwMinLiveVideoStretch"),
284 (DWORD, "dwMaxLiveVideoStretch"),
285 (DWORD, "dwMinHwCodecStretch"),
286 (DWORD, "dwMaxHwCodecStretch"),
287 (DWORD, "dwReserved1"),
288 (DWORD, "dwReserved2"),
289 (DWORD, "dwReserved3"),
290 (DWORD, "dwSVBCaps"),
291 (DWORD, "dwSVBCKeyCaps"),
292 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100293 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100294 (DWORD, "dwVSBCaps"),
295 (DWORD, "dwVSBCKeyCaps"),
296 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100297 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100298 (DWORD, "dwSSBCaps"),
299 (DWORD, "dwSSBCKeyCaps"),
300 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100301 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100302 (DWORD, "dwMaxVideoPorts"),
303 (DWORD, "dwCurrVideoPorts"),
304 (DWORD, "dwSVBCaps2"),
305 (DWORD, "dwNLVBCaps"),
306 (DWORD, "dwNLVBCaps2"),
307 (DWORD, "dwNLVBCKeyCaps"),
308 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100309 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100310])
311LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
312
313DDCAPS_DX6 = Struct("DDCAPS_DX6", [
314 (DWORD, "dwSize"),
315 (DWORD, "dwCaps"),
316 (DWORD, "dwCaps2"),
317 (DWORD, "dwCKeyCaps"),
318 (DWORD, "dwFXCaps"),
319 (DWORD, "dwFXAlphaCaps"),
320 (DWORD, "dwPalCaps"),
321 (DWORD, "dwSVCaps"),
322 (DWORD, "dwAlphaBltConstBitDepths"),
323 (DWORD, "dwAlphaBltPixelBitDepths"),
324 (DWORD, "dwAlphaBltSurfaceBitDepths"),
325 (DWORD, "dwAlphaOverlayConstBitDepths"),
326 (DWORD, "dwAlphaOverlayPixelBitDepths"),
327 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
328 (DWORD, "dwZBufferBitDepths"),
329 (DWORD, "dwVidMemTotal"),
330 (DWORD, "dwVidMemFree"),
331 (DWORD, "dwMaxVisibleOverlays"),
332 (DWORD, "dwCurrVisibleOverlays"),
333 (DWORD, "dwNumFourCCCodes"),
334 (DWORD, "dwAlignBoundarySrc"),
335 (DWORD, "dwAlignSizeSrc"),
336 (DWORD, "dwAlignBoundaryDest"),
337 (DWORD, "dwAlignSizeDest"),
338 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100339 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100340 (DDSCAPS, "ddsOldCaps"),
341 (DWORD, "dwMinOverlayStretch"),
342 (DWORD, "dwMaxOverlayStretch"),
343 (DWORD, "dwMinLiveVideoStretch"),
344 (DWORD, "dwMaxLiveVideoStretch"),
345 (DWORD, "dwMinHwCodecStretch"),
346 (DWORD, "dwMaxHwCodecStretch"),
347 (DWORD, "dwReserved1"),
348 (DWORD, "dwReserved2"),
349 (DWORD, "dwReserved3"),
350 (DWORD, "dwSVBCaps"),
351 (DWORD, "dwSVBCKeyCaps"),
352 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100353 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100354 (DWORD, "dwVSBCaps"),
355 (DWORD, "dwVSBCKeyCaps"),
356 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100357 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100358 (DWORD, "dwSSBCaps"),
359 (DWORD, "dwSSBCKeyCaps"),
360 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100361 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100362 (DWORD, "dwMaxVideoPorts"),
363 (DWORD, "dwCurrVideoPorts"),
364 (DWORD, "dwSVBCaps2"),
365 (DWORD, "dwNLVBCaps"),
366 (DWORD, "dwNLVBCaps2"),
367 (DWORD, "dwNLVBCKeyCaps"),
368 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100369 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100370 (DDSCAPS2, "ddsCaps"),
371])
372LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
373
374DDCAPS_DX7 = Struct("DDCAPS_DX7", [
375 (DWORD, "dwSize"),
376 (DWORD, "dwCaps"),
377 (DWORD, "dwCaps2"),
378 (DWORD, "dwCKeyCaps"),
379 (DWORD, "dwFXCaps"),
380 (DWORD, "dwFXAlphaCaps"),
381 (DWORD, "dwPalCaps"),
382 (DWORD, "dwSVCaps"),
383 (DWORD, "dwAlphaBltConstBitDepths"),
384 (DWORD, "dwAlphaBltPixelBitDepths"),
385 (DWORD, "dwAlphaBltSurfaceBitDepths"),
386 (DWORD, "dwAlphaOverlayConstBitDepths"),
387 (DWORD, "dwAlphaOverlayPixelBitDepths"),
388 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
389 (DWORD, "dwZBufferBitDepths"),
390 (DWORD, "dwVidMemTotal"),
391 (DWORD, "dwVidMemFree"),
392 (DWORD, "dwMaxVisibleOverlays"),
393 (DWORD, "dwCurrVisibleOverlays"),
394 (DWORD, "dwNumFourCCCodes"),
395 (DWORD, "dwAlignBoundarySrc"),
396 (DWORD, "dwAlignSizeSrc"),
397 (DWORD, "dwAlignBoundaryDest"),
398 (DWORD, "dwAlignSizeDest"),
399 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100400 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100401 (DDSCAPS, "ddsOldCaps"),
402 (DWORD, "dwMinOverlayStretch"),
403 (DWORD, "dwMaxOverlayStretch"),
404 (DWORD, "dwMinLiveVideoStretch"),
405 (DWORD, "dwMaxLiveVideoStretch"),
406 (DWORD, "dwMinHwCodecStretch"),
407 (DWORD, "dwMaxHwCodecStretch"),
408 (DWORD, "dwReserved1"),
409 (DWORD, "dwReserved2"),
410 (DWORD, "dwReserved3"),
411 (DWORD, "dwSVBCaps"),
412 (DWORD, "dwSVBCKeyCaps"),
413 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100414 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100415 (DWORD, "dwVSBCaps"),
416 (DWORD, "dwVSBCKeyCaps"),
417 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100418 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100419 (DWORD, "dwSSBCaps"),
420 (DWORD, "dwSSBCKeyCaps"),
421 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100422 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100423 (DWORD, "dwMaxVideoPorts"),
424 (DWORD, "dwCurrVideoPorts"),
425 (DWORD, "dwSVBCaps2"),
426 (DWORD, "dwNLVBCaps"),
427 (DWORD, "dwNLVBCaps2"),
428 (DWORD, "dwNLVBCKeyCaps"),
429 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100430 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100431 (DDSCAPS2, "ddsCaps"),
432])
433LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
434DDCAPS = DDCAPS_DX7
435LPDDCAPS = Pointer(DDCAPS)
436
437DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
438 (DWORD, "dwSize"),
439 (DWORD, "dwFlags"),
440 (DWORD, "dwFourCC"),
441 (DWORD, "dwRGBBitCount"),
442 (DWORD, "dwYUVBitCount"),
443 (DWORD, "dwZBufferBitDepth"),
444 (DWORD, "dwAlphaBitDepth"),
445 (DWORD, "dwLuminanceBitCount"),
446 (DWORD, "dwBumpBitCount"),
447 (DWORD, "dwPrivateFormatBitCount"),
448 (DWORD, "dwRBitMask"),
449 (DWORD, "dwYBitMask"),
450 (DWORD, "dwStencilBitDepth"),
451 (DWORD, "dwLuminanceBitMask"),
452 (DWORD, "dwBumpDuBitMask"),
453 (DWORD, "dwOperations"),
454 (DWORD, "dwGBitMask"),
455 (DWORD, "dwUBitMask"),
456 (DWORD, "dwZBitMask"),
457 (DWORD, "dwBumpDvBitMask"),
José Fonsecab6dda3b2012-11-26 19:47:45 +0000458 (Struct(None, [
459 (WORD, "wFlipMSTypes"),
460 (WORD, "wBltMSTypes"),
461 ]), "MultiSampleCaps"),
José Fonseca91af9232009-04-13 16:15:28 +0100462 (DWORD, "dwBBitMask"),
463 (DWORD, "dwVBitMask"),
464 (DWORD, "dwStencilBitMask"),
465 (DWORD, "dwBumpLuminanceBitMask"),
466 (DWORD, "dwRGBAlphaBitMask"),
467 (DWORD, "dwYUVAlphaBitMask"),
468 (DWORD, "dwLuminanceAlphaBitMask"),
469 (DWORD, "dwRGBZBitMask"),
470 (DWORD, "dwYUVZBitMask"),
471])
472LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
473
474DDOVERLAYFX = Struct("DDOVERLAYFX", [
475 (DWORD, "dwSize"),
476 (DWORD, "dwAlphaEdgeBlendBitDepth"),
477 (DWORD, "dwAlphaEdgeBlend"),
478 (DWORD, "dwReserved"),
479 (DWORD, "dwAlphaDestConstBitDepth"),
480 (DWORD, "dwAlphaDestConst"),
481 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
482 (DWORD, "dwAlphaSrcConstBitDepth"),
483 (DWORD, "dwAlphaSrcConst"),
484 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
485 (DDCOLORKEY, "dckDestColorkey"),
486 (DDCOLORKEY, "dckSrcColorkey"),
487 (DWORD, "dwDDFX"),
488 (DWORD, "dwFlags"),
489])
490LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
491
492DDBLTBATCH = Struct("DDBLTBATCH", [
493 (LPRECT, "lprDest"),
494 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
495 (LPRECT, "lprSrc"),
496 (DWORD, "dwFlags"),
497 (LPDDBLTFX, "lpDDBltFx"),
498])
499LPDDBLTBATCH = Pointer(DDBLTBATCH)
500
501DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonseca44756652011-10-15 10:26:30 +0100502 (Array(WORD, 256), "red"),
503 (Array(WORD, 256), "green"),
504 (Array(WORD, 256), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100505])
506LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
507
508DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000509 (CString, "szDriver"),
510 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100511 (LARGE_INTEGER, "liDriverVersion"),
512 (DWORD, "dwVendorId"),
513 (DWORD, "dwDeviceId"),
514 (DWORD, "dwSubSysId"),
515 (DWORD, "dwRevision"),
516 (GUID, "guidDeviceIdentifier"),
517])
518LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
519
520DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100521 (CString, "szDriver"),
522 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100523 (LARGE_INTEGER, "liDriverVersion"),
524 (DWORD, "dwVendorId"),
525 (DWORD, "dwDeviceId"),
526 (DWORD, "dwSubSysId"),
527 (DWORD, "dwRevision"),
528 (GUID, "guidDeviceIdentifier"),
529 (DWORD, "dwWHQLLevel"),
530])
531LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
532
José Fonseca08d21782011-05-26 00:58:26 +0100533LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
534LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100535
536DDSURFACEDESC = Struct("DDSURFACEDESC", [
537 (DWORD, "dwSize"),
538 (DWORD, "dwFlags"),
539 (DWORD, "dwHeight"),
540 (DWORD, "dwWidth"),
541 (LONG, "lPitch"),
542 (DWORD, "dwLinearSize"),
543 (DWORD, "dwBackBufferCount"),
544 (DWORD, "dwMipMapCount"),
545 (DWORD, "dwZBufferBitDepth"),
546 (DWORD, "dwRefreshRate"),
547 (DWORD, "dwAlphaBitDepth"),
548 (DWORD, "dwReserved"),
José Fonseca50c2a142015-01-15 13:10:46 +0000549 (IntPointer("LPVOID"), "lpSurface"),
José Fonseca91af9232009-04-13 16:15:28 +0100550 (DDCOLORKEY, "ddckCKDestOverlay"),
551 (DDCOLORKEY, "ddckCKDestBlt"),
552 (DDCOLORKEY, "ddckCKSrcOverlay"),
553 (DDCOLORKEY, "ddckCKSrcBlt"),
554 (DDPIXELFORMAT, "ddpfPixelFormat"),
555 (DDSCAPS, "ddsCaps"),
556])
557LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
558
559DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
560 (DWORD, "dwSize"),
561 (DWORD, "dwFlags"),
562 (DWORD, "dwHeight"),
563 (DWORD, "dwWidth"),
564 (LONG, "lPitch"),
565 (DWORD, "dwLinearSize"),
566 (DWORD, "dwBackBufferCount"),
567 (DWORD, "dwDepth"),
568 (DWORD, "dwMipMapCount"),
569 (DWORD, "dwRefreshRate"),
570 (DWORD, "dwSrcVBHandle"),
571 (DWORD, "dwAlphaBitDepth"),
572 (DWORD, "dwReserved"),
José Fonseca50c2a142015-01-15 13:10:46 +0000573 (IntPointer("LPVOID"), "lpSurface"),
José Fonseca91af9232009-04-13 16:15:28 +0100574 (DDCOLORKEY, "ddckCKDestOverlay"),
575 (DWORD, "dwEmptyFaceColor"),
576 (DDCOLORKEY, "ddckCKDestBlt"),
577 (DDCOLORKEY, "ddckCKSrcOverlay"),
578 (DDCOLORKEY, "ddckCKSrcBlt"),
579 (DDPIXELFORMAT, "ddpfPixelFormat"),
580 (DWORD, "dwFVF"),
581 (DDSCAPS2, "ddsCaps"),
582 (DWORD, "dwTextureStage"),
583])
584LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
585
José Fonseca08d21782011-05-26 00:58:26 +0100586DirectDrawSurfaceDescFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100587 "DDSD_CAPS",
588 "DDSD_HEIGHT",
589 "DDSD_WIDTH",
590 "DDSD_PITCH",
591 "DDSD_BACKBUFFERCOUNT",
592 "DDSD_ZBUFFERBITDEPTH",
593 "DDSD_ALPHABITDEPTH",
594 "DDSD_LPSURFACE",
595 "DDSD_PIXELFORMAT",
596 "DDSD_CKDESTOVERLAY",
597 "DDSD_CKDESTBLT",
598 "DDSD_CKSRCOVERLAY",
599 "DDSD_CKSRCBLT",
600 "DDSD_MIPMAPCOUNT",
601 "DDSD_REFRESHRATE",
602 "DDSD_LINEARSIZE",
603 "DDSD_TEXTURESTAGE",
604 "DDSD_FVF",
605 "DDSD_SRCVBHANDLE",
606 "DDSD_DEPTH",
607 "DDSD_ALL",
608])
609
610DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
611 (DWORD, "dwSize"),
612 (DWORD, "dwFlags"),
613 (DDSCAPS2, "ddSCaps"),
614 (DDOSCAPS, "ddOSCaps"),
615 (GUID, "guid"),
616 (DWORD, "dwCompressionRatio"),
617])
618
619DDSD = Flags(DWORD, [
620 "DDOSD_GUID",
621 "DDOSD_COMPRESSION_RATIO",
622 "DDOSD_SCAPS",
623 "DDOSD_OSCAPS",
624 "DDOSD_ALL",
625])
626
627DDOSDCAPS = Flags(DWORD, [
628 "DDOSDCAPS_OPTCOMPRESSED",
629 "DDOSDCAPS_OPTREORDERED",
630 "DDOSDCAPS_MONOLITHICMIPMAP",
631 "DDOSDCAPS_VALIDSCAPS",
632 "DDOSDCAPS_VALIDOSCAPS",
633])
634
635DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
636 (DWORD, "dwSize"),
637 (DWORD, "dwFlags"),
638 (LONG, "lBrightness"),
639 (LONG, "lContrast"),
640 (LONG, "lHue"),
641 (LONG, "lSaturation"),
642 (LONG, "lSharpness"),
643 (LONG, "lGamma"),
644 (LONG, "lColorEnable"),
645 (DWORD, "dwReserved1"),
646])
647LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
648
José Fonseca08d21782011-05-26 00:58:26 +0100649DirectDrawEnumerateExFlags = Flags(DWORD, [
650 "DDENUM_ATTACHEDSECONDARYDEVICES",
651 "DDENUM_DETACHEDSECONDARYDEVICES",
652 "DDENUM_NONDISPLAYDEVICES",
653])
654
655DirectDrawCreateFlags = FakeEnum(DWORD, [
656 "DDCREATE_HARDWAREONLY",
657 "DDCREATE_EMULATIONONLY",
658])
659
660DirectDrawColorControlFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100661 "DDCOLOR_BRIGHTNESS",
662 "DDCOLOR_CONTRAST",
663 "DDCOLOR_HUE",
664 "DDCOLOR_SATURATION",
665 "DDCOLOR_SHARPNESS",
666 "DDCOLOR_GAMMA",
667 "DDCOLOR_COLORENABLE",
668])
669
José Fonseca08d21782011-05-26 00:58:26 +0100670DirectDrawCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100671 "DDSCAPS_RESERVED1",
672 "DDSCAPS_ALPHA",
673 "DDSCAPS_BACKBUFFER",
674 "DDSCAPS_COMPLEX",
675 "DDSCAPS_FLIP",
676 "DDSCAPS_FRONTBUFFER",
677 "DDSCAPS_OFFSCREENPLAIN",
678 "DDSCAPS_OVERLAY",
679 "DDSCAPS_PALETTE",
680 "DDSCAPS_PRIMARYSURFACE",
681 "DDSCAPS_RESERVED3",
682 "DDSCAPS_PRIMARYSURFACELEFT",
683 "DDSCAPS_SYSTEMMEMORY",
684 "DDSCAPS_TEXTURE",
685 "DDSCAPS_3DDEVICE",
686 "DDSCAPS_VIDEOMEMORY",
687 "DDSCAPS_VISIBLE",
688 "DDSCAPS_WRITEONLY",
689 "DDSCAPS_ZBUFFER",
690 "DDSCAPS_OWNDC",
691 "DDSCAPS_LIVEVIDEO",
692 "DDSCAPS_HWCODEC",
693 "DDSCAPS_MODEX",
694 "DDSCAPS_MIPMAP",
695 "DDSCAPS_RESERVED2",
696 "DDSCAPS_ALLOCONLOAD",
697 "DDSCAPS_VIDEOPORT",
698 "DDSCAPS_LOCALVIDMEM",
699 "DDSCAPS_NONLOCALVIDMEM",
700 "DDSCAPS_STANDARDVGAMODE",
701 "DDSCAPS_OPTIMIZED",
702])
José Fonseca08d21782011-05-26 00:58:26 +0100703
704DirectDrawCapabilityFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100705 "DDSCAPS2_RESERVED4",
706 "DDSCAPS2_HARDWAREDEINTERLACE",
707 "DDSCAPS2_HINTDYNAMIC",
708 "DDSCAPS2_HINTSTATIC",
709 "DDSCAPS2_TEXTUREMANAGE",
710 "DDSCAPS2_RESERVED1",
711 "DDSCAPS2_RESERVED2",
712 "DDSCAPS2_OPAQUE",
713 "DDSCAPS2_HINTANTIALIASING",
714 "DDSCAPS2_CUBEMAP",
715 "DDSCAPS2_CUBEMAP_ALLFACES",
716 "DDSCAPS2_CUBEMAP_POSITIVEX",
717 "DDSCAPS2_CUBEMAP_NEGATIVEX",
718 "DDSCAPS2_CUBEMAP_POSITIVEY",
719 "DDSCAPS2_CUBEMAP_NEGATIVEY",
720 "DDSCAPS2_CUBEMAP_POSITIVEZ",
721 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
722 "DDSCAPS2_MIPMAPSUBLEVEL",
723 "DDSCAPS2_D3DTEXTUREMANAGE",
724 "DDSCAPS2_DONOTPERSIST",
725 "DDSCAPS2_STEREOSURFACELEFT",
726 "DDSCAPS2_VOLUME",
727 "DDSCAPS2_NOTUSERLOCKABLE",
728 "DDSCAPS2_POINTS",
729 "DDSCAPS2_RTPATCHES",
730 "DDSCAPS2_NPATCHES",
731 "DDSCAPS2_RESERVED3",
732 "DDSCAPS2_DISCARDBACKBUFFER",
733 "DDSCAPS2_ENABLEALPHACHANNEL",
734 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
735 "DDSCAPS2_ADDITIONALPRIMARY",
736])
737DDSCAPS3 = Flags(DWORD, [
738 "DDSCAPS3_MULTISAMPLE_MASK",
739 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
740 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
741 "DDSCAPS3_RESERVED1",
742 "DDSCAPS3_RESERVED2",
743 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
744 "DDSCAPS3_AUTOGENMIPMAP",
745 "DDSCAPS3_DMAP",
746 "DDSCAPS3_CREATESHAREDRESOURCE",
747 "DDSCAPS3_READONLYRESOURCE",
748 "DDSCAPS3_OPENSHAREDRESOURCE",
749])
750
José Fonseca08d21782011-05-26 00:58:26 +0100751DirectDrawDriverCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100752 "DDCAPS_3D",
753 "DDCAPS_ALIGNBOUNDARYDEST",
754 "DDCAPS_ALIGNSIZEDEST",
755 "DDCAPS_ALIGNBOUNDARYSRC",
756 "DDCAPS_ALIGNSIZESRC",
757 "DDCAPS_ALIGNSTRIDE",
758 "DDCAPS_BLT",
759 "DDCAPS_BLTQUEUE",
760 "DDCAPS_BLTFOURCC",
761 "DDCAPS_BLTSTRETCH",
762 "DDCAPS_GDI",
763 "DDCAPS_OVERLAY",
764 "DDCAPS_OVERLAYCANTCLIP",
765 "DDCAPS_OVERLAYFOURCC",
766 "DDCAPS_OVERLAYSTRETCH",
767 "DDCAPS_PALETTE",
768 "DDCAPS_PALETTEVSYNC",
769 "DDCAPS_READSCANLINE",
770 "DDCAPS_RESERVED1",
771 "DDCAPS_VBI",
772 "DDCAPS_ZBLTS",
773 "DDCAPS_ZOVERLAYS",
774 "DDCAPS_COLORKEY",
775 "DDCAPS_ALPHA",
776 "DDCAPS_COLORKEYHWASSIST",
777 "DDCAPS_NOHARDWARE",
778 "DDCAPS_BLTCOLORFILL",
779 "DDCAPS_BANKSWITCHED",
780 "DDCAPS_BLTDEPTHFILL",
781 "DDCAPS_CANCLIP",
782 "DDCAPS_CANCLIPSTRETCHED",
783 "DDCAPS_CANBLTSYSMEM",
784])
785
José Fonseca08d21782011-05-26 00:58:26 +0100786DirectDrawDriverCapsFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100787 "DDCAPS2_CERTIFIED",
788 "DDCAPS2_NO2DDURING3DSCENE",
789 "DDCAPS2_VIDEOPORT",
790 "DDCAPS2_AUTOFLIPOVERLAY",
791 "DDCAPS2_CANBOBINTERLEAVED",
792 "DDCAPS2_CANBOBNONINTERLEAVED",
793 "DDCAPS2_COLORCONTROLOVERLAY",
794 "DDCAPS2_COLORCONTROLPRIMARY",
795 "DDCAPS2_CANDROPZ16BIT",
796 "DDCAPS2_NONLOCALVIDMEM",
797 "DDCAPS2_NONLOCALVIDMEMCAPS",
798 "DDCAPS2_NOPAGELOCKREQUIRED",
799 "DDCAPS2_WIDESURFACES",
800 "DDCAPS2_CANFLIPODDEVEN",
801 "DDCAPS2_CANBOBHARDWARE",
802 "DDCAPS2_COPYFOURCC",
803 "DDCAPS2_PRIMARYGAMMA",
804 "DDCAPS2_CANRENDERWINDOWED",
805 "DDCAPS2_CANCALIBRATEGAMMA",
806 "DDCAPS2_FLIPINTERVAL",
807 "DDCAPS2_FLIPNOVSYNC",
808 "DDCAPS2_CANMANAGETEXTURE",
809 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
810 "DDCAPS2_STEREO",
811 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
812 "DDCAPS2_RESERVED1",
813 "DDCAPS2_CANMANAGERESOURCE",
814 "DDCAPS2_DYNAMICTEXTURES",
815 "DDCAPS2_CANAUTOGENMIPMAP",
816 "DDCAPS2_CANSHARERESOURCE",
817])
818
José Fonseca08d21782011-05-26 00:58:26 +0100819DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100820 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
821 "DDFXALPHACAPS_BLTALPHAPIXELS",
822 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
823 "DDFXALPHACAPS_BLTALPHASURFACES",
824 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
825 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
826 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
827 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
828 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
829 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
830])
831
José Fonseca08d21782011-05-26 00:58:26 +0100832DirectDrawFxCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100833 "DDFXCAPS_BLTARITHSTRETCHY",
834 "DDFXCAPS_BLTARITHSTRETCHYN",
835 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
836 "DDFXCAPS_BLTMIRRORUPDOWN",
837 "DDFXCAPS_BLTROTATION",
838 "DDFXCAPS_BLTROTATION90",
839 "DDFXCAPS_BLTSHRINKX",
840 "DDFXCAPS_BLTSHRINKXN",
841 "DDFXCAPS_BLTSHRINKY",
842 "DDFXCAPS_BLTSHRINKYN",
843 "DDFXCAPS_BLTSTRETCHX",
844 "DDFXCAPS_BLTSTRETCHXN",
845 "DDFXCAPS_BLTSTRETCHY",
846 "DDFXCAPS_BLTSTRETCHYN",
847 "DDFXCAPS_OVERLAYARITHSTRETCHY",
848 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
849 "DDFXCAPS_OVERLAYSHRINKX",
850 "DDFXCAPS_OVERLAYSHRINKXN",
851 "DDFXCAPS_OVERLAYSHRINKY",
852 "DDFXCAPS_OVERLAYSHRINKYN",
853 "DDFXCAPS_OVERLAYSTRETCHX",
854 "DDFXCAPS_OVERLAYSTRETCHXN",
855 "DDFXCAPS_OVERLAYSTRETCHY",
856 "DDFXCAPS_OVERLAYSTRETCHYN",
857 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
858 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
859 "DDFXCAPS_OVERLAYDEINTERLACE",
860 "DDFXCAPS_BLTALPHA",
861 "DDFXCAPS_BLTFILTER",
862 "DDFXCAPS_OVERLAYALPHA",
863 "DDFXCAPS_OVERLAYFILTER",
864])
865
José Fonseca08d21782011-05-26 00:58:26 +0100866DirectDrawStereoViewCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100867 "DDSVCAPS_RESERVED1",
868 "DDSVCAPS_RESERVED2",
869 "DDSVCAPS_RESERVED3",
870 "DDSVCAPS_RESERVED4",
871 "DDSVCAPS_STEREOSEQUENTIAL",
872])
873
José Fonseca08d21782011-05-26 00:58:26 +0100874DirectDrawPaletteCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100875 "DDPCAPS_4BIT",
876 "DDPCAPS_8BITENTRIES",
877 "DDPCAPS_8BIT",
878 "DDPCAPS_INITIALIZE",
879 "DDPCAPS_PRIMARYSURFACE",
880 "DDPCAPS_PRIMARYSURFACELEFT",
881 "DDPCAPS_ALLOW256",
882 "DDPCAPS_VSYNC",
883 "DDPCAPS_1BIT",
884 "DDPCAPS_2BIT",
885 "DDPCAPS_ALPHA",
886])
887
José Fonseca08d21782011-05-26 00:58:26 +0100888DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100889 "DDSPD_IUNKNOWNPOINTER",
890 "DDSPD_VOLATILE",
891])
892
José Fonseca08d21782011-05-26 00:58:26 +0100893DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100894 "DDBD_1",
895 "DDBD_2",
896 "DDBD_4",
897 "DDBD_8",
898 "DDBD_16",
899 "DDBD_24",
900 "DDBD_32",
901])
902
José Fonseca08d21782011-05-26 00:58:26 +0100903DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100904 "DDCKEY_COLORSPACE",
905 "DDCKEY_DESTBLT",
906 "DDCKEY_DESTOVERLAY",
907 "DDCKEY_SRCBLT",
908 "DDCKEY_SRCOVERLAY",
909])
910
José Fonseca08d21782011-05-26 00:58:26 +0100911DirectDrawColorKeyCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100912 "DDCKEYCAPS_DESTBLT",
913 "DDCKEYCAPS_DESTBLTCLRSPACE",
914 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
915 "DDCKEYCAPS_DESTBLTYUV",
916 "DDCKEYCAPS_DESTOVERLAY",
917 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
918 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
919 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
920 "DDCKEYCAPS_DESTOVERLAYYUV",
921 "DDCKEYCAPS_SRCBLT",
922 "DDCKEYCAPS_SRCBLTCLRSPACE",
923 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
924 "DDCKEYCAPS_SRCBLTYUV",
925 "DDCKEYCAPS_SRCOVERLAY",
926 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
927 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
928 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
929 "DDCKEYCAPS_SRCOVERLAYYUV",
930 "DDCKEYCAPS_NOCOSTOVERLAY",
931])
932
José Fonseca08d21782011-05-26 00:58:26 +0100933DirectDrawPixelFormatFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100934 "DDPF_ALPHAPIXELS",
935 "DDPF_ALPHA",
936 "DDPF_FOURCC",
937 "DDPF_PALETTEINDEXED4",
938 "DDPF_PALETTEINDEXEDTO8",
939 "DDPF_PALETTEINDEXED8",
940 "DDPF_RGB",
941 "DDPF_COMPRESSED",
942 "DDPF_RGBTOYUV",
943 "DDPF_YUV",
944 "DDPF_ZBUFFER",
945 "DDPF_PALETTEINDEXED1",
946 "DDPF_PALETTEINDEXED2",
947 "DDPF_ZPIXELS",
948 "DDPF_STENCILBUFFER",
949 "DDPF_ALPHAPREMULT",
950 "DDPF_LUMINANCE",
951 "DDPF_BUMPLUMINANCE",
952 "DDPF_BUMPDUDV",
953])
954
José Fonseca08d21782011-05-26 00:58:26 +0100955DirectDrawEnumSurfacesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100956 "DDENUMSURFACES_ALL",
957 "DDENUMSURFACES_MATCH",
958 "DDENUMSURFACES_NOMATCH",
959 "DDENUMSURFACES_CANBECREATED",
960 "DDENUMSURFACES_DOESEXIST",
961])
962
José Fonseca08d21782011-05-26 00:58:26 +0100963DirectDrawSetDisplayModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100964 "DDSDM_STANDARDVGAMODE",
965])
966
José Fonseca08d21782011-05-26 00:58:26 +0100967DirectDrawEnumDisplayModesFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100968 "DDEDM_REFRESHRATES",
969 "DDEDM_STANDARDVGAMODES",
970])
971
José Fonseca08d21782011-05-26 00:58:26 +0100972DirectDrawSetCooperativeLevelFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100973 "DDSCL_FULLSCREEN",
974 "DDSCL_ALLOWREBOOT",
975 "DDSCL_NOWINDOWCHANGES",
976 "DDSCL_NORMAL",
977 "DDSCL_EXCLUSIVE",
978 "DDSCL_ALLOWMODEX",
979 "DDSCL_SETFOCUSWINDOW",
980 "DDSCL_SETDEVICEWINDOW",
981 "DDSCL_CREATEDEVICEWINDOW",
982 "DDSCL_MULTITHREADED",
983 "DDSCL_FPUSETUP",
984 "DDSCL_FPUPRESERVE",
985])
986
José Fonseca08d21782011-05-26 00:58:26 +0100987DirectDrawBltFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100988 "DDBLT_ALPHADEST",
989 "DDBLT_ALPHADESTCONSTOVERRIDE",
990 "DDBLT_ALPHADESTNEG",
991 "DDBLT_ALPHADESTSURFACEOVERRIDE",
992 "DDBLT_ALPHAEDGEBLEND",
993 "DDBLT_ALPHASRC",
994 "DDBLT_ALPHASRCCONSTOVERRIDE",
995 "DDBLT_ALPHASRCNEG",
996 "DDBLT_ALPHASRCSURFACEOVERRIDE",
997 "DDBLT_ASYNC",
998 "DDBLT_COLORFILL",
999 "DDBLT_DDFX",
1000 "DDBLT_DDROPS",
1001 "DDBLT_KEYDEST",
1002 "DDBLT_KEYDESTOVERRIDE",
1003 "DDBLT_KEYSRC",
1004 "DDBLT_KEYSRCOVERRIDE",
1005 "DDBLT_ROP",
1006 "DDBLT_ROTATIONANGLE",
1007 "DDBLT_ZBUFFER",
1008 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
1009 "DDBLT_ZBUFFERDESTOVERRIDE",
1010 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
1011 "DDBLT_ZBUFFERSRCOVERRIDE",
1012 "DDBLT_WAIT",
1013 "DDBLT_DEPTHFILL",
1014 "DDBLT_DONOTWAIT",
1015 "DDBLT_PRESENTATION",
1016 "DDBLT_LAST_PRESENTATION",
1017 "DDBLT_EXTENDED_FLAGS",
1018 "DDBLT_EXTENDED_LINEAR_CONTENT",
1019])
1020
José Fonseca08d21782011-05-26 00:58:26 +01001021DirectDrawBltFastFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001022 "DDBLTFAST_NOCOLORKEY",
1023 "DDBLTFAST_SRCCOLORKEY",
1024 "DDBLTFAST_DESTCOLORKEY",
1025 "DDBLTFAST_WAIT",
1026 "DDBLTFAST_DONOTWAIT",
1027])
1028
José Fonseca08d21782011-05-26 00:58:26 +01001029DirectDrawFlipFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001030 "DDFLIP_WAIT",
1031 "DDFLIP_EVEN",
1032 "DDFLIP_ODD",
1033 "DDFLIP_NOVSYNC",
1034 "DDFLIP_INTERVAL2",
1035 "DDFLIP_INTERVAL3",
1036 "DDFLIP_INTERVAL4",
1037 "DDFLIP_STEREO",
1038 "DDFLIP_DONOTWAIT",
1039])
1040
José Fonseca08d21782011-05-26 00:58:26 +01001041DirectDrawSurfaceOverlayFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001042 "DDOVER_ALPHADEST",
1043 "DDOVER_ALPHADESTCONSTOVERRIDE",
1044 "DDOVER_ALPHADESTNEG",
1045 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1046 "DDOVER_ALPHAEDGEBLEND",
1047 "DDOVER_ALPHASRC",
1048 "DDOVER_ALPHASRCCONSTOVERRIDE",
1049 "DDOVER_ALPHASRCNEG",
1050 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1051 "DDOVER_HIDE",
1052 "DDOVER_KEYDEST",
1053 "DDOVER_KEYDESTOVERRIDE",
1054 "DDOVER_KEYSRC",
1055 "DDOVER_KEYSRCOVERRIDE",
1056 "DDOVER_SHOW",
1057 "DDOVER_ADDDIRTYRECT",
1058 "DDOVER_REFRESHDIRTYRECTS",
1059 "DDOVER_REFRESHALL",
1060 "DDOVER_DDFX",
1061 "DDOVER_AUTOFLIP",
1062 "DDOVER_BOB",
1063 "DDOVER_OVERRIDEBOBWEAVE",
1064 "DDOVER_INTERLEAVED",
1065 "DDOVER_BOBHARDWARE",
1066 "DDOVER_ARGBSCALEFACTORS",
1067 "DDOVER_DEGRADEARGBSCALING",
1068])
1069
1070DDSETSURFACEDESC = Flags(DWORD, [
1071 #"DDSETSURFACEDESC_RECREATEDC",
1072 #"DDSETSURFACEDESC_PRESERVEDC",
1073])
1074
José Fonseca08d21782011-05-26 00:58:26 +01001075DirectDrawSurfaceLockFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001076 "DDLOCK_SURFACEMEMORYPTR",
1077 "DDLOCK_WAIT",
1078 "DDLOCK_EVENT",
1079 "DDLOCK_READONLY",
1080 "DDLOCK_WRITEONLY",
1081 "DDLOCK_NOSYSLOCK",
1082 "DDLOCK_NOOVERWRITE",
1083 "DDLOCK_DISCARDCONTENTS",
1084 "DDLOCK_OKTOSWAP",
1085 "DDLOCK_DONOTWAIT",
1086 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1087 "DDLOCK_NODIRTYUPDATE",
1088])
1089
José Fonseca08d21782011-05-26 00:58:26 +01001090DirectDrawSurfaceBltFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001091 "DDBLTFX_ARITHSTRETCHY",
1092 "DDBLTFX_MIRRORLEFTRIGHT",
1093 "DDBLTFX_MIRRORUPDOWN",
1094 "DDBLTFX_NOTEARING",
1095 "DDBLTFX_ROTATE180",
1096 "DDBLTFX_ROTATE270",
1097 "DDBLTFX_ROTATE90",
1098 "DDBLTFX_ZBUFFERRANGE",
1099 "DDBLTFX_ZBUFFERBASEDEST",
1100])
1101
José Fonseca08d21782011-05-26 00:58:26 +01001102DirectDrawOverlayFxFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001103 "DDOVERFX_ARITHSTRETCHY",
1104 "DDOVERFX_MIRRORLEFTRIGHT",
1105 "DDOVERFX_MIRRORUPDOWN",
1106 "DDOVERFX_DEINTERLACE",
1107])
1108
José Fonseca08d21782011-05-26 00:58:26 +01001109DirectDrawWaitForVerticalBlankFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001110 "DDWAITVB_BLOCKBEGIN",
1111 "DDWAITVB_BLOCKBEGINEVENT",
1112 "DDWAITVB_BLOCKEND",
1113])
1114
José Fonseca08d21782011-05-26 00:58:26 +01001115DirectDrawGetFlipStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001116 "DDGFS_CANFLIP",
1117 "DDGFS_ISFLIPDONE",
1118])
1119
José Fonseca08d21782011-05-26 00:58:26 +01001120DirectDrawGetBltStatusFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001121 "DDGBS_CANBLT",
1122 "DDGBS_ISBLTDONE",
1123])
1124
José Fonseca08d21782011-05-26 00:58:26 +01001125DirectDrawEnumOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001126 "DDENUMOVERLAYZ_BACKTOFRONT",
1127 "DDENUMOVERLAYZ_FRONTTOBACK",
1128])
1129
José Fonseca08d21782011-05-26 00:58:26 +01001130DirectDrawUpdateOverlayZOrderFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001131 "DDOVERZ_SENDTOFRONT",
1132 "DDOVERZ_SENDTOBACK",
1133 "DDOVERZ_MOVEFORWARD",
1134 "DDOVERZ_MOVEBACKWARD",
1135 "DDOVERZ_INSERTINFRONTOF",
1136 "DDOVERZ_INSERTINBACKOF",
1137])
1138
José Fonseca08d21782011-05-26 00:58:26 +01001139DirectDrawSetGammaRampFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001140 "DDSGR_CALIBRATE",
1141])
1142
José Fonseca08d21782011-05-26 00:58:26 +01001143DirectDrawStartModeTestFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001144 "DDSMT_ISTESTREQUIRED",
1145])
1146
José Fonseca08d21782011-05-26 00:58:26 +01001147DirectDrawEvaluateModeFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +01001148 "DDEM_MODEPASSED",
1149 "DDEM_MODEFAILED",
1150])
1151
José Fonseca73841ad2012-04-16 20:47:56 +01001152DDRESULT = MAKE_HRESULT(ok = "DD_OK", false = "DD_FALSE", errors = [
José Fonseca91af9232009-04-13 16:15:28 +01001153 "DDERR_ALREADYINITIALIZED",
1154 "DDERR_CANNOTATTACHSURFACE",
1155 "DDERR_CANNOTDETACHSURFACE",
1156 "DDERR_CURRENTLYNOTAVAIL",
1157 "DDERR_EXCEPTION",
1158 "DDERR_GENERIC",
1159 "DDERR_HEIGHTALIGN",
1160 "DDERR_INCOMPATIBLEPRIMARY",
1161 "DDERR_INVALIDCAPS",
1162 "DDERR_INVALIDCLIPLIST",
1163 "DDERR_INVALIDMODE",
1164 "DDERR_INVALIDOBJECT",
1165 "DDERR_INVALIDPARAMS",
1166 "DDERR_INVALIDPIXELFORMAT",
1167 "DDERR_INVALIDRECT",
1168 "DDERR_LOCKEDSURFACES",
1169 "DDERR_NO3D",
1170 "DDERR_NOALPHAHW",
1171 "DDERR_NOSTEREOHARDWARE",
1172 "DDERR_NOSURFACELEFT",
1173 "DDERR_NOCLIPLIST",
1174 "DDERR_NOCOLORCONVHW",
1175 "DDERR_NOCOOPERATIVELEVELSET",
1176 "DDERR_NOCOLORKEY",
1177 "DDERR_NOCOLORKEYHW",
1178 "DDERR_NODIRECTDRAWSUPPORT",
1179 "DDERR_NOEXCLUSIVEMODE",
1180 "DDERR_NOFLIPHW",
1181 "DDERR_NOGDI",
1182 "DDERR_NOMIRRORHW",
1183 "DDERR_NOTFOUND",
1184 "DDERR_NOOVERLAYHW",
1185 "DDERR_OVERLAPPINGRECTS",
1186 "DDERR_NORASTEROPHW",
1187 "DDERR_NOROTATIONHW",
1188 "DDERR_NOSTRETCHHW",
1189 "DDERR_NOT4BITCOLOR",
1190 "DDERR_NOT4BITCOLORINDEX",
1191 "DDERR_NOT8BITCOLOR",
1192 "DDERR_NOTEXTUREHW",
1193 "DDERR_NOVSYNCHW",
1194 "DDERR_NOZBUFFERHW",
1195 "DDERR_NOZOVERLAYHW",
1196 "DDERR_OUTOFCAPS",
1197 "DDERR_OUTOFMEMORY",
1198 "DDERR_OUTOFVIDEOMEMORY",
1199 "DDERR_OVERLAYCANTCLIP",
1200 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1201 "DDERR_PALETTEBUSY",
1202 "DDERR_COLORKEYNOTSET",
1203 "DDERR_SURFACEALREADYATTACHED",
1204 "DDERR_SURFACEALREADYDEPENDENT",
1205 "DDERR_SURFACEBUSY",
1206 "DDERR_CANTLOCKSURFACE",
1207 "DDERR_SURFACEISOBSCURED",
1208 "DDERR_SURFACELOST",
1209 "DDERR_SURFACENOTATTACHED",
1210 "DDERR_TOOBIGHEIGHT",
1211 "DDERR_TOOBIGSIZE",
1212 "DDERR_TOOBIGWIDTH",
1213 "DDERR_UNSUPPORTED",
1214 "DDERR_UNSUPPORTEDFORMAT",
1215 "DDERR_UNSUPPORTEDMASK",
1216 "DDERR_INVALIDSTREAM",
1217 "DDERR_VERTICALBLANKINPROGRESS",
1218 "DDERR_WASSTILLDRAWING",
1219 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1220 "DDERR_XALIGN",
1221 "DDERR_INVALIDDIRECTDRAWGUID",
1222 "DDERR_DIRECTDRAWALREADYCREATED",
1223 "DDERR_NODIRECTDRAWHW",
1224 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1225 "DDERR_NOEMULATION",
1226 "DDERR_REGIONTOOSMALL",
1227 "DDERR_CLIPPERISUSINGHWND",
1228 "DDERR_NOCLIPPERATTACHED",
1229 "DDERR_NOHWND",
1230 "DDERR_HWNDSUBCLASSED",
1231 "DDERR_HWNDALREADYSET",
1232 "DDERR_NOPALETTEATTACHED",
1233 "DDERR_NOPALETTEHW",
1234 "DDERR_BLTFASTCANTCLIP",
1235 "DDERR_NOBLTHW",
1236 "DDERR_NODDROPSHW",
1237 "DDERR_OVERLAYNOTVISIBLE",
1238 "DDERR_NOOVERLAYDEST",
1239 "DDERR_INVALIDPOSITION",
1240 "DDERR_NOTAOVERLAYSURFACE",
1241 "DDERR_EXCLUSIVEMODEALREADYSET",
1242 "DDERR_NOTFLIPPABLE",
1243 "DDERR_CANTDUPLICATE",
1244 "DDERR_NOTLOCKED",
1245 "DDERR_CANTCREATEDC",
1246 "DDERR_NODC",
1247 "DDERR_WRONGMODE",
1248 "DDERR_IMPLICITLYCREATED",
1249 "DDERR_NOTPALETTIZED",
1250 "DDERR_UNSUPPORTEDMODE",
1251 "DDERR_NOMIPMAPHW",
1252 "DDERR_INVALIDSURFACETYPE",
1253 "DDERR_NOOPTIMIZEHW",
1254 "DDERR_NOTLOADED",
1255 "DDERR_NOFOCUSWINDOW",
1256 "DDERR_NOTONMIPMAPSUBLEVEL",
1257 "DDERR_DCALREADYCREATED",
1258 "DDERR_NONONLOCALVIDMEM",
1259 "DDERR_CANTPAGELOCK",
1260 "DDERR_CANTPAGEUNLOCK",
1261 "DDERR_NOTPAGELOCKED",
1262 "DDERR_MOREDATA",
1263 "DDERR_EXPIRED",
1264 "DDERR_TESTFINISHED",
1265 "DDERR_NEWMODE",
1266 "DDERR_D3DNOTINITIALIZED",
1267 "DDERR_VIDEONOTACTIVE",
1268 "DDERR_NOMONITORINFORMATION",
1269 "DDERR_NODRIVERSUPPORT",
1270 "DDERR_DEVICEDOESNTOWNSURFACE",
1271 "DDERR_NOTINITIALIZED",
1272])
1273
José Fonseca31524192010-11-22 21:05:26 +00001274LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1275LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1276LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1277LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1278LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
José Fonseca91af9232009-04-13 16:15:28 +01001279
1280IDirectDraw.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001281 StdMethod(DDRESULT, "Compact", []),
1282 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1283 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1284 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1285 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001286 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1287 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001288 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001289 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1290 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1291 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001292 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001293 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1294 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1295 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001296 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1297 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1298 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1299 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1300 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca91af9232009-04-13 16:15:28 +01001301]
1302
1303IDirectDraw2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001304 StdMethod(DDRESULT, "Compact", []),
1305 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1306 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1307 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1308 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001309 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")], sideeffects=False),
1310 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001311 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001312 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1313 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
1314 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001315 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001316 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1317 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1318 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001319 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1320 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1321 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1322 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1323 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001324 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001325]
1326
1327IDirectDraw4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001328 StdMethod(DDRESULT, "Compact", []),
1329 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1330 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1331 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1332 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001333 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1334 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001335 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001336 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1337 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1338 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001339 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001340 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1341 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1342 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001343 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1344 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1345 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1346 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1347 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001348 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001349 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1350 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1351 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001352 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001353]
1354
1355IDirectDraw7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001356 StdMethod(DDRESULT, "Compact", []),
1357 StdMethod(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1358 StdMethod(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1359 StdMethod(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
1360 StdMethod(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001361 StdMethod(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")], sideeffects=False),
1362 StdMethod(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001363 StdMethod(DDRESULT, "FlipToGDISurface", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001364 StdMethod(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")], sideeffects=False),
1365 StdMethod(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
1366 StdMethod(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001367 StdMethod(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001368 StdMethod(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")], sideeffects=False),
1369 StdMethod(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")], sideeffects=False),
1370 StdMethod(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001371 StdMethod(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1372 StdMethod(DDRESULT, "RestoreDisplayMode", []),
1373 StdMethod(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1374 StdMethod(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1375 StdMethod(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001376 StdMethod(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001377 StdMethod(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1378 StdMethod(DDRESULT, "RestoreAllSurfaces", []),
1379 StdMethod(DDRESULT, "TestCooperativeLevel", []),
José Fonseca50c2a142015-01-15 13:10:46 +00001380 StdMethod(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001381 StdMethod(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1382 StdMethod(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
José Fonseca91af9232009-04-13 16:15:28 +01001383]
1384
1385IDirectDrawPalette.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001386 StdMethod(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")], sideeffects=False),
1387 StdMethod(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(LPPALETTEENTRY, "lpEntries")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001388 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
1389 StdMethod(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (LPPALETTEENTRY, "lpEntries")]),
José Fonseca91af9232009-04-13 16:15:28 +01001390]
1391
1392IDirectDrawClipper.methods += [
José Fonseca50c2a142015-01-15 13:10:46 +00001393 StdMethod(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")], sideeffects=False),
1394 StdMethod(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001395 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1396 StdMethod(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1397 StdMethod(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1398 StdMethod(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
José Fonseca91af9232009-04-13 16:15:28 +01001399]
1400
1401
1402IDirectDrawSurface.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001403 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1404 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1405 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1406 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1407 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1408 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001409 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1410 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001411 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1412 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1413 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001414 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001415 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001416 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1417 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1418 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1419 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001420 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001421 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1422 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001423 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1424 StdMethod(DDRESULT, "IsLost", []),
1425 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1426 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1427 StdMethod(DDRESULT, "Restore", []),
1428 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1429 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1430 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1431 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1432 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1433 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1434 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1435 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
José Fonseca91af9232009-04-13 16:15:28 +01001436]
1437
1438IDirectDrawSurface2.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001439 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1440 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1441 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1442 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1443 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1444 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001445 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1446 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001447 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1448 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001449 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1450 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001451 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001452 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1453 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1454 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1455 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001456 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001457 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1458 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001459 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1460 StdMethod(DDRESULT, "IsLost", []),
1461 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1462 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1463 StdMethod(DDRESULT, "Restore", []),
1464 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1465 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1466 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1467 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1468 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1469 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1470 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1471 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
1472 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1473 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1474 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001475]
1476
1477IDirectDrawSurface3.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001478 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1479 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1480 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1481 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1482 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1483 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001484 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")], sideeffects=False),
1485 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001486 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1487 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001488 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1489 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001490 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001491 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1492 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1493 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1494 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001495 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001496 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1497 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001498 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1499 StdMethod(DDRESULT, "IsLost", []),
1500 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1501 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1502 StdMethod(DDRESULT, "Restore", []),
1503 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1504 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1505 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1506 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1507 StdMethod(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1508 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1509 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1510 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
1511 StdMethod(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
1512 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1513 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1514 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001515]
1516
1517IDirectDrawSurface4.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001518 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1519 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1520 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1521 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1522 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1523 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001524 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")], sideeffects=False),
1525 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001526 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1527 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001528 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")], sideeffects=False),
1529 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001530 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001531 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")], sideeffects=False),
1532 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")], sideeffects=False),
1533 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")], sideeffects=False),
1534 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001535 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001536 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")], sideeffects=False),
1537 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001538 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1539 StdMethod(DDRESULT, "IsLost", []),
1540 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1541 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1542 StdMethod(DDRESULT, "Restore", []),
1543 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1544 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1545 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1546 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1547 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1548 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1549 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1550 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
1551 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1552 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1553 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1554 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001555 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1556 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1557 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001558 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1559 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
José Fonseca91af9232009-04-13 16:15:28 +01001560]
1561
1562IDirectDrawSurface7.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001563 StdMethod(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1564 StdMethod(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1565 StdMethod(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1566 StdMethod(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1567 StdMethod(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1568 StdMethod(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001569 StdMethod(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")], sideeffects=False),
1570 StdMethod(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001571 StdMethod(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1572 StdMethod(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1573 StdMethod(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1574 StdMethod(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1575 StdMethod(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1576 StdMethod(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1577 StdMethod(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1578 StdMethod(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001579 StdMethod(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001580 StdMethod(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1581 StdMethod(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1582 StdMethod(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1583 StdMethod(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1584 StdMethod(DDRESULT, "IsLost", []),
1585 StdMethod(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1586 StdMethod(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1587 StdMethod(DDRESULT, "Restore", []),
1588 StdMethod(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1589 StdMethod(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1590 StdMethod(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1591 StdMethod(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1592 StdMethod(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1593 StdMethod(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1594 StdMethod(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1595 StdMethod(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
1596 StdMethod(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1597 StdMethod(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1598 StdMethod(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1599 StdMethod(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001600 StdMethod(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")], sideeffects=False),
1601 StdMethod(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), InOut(LPDWORD, "lpcbBufferSize")], sideeffects=False),
1602 StdMethod(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")], sideeffects=False),
1603 StdMethod(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001604 StdMethod(DDRESULT, "ChangeUniquenessValue", []),
1605 StdMethod(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001606 StdMethod(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")], sideeffects=False),
José Fonseca43aa19f2012-11-10 09:29:38 +00001607 StdMethod(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
José Fonseca50c2a142015-01-15 13:10:46 +00001608 StdMethod(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")], sideeffects=False),
José Fonseca91af9232009-04-13 16:15:28 +01001609]
1610
1611IDirectDrawColorControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001612 StdMethod(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1613 StdMethod(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
José Fonseca91af9232009-04-13 16:15:28 +01001614]
1615
1616IDirectDrawGammaControl.methods += [
José Fonseca43aa19f2012-11-10 09:29:38 +00001617 StdMethod(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
1618 StdMethod(DDRESULT, "SetGammaRamp", [(DirectDrawSetGammaRampFlags, "dwFlags"), (LPDDGAMMARAMP, "lpRampData")]),
José Fonseca91af9232009-04-13 16:15:28 +01001619]
1620
José Fonseca31524192010-11-22 21:05:26 +00001621LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1622LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1623LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1624LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
José Fonseca91af9232009-04-13 16:15:28 +01001625
1626DDENUM = Flags(DWORD, [
1627 "DDENUM_ATTACHEDSECONDARYDEVICES",
1628 "DDENUM_DETACHEDSECONDARYDEVICES",
1629 "DDENUM_NONDISPLAYDEVICES",
1630])
1631
1632DDCREATE = Flags(DWORD, [
1633 "DDCREATE_HARDWAREONLY",
1634 "DDCREATE_EMULATIONONLY",
1635])
1636
José Fonseca81301932012-11-11 00:10:20 +00001637ddraw = Module("ddraw")
José Fonseca54f304a2012-01-14 19:33:08 +00001638ddraw.addFunctions([
José Fonseca50c2a142015-01-15 13:10:46 +00001639 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1640 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")], sideeffects=False),
1641 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
1642 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")], sideeffects=False),
José Fonseca9782b292012-04-14 22:02:42 +01001643 StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecabcb26b22012-04-15 08:42:25 +01001644 StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(ObjPointer(Void)), "lplpDD"), (REFIID, "iid"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca9782b292012-04-14 22:02:42 +01001645 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
José Fonsecaa6f94092012-11-11 00:22:33 +00001646 StdFunction(Void, "AcquireDDThreadLock", [], internal=True),
1647 StdFunction(Void, "ReleaseDDThreadLock", [], internal=True),
José Fonseca50c2a142015-01-15 13:10:46 +00001648 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")], internal=True),
1649 StdFunction(HRESULT, "DllCanUnloadNow", [], internal=True),
1650 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")], sideeffects=False),
José Fonsecabb8760b2011-05-25 23:21:18 +01001651
1652 # XXX
José Fonseca50c2a142015-01-15 13:10:46 +00001653 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int], internal=True),
1654 #StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int], internal=True),
1655 StdFunction(HRESULT, "DDInternalLock", [Int, Int], internal=True),
1656 StdFunction(HRESULT, "DDInternalUnlock", [Int], internal=True),
1657 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int], internal=True),
1658 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int], internal=True),
1659 StdFunction(HANDLE, "GetOLEThunkData", [Int], internal=True),
1660 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int], internal=True),
1661 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int], internal=True),
José Fonsecabb8760b2011-05-25 23:21:18 +01001662
1663 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001664])
José Fonseca91af9232009-04-13 16:15:28 +01001665