blob: aed2b0d958198cb7c0f0e7c436a418dc0a17a5b4 [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"),
458 (WORD, "MultiSampleCaps.wFlipMSTypes"),
459 (WORD, "MultiSampleCaps.wBltMSTypes"),
460 (DWORD, "dwBBitMask"),
461 (DWORD, "dwVBitMask"),
462 (DWORD, "dwStencilBitMask"),
463 (DWORD, "dwBumpLuminanceBitMask"),
464 (DWORD, "dwRGBAlphaBitMask"),
465 (DWORD, "dwYUVAlphaBitMask"),
466 (DWORD, "dwLuminanceAlphaBitMask"),
467 (DWORD, "dwRGBZBitMask"),
468 (DWORD, "dwYUVZBitMask"),
469])
470LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
471
472DDOVERLAYFX = Struct("DDOVERLAYFX", [
473 (DWORD, "dwSize"),
474 (DWORD, "dwAlphaEdgeBlendBitDepth"),
475 (DWORD, "dwAlphaEdgeBlend"),
476 (DWORD, "dwReserved"),
477 (DWORD, "dwAlphaDestConstBitDepth"),
478 (DWORD, "dwAlphaDestConst"),
479 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
480 (DWORD, "dwAlphaSrcConstBitDepth"),
481 (DWORD, "dwAlphaSrcConst"),
482 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
483 (DDCOLORKEY, "dckDestColorkey"),
484 (DDCOLORKEY, "dckSrcColorkey"),
485 (DWORD, "dwDDFX"),
486 (DWORD, "dwFlags"),
487])
488LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
489
490DDBLTBATCH = Struct("DDBLTBATCH", [
491 (LPRECT, "lprDest"),
492 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
493 (LPRECT, "lprSrc"),
494 (DWORD, "dwFlags"),
495 (LPDDBLTFX, "lpDDBltFx"),
496])
497LPDDBLTBATCH = Pointer(DDBLTBATCH)
498
499DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonseca44756652011-10-15 10:26:30 +0100500 (Array(WORD, 256), "red"),
501 (Array(WORD, 256), "green"),
502 (Array(WORD, 256), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100503])
504LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
505
506DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000507 (CString, "szDriver"),
508 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100509 (LARGE_INTEGER, "liDriverVersion"),
510 (DWORD, "dwVendorId"),
511 (DWORD, "dwDeviceId"),
512 (DWORD, "dwSubSysId"),
513 (DWORD, "dwRevision"),
514 (GUID, "guidDeviceIdentifier"),
515])
516LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
517
518DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100519 (CString, "szDriver"),
520 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100521 (LARGE_INTEGER, "liDriverVersion"),
522 (DWORD, "dwVendorId"),
523 (DWORD, "dwDeviceId"),
524 (DWORD, "dwSubSysId"),
525 (DWORD, "dwRevision"),
526 (GUID, "guidDeviceIdentifier"),
527 (DWORD, "dwWHQLLevel"),
528])
529LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
530
José Fonseca08d21782011-05-26 00:58:26 +0100531LPCLIPPERCALLBACK = FunctionPointer(DWORD, "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
532LPSURFACESTREAMINGCALLBACK = FunctionPointer(DWORD, "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100533
534DDSURFACEDESC = Struct("DDSURFACEDESC", [
535 (DWORD, "dwSize"),
536 (DWORD, "dwFlags"),
537 (DWORD, "dwHeight"),
538 (DWORD, "dwWidth"),
539 (LONG, "lPitch"),
540 (DWORD, "dwLinearSize"),
541 (DWORD, "dwBackBufferCount"),
542 (DWORD, "dwMipMapCount"),
543 (DWORD, "dwZBufferBitDepth"),
544 (DWORD, "dwRefreshRate"),
545 (DWORD, "dwAlphaBitDepth"),
546 (DWORD, "dwReserved"),
547 (LPVOID, "lpSurface"),
548 (DDCOLORKEY, "ddckCKDestOverlay"),
549 (DDCOLORKEY, "ddckCKDestBlt"),
550 (DDCOLORKEY, "ddckCKSrcOverlay"),
551 (DDCOLORKEY, "ddckCKSrcBlt"),
552 (DDPIXELFORMAT, "ddpfPixelFormat"),
553 (DDSCAPS, "ddsCaps"),
554])
555LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
556
557DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
558 (DWORD, "dwSize"),
559 (DWORD, "dwFlags"),
560 (DWORD, "dwHeight"),
561 (DWORD, "dwWidth"),
562 (LONG, "lPitch"),
563 (DWORD, "dwLinearSize"),
564 (DWORD, "dwBackBufferCount"),
565 (DWORD, "dwDepth"),
566 (DWORD, "dwMipMapCount"),
567 (DWORD, "dwRefreshRate"),
568 (DWORD, "dwSrcVBHandle"),
569 (DWORD, "dwAlphaBitDepth"),
570 (DWORD, "dwReserved"),
571 (LPVOID, "lpSurface"),
572 (DDCOLORKEY, "ddckCKDestOverlay"),
573 (DWORD, "dwEmptyFaceColor"),
574 (DDCOLORKEY, "ddckCKDestBlt"),
575 (DDCOLORKEY, "ddckCKSrcOverlay"),
576 (DDCOLORKEY, "ddckCKSrcBlt"),
577 (DDPIXELFORMAT, "ddpfPixelFormat"),
578 (DWORD, "dwFVF"),
579 (DDSCAPS2, "ddsCaps"),
580 (DWORD, "dwTextureStage"),
581])
582LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
583
José Fonseca08d21782011-05-26 00:58:26 +0100584DirectDrawSurfaceDescFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100585 "DDSD_CAPS",
586 "DDSD_HEIGHT",
587 "DDSD_WIDTH",
588 "DDSD_PITCH",
589 "DDSD_BACKBUFFERCOUNT",
590 "DDSD_ZBUFFERBITDEPTH",
591 "DDSD_ALPHABITDEPTH",
592 "DDSD_LPSURFACE",
593 "DDSD_PIXELFORMAT",
594 "DDSD_CKDESTOVERLAY",
595 "DDSD_CKDESTBLT",
596 "DDSD_CKSRCOVERLAY",
597 "DDSD_CKSRCBLT",
598 "DDSD_MIPMAPCOUNT",
599 "DDSD_REFRESHRATE",
600 "DDSD_LINEARSIZE",
601 "DDSD_TEXTURESTAGE",
602 "DDSD_FVF",
603 "DDSD_SRCVBHANDLE",
604 "DDSD_DEPTH",
605 "DDSD_ALL",
606])
607
608DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
609 (DWORD, "dwSize"),
610 (DWORD, "dwFlags"),
611 (DDSCAPS2, "ddSCaps"),
612 (DDOSCAPS, "ddOSCaps"),
613 (GUID, "guid"),
614 (DWORD, "dwCompressionRatio"),
615])
616
617DDSD = Flags(DWORD, [
618 "DDOSD_GUID",
619 "DDOSD_COMPRESSION_RATIO",
620 "DDOSD_SCAPS",
621 "DDOSD_OSCAPS",
622 "DDOSD_ALL",
623])
624
625DDOSDCAPS = Flags(DWORD, [
626 "DDOSDCAPS_OPTCOMPRESSED",
627 "DDOSDCAPS_OPTREORDERED",
628 "DDOSDCAPS_MONOLITHICMIPMAP",
629 "DDOSDCAPS_VALIDSCAPS",
630 "DDOSDCAPS_VALIDOSCAPS",
631])
632
633DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
634 (DWORD, "dwSize"),
635 (DWORD, "dwFlags"),
636 (LONG, "lBrightness"),
637 (LONG, "lContrast"),
638 (LONG, "lHue"),
639 (LONG, "lSaturation"),
640 (LONG, "lSharpness"),
641 (LONG, "lGamma"),
642 (LONG, "lColorEnable"),
643 (DWORD, "dwReserved1"),
644])
645LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
646
José Fonseca08d21782011-05-26 00:58:26 +0100647DirectDrawEnumerateExFlags = Flags(DWORD, [
648 "DDENUM_ATTACHEDSECONDARYDEVICES",
649 "DDENUM_DETACHEDSECONDARYDEVICES",
650 "DDENUM_NONDISPLAYDEVICES",
651])
652
653DirectDrawCreateFlags = FakeEnum(DWORD, [
654 "DDCREATE_HARDWAREONLY",
655 "DDCREATE_EMULATIONONLY",
656])
657
658DirectDrawColorControlFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100659 "DDCOLOR_BRIGHTNESS",
660 "DDCOLOR_CONTRAST",
661 "DDCOLOR_HUE",
662 "DDCOLOR_SATURATION",
663 "DDCOLOR_SHARPNESS",
664 "DDCOLOR_GAMMA",
665 "DDCOLOR_COLORENABLE",
666])
667
José Fonseca08d21782011-05-26 00:58:26 +0100668DirectDrawCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100669 "DDSCAPS_RESERVED1",
670 "DDSCAPS_ALPHA",
671 "DDSCAPS_BACKBUFFER",
672 "DDSCAPS_COMPLEX",
673 "DDSCAPS_FLIP",
674 "DDSCAPS_FRONTBUFFER",
675 "DDSCAPS_OFFSCREENPLAIN",
676 "DDSCAPS_OVERLAY",
677 "DDSCAPS_PALETTE",
678 "DDSCAPS_PRIMARYSURFACE",
679 "DDSCAPS_RESERVED3",
680 "DDSCAPS_PRIMARYSURFACELEFT",
681 "DDSCAPS_SYSTEMMEMORY",
682 "DDSCAPS_TEXTURE",
683 "DDSCAPS_3DDEVICE",
684 "DDSCAPS_VIDEOMEMORY",
685 "DDSCAPS_VISIBLE",
686 "DDSCAPS_WRITEONLY",
687 "DDSCAPS_ZBUFFER",
688 "DDSCAPS_OWNDC",
689 "DDSCAPS_LIVEVIDEO",
690 "DDSCAPS_HWCODEC",
691 "DDSCAPS_MODEX",
692 "DDSCAPS_MIPMAP",
693 "DDSCAPS_RESERVED2",
694 "DDSCAPS_ALLOCONLOAD",
695 "DDSCAPS_VIDEOPORT",
696 "DDSCAPS_LOCALVIDMEM",
697 "DDSCAPS_NONLOCALVIDMEM",
698 "DDSCAPS_STANDARDVGAMODE",
699 "DDSCAPS_OPTIMIZED",
700])
José Fonseca08d21782011-05-26 00:58:26 +0100701
702DirectDrawCapabilityFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100703 "DDSCAPS2_RESERVED4",
704 "DDSCAPS2_HARDWAREDEINTERLACE",
705 "DDSCAPS2_HINTDYNAMIC",
706 "DDSCAPS2_HINTSTATIC",
707 "DDSCAPS2_TEXTUREMANAGE",
708 "DDSCAPS2_RESERVED1",
709 "DDSCAPS2_RESERVED2",
710 "DDSCAPS2_OPAQUE",
711 "DDSCAPS2_HINTANTIALIASING",
712 "DDSCAPS2_CUBEMAP",
713 "DDSCAPS2_CUBEMAP_ALLFACES",
714 "DDSCAPS2_CUBEMAP_POSITIVEX",
715 "DDSCAPS2_CUBEMAP_NEGATIVEX",
716 "DDSCAPS2_CUBEMAP_POSITIVEY",
717 "DDSCAPS2_CUBEMAP_NEGATIVEY",
718 "DDSCAPS2_CUBEMAP_POSITIVEZ",
719 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
720 "DDSCAPS2_MIPMAPSUBLEVEL",
721 "DDSCAPS2_D3DTEXTUREMANAGE",
722 "DDSCAPS2_DONOTPERSIST",
723 "DDSCAPS2_STEREOSURFACELEFT",
724 "DDSCAPS2_VOLUME",
725 "DDSCAPS2_NOTUSERLOCKABLE",
726 "DDSCAPS2_POINTS",
727 "DDSCAPS2_RTPATCHES",
728 "DDSCAPS2_NPATCHES",
729 "DDSCAPS2_RESERVED3",
730 "DDSCAPS2_DISCARDBACKBUFFER",
731 "DDSCAPS2_ENABLEALPHACHANNEL",
732 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
733 "DDSCAPS2_ADDITIONALPRIMARY",
734])
735DDSCAPS3 = Flags(DWORD, [
736 "DDSCAPS3_MULTISAMPLE_MASK",
737 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
738 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
739 "DDSCAPS3_RESERVED1",
740 "DDSCAPS3_RESERVED2",
741 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
742 "DDSCAPS3_AUTOGENMIPMAP",
743 "DDSCAPS3_DMAP",
744 "DDSCAPS3_CREATESHAREDRESOURCE",
745 "DDSCAPS3_READONLYRESOURCE",
746 "DDSCAPS3_OPENSHAREDRESOURCE",
747])
748
José Fonseca08d21782011-05-26 00:58:26 +0100749DirectDrawDriverCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100750 "DDCAPS_3D",
751 "DDCAPS_ALIGNBOUNDARYDEST",
752 "DDCAPS_ALIGNSIZEDEST",
753 "DDCAPS_ALIGNBOUNDARYSRC",
754 "DDCAPS_ALIGNSIZESRC",
755 "DDCAPS_ALIGNSTRIDE",
756 "DDCAPS_BLT",
757 "DDCAPS_BLTQUEUE",
758 "DDCAPS_BLTFOURCC",
759 "DDCAPS_BLTSTRETCH",
760 "DDCAPS_GDI",
761 "DDCAPS_OVERLAY",
762 "DDCAPS_OVERLAYCANTCLIP",
763 "DDCAPS_OVERLAYFOURCC",
764 "DDCAPS_OVERLAYSTRETCH",
765 "DDCAPS_PALETTE",
766 "DDCAPS_PALETTEVSYNC",
767 "DDCAPS_READSCANLINE",
768 "DDCAPS_RESERVED1",
769 "DDCAPS_VBI",
770 "DDCAPS_ZBLTS",
771 "DDCAPS_ZOVERLAYS",
772 "DDCAPS_COLORKEY",
773 "DDCAPS_ALPHA",
774 "DDCAPS_COLORKEYHWASSIST",
775 "DDCAPS_NOHARDWARE",
776 "DDCAPS_BLTCOLORFILL",
777 "DDCAPS_BANKSWITCHED",
778 "DDCAPS_BLTDEPTHFILL",
779 "DDCAPS_CANCLIP",
780 "DDCAPS_CANCLIPSTRETCHED",
781 "DDCAPS_CANBLTSYSMEM",
782])
783
José Fonseca08d21782011-05-26 00:58:26 +0100784DirectDrawDriverCapsFlags2 = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100785 "DDCAPS2_CERTIFIED",
786 "DDCAPS2_NO2DDURING3DSCENE",
787 "DDCAPS2_VIDEOPORT",
788 "DDCAPS2_AUTOFLIPOVERLAY",
789 "DDCAPS2_CANBOBINTERLEAVED",
790 "DDCAPS2_CANBOBNONINTERLEAVED",
791 "DDCAPS2_COLORCONTROLOVERLAY",
792 "DDCAPS2_COLORCONTROLPRIMARY",
793 "DDCAPS2_CANDROPZ16BIT",
794 "DDCAPS2_NONLOCALVIDMEM",
795 "DDCAPS2_NONLOCALVIDMEMCAPS",
796 "DDCAPS2_NOPAGELOCKREQUIRED",
797 "DDCAPS2_WIDESURFACES",
798 "DDCAPS2_CANFLIPODDEVEN",
799 "DDCAPS2_CANBOBHARDWARE",
800 "DDCAPS2_COPYFOURCC",
801 "DDCAPS2_PRIMARYGAMMA",
802 "DDCAPS2_CANRENDERWINDOWED",
803 "DDCAPS2_CANCALIBRATEGAMMA",
804 "DDCAPS2_FLIPINTERVAL",
805 "DDCAPS2_FLIPNOVSYNC",
806 "DDCAPS2_CANMANAGETEXTURE",
807 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
808 "DDCAPS2_STEREO",
809 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
810 "DDCAPS2_RESERVED1",
811 "DDCAPS2_CANMANAGERESOURCE",
812 "DDCAPS2_DYNAMICTEXTURES",
813 "DDCAPS2_CANAUTOGENMIPMAP",
814 "DDCAPS2_CANSHARERESOURCE",
815])
816
José Fonseca08d21782011-05-26 00:58:26 +0100817DirectDrawFxAlphaCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100818 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
819 "DDFXALPHACAPS_BLTALPHAPIXELS",
820 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
821 "DDFXALPHACAPS_BLTALPHASURFACES",
822 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
823 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
824 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
825 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
826 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
827 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
828])
829
José Fonseca08d21782011-05-26 00:58:26 +0100830DirectDrawFxCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100831 "DDFXCAPS_BLTARITHSTRETCHY",
832 "DDFXCAPS_BLTARITHSTRETCHYN",
833 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
834 "DDFXCAPS_BLTMIRRORUPDOWN",
835 "DDFXCAPS_BLTROTATION",
836 "DDFXCAPS_BLTROTATION90",
837 "DDFXCAPS_BLTSHRINKX",
838 "DDFXCAPS_BLTSHRINKXN",
839 "DDFXCAPS_BLTSHRINKY",
840 "DDFXCAPS_BLTSHRINKYN",
841 "DDFXCAPS_BLTSTRETCHX",
842 "DDFXCAPS_BLTSTRETCHXN",
843 "DDFXCAPS_BLTSTRETCHY",
844 "DDFXCAPS_BLTSTRETCHYN",
845 "DDFXCAPS_OVERLAYARITHSTRETCHY",
846 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
847 "DDFXCAPS_OVERLAYSHRINKX",
848 "DDFXCAPS_OVERLAYSHRINKXN",
849 "DDFXCAPS_OVERLAYSHRINKY",
850 "DDFXCAPS_OVERLAYSHRINKYN",
851 "DDFXCAPS_OVERLAYSTRETCHX",
852 "DDFXCAPS_OVERLAYSTRETCHXN",
853 "DDFXCAPS_OVERLAYSTRETCHY",
854 "DDFXCAPS_OVERLAYSTRETCHYN",
855 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
856 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
857 "DDFXCAPS_OVERLAYDEINTERLACE",
858 "DDFXCAPS_BLTALPHA",
859 "DDFXCAPS_BLTFILTER",
860 "DDFXCAPS_OVERLAYALPHA",
861 "DDFXCAPS_OVERLAYFILTER",
862])
863
José Fonseca08d21782011-05-26 00:58:26 +0100864DirectDrawStereoViewCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100865 "DDSVCAPS_RESERVED1",
866 "DDSVCAPS_RESERVED2",
867 "DDSVCAPS_RESERVED3",
868 "DDSVCAPS_RESERVED4",
869 "DDSVCAPS_STEREOSEQUENTIAL",
870])
871
José Fonseca08d21782011-05-26 00:58:26 +0100872DirectDrawPaletteCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100873 "DDPCAPS_4BIT",
874 "DDPCAPS_8BITENTRIES",
875 "DDPCAPS_8BIT",
876 "DDPCAPS_INITIALIZE",
877 "DDPCAPS_PRIMARYSURFACE",
878 "DDPCAPS_PRIMARYSURFACELEFT",
879 "DDPCAPS_ALLOW256",
880 "DDPCAPS_VSYNC",
881 "DDPCAPS_1BIT",
882 "DDPCAPS_2BIT",
883 "DDPCAPS_ALPHA",
884])
885
José Fonseca08d21782011-05-26 00:58:26 +0100886DirectDrawSurfaceSetPrivateDataConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100887 "DDSPD_IUNKNOWNPOINTER",
888 "DDSPD_VOLATILE",
889])
890
José Fonseca08d21782011-05-26 00:58:26 +0100891DirectDrawSurfaceSetPaletteConstants = FakeEnum(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100892 "DDBD_1",
893 "DDBD_2",
894 "DDBD_4",
895 "DDBD_8",
896 "DDBD_16",
897 "DDBD_24",
898 "DDBD_32",
899])
900
José Fonseca08d21782011-05-26 00:58:26 +0100901DirectDrawSurfaceSetGetColorKeyFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100902 "DDCKEY_COLORSPACE",
903 "DDCKEY_DESTBLT",
904 "DDCKEY_DESTOVERLAY",
905 "DDCKEY_SRCBLT",
906 "DDCKEY_SRCOVERLAY",
907])
908
José Fonseca08d21782011-05-26 00:58:26 +0100909DirectDrawColorKeyCapsFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100910 "DDCKEYCAPS_DESTBLT",
911 "DDCKEYCAPS_DESTBLTCLRSPACE",
912 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
913 "DDCKEYCAPS_DESTBLTYUV",
914 "DDCKEYCAPS_DESTOVERLAY",
915 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
916 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
917 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
918 "DDCKEYCAPS_DESTOVERLAYYUV",
919 "DDCKEYCAPS_SRCBLT",
920 "DDCKEYCAPS_SRCBLTCLRSPACE",
921 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
922 "DDCKEYCAPS_SRCBLTYUV",
923 "DDCKEYCAPS_SRCOVERLAY",
924 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
925 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
926 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
927 "DDCKEYCAPS_SRCOVERLAYYUV",
928 "DDCKEYCAPS_NOCOSTOVERLAY",
929])
930
José Fonseca08d21782011-05-26 00:58:26 +0100931DirectDrawPixelFormatFlags = Flags(DWORD, [
José Fonseca91af9232009-04-13 16:15:28 +0100932 "DDPF_ALPHAPIXELS",
933 "DDPF_ALPHA",
934 "DDPF_FOURCC",
935 "DDPF_PALETTEINDEXED4",
936 "DDPF_PALETTEINDEXEDTO8",
937 "DDPF_PALETTEINDEXED8",
938 "DDPF_RGB",
939 "DDPF_COMPRESSED",
940 "DDPF_RGBTOYUV",
941 "DDPF_YUV",
942 "DDPF_ZBUFFER",
943 "DDPF_PALETTEINDEXED1",
944 "DDPF_PALETTEINDEXED2",
945 "DDPF_ZPIXELS",
946 "DDPF_STENCILBUFFER",
947 "DDPF_ALPHAPREMULT",
948 "DDPF_LUMINANCE",
949 "DDPF_BUMPLUMINANCE",
950 "DDPF_BUMPDUDV",
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é Fonseca08d21782011-05-26 00:58:26 +01001279 Method(DDRESULT, "Compact", []),
José Fonseca9782b292012-04-14 22:02:42 +01001280 Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1281 Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1282 Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca08d21782011-05-26 00:58:26 +01001283 Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
1284 Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
1285 Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1286 Method(DDRESULT, "FlipToGDISurface", []),
1287 Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1288 Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
José Fonseca3a2a4762011-05-26 11:37:30 +01001289 Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
José Fonseca08d21782011-05-26 00:58:26 +01001290 Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
1291 Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1292 Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1293 Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1294 Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1295 Method(DDRESULT, "RestoreDisplayMode", []),
1296 Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1297 Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP")]),
1298 Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
José Fonseca91af9232009-04-13 16:15:28 +01001299]
1300
1301IDirectDraw2.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001302 Method(DDRESULT, "Compact", []),
José Fonseca9782b292012-04-14 22:02:42 +01001303 Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1304 Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1305 Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca08d21782011-05-26 00:58:26 +01001306 Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDupDDSurface")]),
1307 Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK, "lpEnumModesCallback")]),
1308 Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1309 Method(DDRESULT, "FlipToGDISurface", []),
1310 Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1311 Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
José Fonseca3a2a4762011-05-26 11:37:30 +01001312 Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
José Fonseca08d21782011-05-26 00:58:26 +01001313 Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE), "lplpGDIDDSSurface")]),
1314 Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1315 Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1316 Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1317 Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1318 Method(DDRESULT, "RestoreDisplayMode", []),
1319 Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1320 Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1321 Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1322 Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
José Fonseca91af9232009-04-13 16:15:28 +01001323]
1324
1325IDirectDraw4.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001326 Method(DDRESULT, "Compact", []),
José Fonseca9782b292012-04-14 22:02:42 +01001327 Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1328 Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (ObjPointer(IUnknown), "pUnkOuter")]),
1329 Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca08d21782011-05-26 00:58:26 +01001330 Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDupDDSurface")]),
1331 Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
1332 Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]),
1333 Method(DDRESULT, "FlipToGDISurface", []),
1334 Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1335 Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca3a2a4762011-05-26 11:37:30 +01001336 Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
José Fonseca08d21782011-05-26 00:58:26 +01001337 Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpGDIDDSSurface")]),
1338 Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1339 Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1340 Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1341 Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1342 Method(DDRESULT, "RestoreDisplayMode", []),
1343 Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1344 Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1345 Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1346 Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
1347 Method(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lpDDSurface")]),
1348 Method(DDRESULT, "RestoreAllSurfaces", []),
1349 Method(DDRESULT, "TestCooperativeLevel", []),
José Fonseca3a2a4762011-05-26 11:37:30 +01001350 Method(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001351]
1352
1353IDirectDraw7.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001354 Method(DDRESULT, "Compact", []),
José Fonseca9782b292012-04-14 22:02:42 +01001355 Method(DDRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (LPUNKNOWN, "pUnkOuter")]),
1356 Method(DDRESULT, "CreatePalette", [(DirectDrawPaletteCapsFlags, "dwFlags"), (LPPALETTEENTRY, "lpDDColorArray"), Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette"), (LPUNKNOWN, "pUnkOuter")]),
1357 Method(DDRESULT, "CreateSurface", [(LPDDSURFACEDESC2, "lpDDSurfaceDesc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface"), (LPUNKNOWN, "pUnkOuter")]),
José Fonseca08d21782011-05-26 00:58:26 +01001358 Method(DDRESULT, "DuplicateSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSurface"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDupDDSurface")]),
1359 Method(DDRESULT, "EnumDisplayModes", [(DirectDrawEnumDisplayModesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMMODESCALLBACK2, "lpEnumModesCallback")]),
1360 Method(DDRESULT, "EnumSurfaces", [(DirectDrawEnumSurfacesFlags, "dwFlags"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]),
1361 Method(DDRESULT, "FlipToGDISurface", []),
1362 Method(DDRESULT, "GetCaps", [Out(LPDDCAPS, "lpDDDriverCaps"), Out(LPDDCAPS, "lpDDHELCaps")]),
1363 Method(DDRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca3a2a4762011-05-26 11:37:30 +01001364 Method(DDRESULT, "GetFourCCCodes", [Out(LPDWORD, "lpNumCodes"), Out(LPDWORD, "lpCodes")]),
José Fonseca08d21782011-05-26 00:58:26 +01001365 Method(DDRESULT, "GetGDISurface", [Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpGDIDDSSurface")]),
1366 Method(DDRESULT, "GetMonitorFrequency", [Out(LPDWORD, "lpdwFrequency")]),
1367 Method(DDRESULT, "GetScanLine", [Out(LPDWORD, "lpdwScanLine")]),
1368 Method(DDRESULT, "GetVerticalBlankStatus", [Out(LPBOOL, "lpbIsInVB")]),
1369 Method(DDRESULT, "Initialize", [(Pointer(GUID), "lpGUID")]),
1370 Method(DDRESULT, "RestoreDisplayMode", []),
1371 Method(DDRESULT, "SetCooperativeLevel", [(HWND, "hWnd"), (DirectDrawSetCooperativeLevelFlags, "dwFlags")]),
1372 Method(DDRESULT, "SetDisplayMode", [(DWORD, "dwWidth"), (DWORD, "dwHeight"), (DWORD, "dwBPP"), (DWORD, "dwRefreshRate"), (DirectDrawSetDisplayModeFlags, "dwFlags")]),
1373 Method(DDRESULT, "WaitForVerticalBlank", [(DirectDrawWaitForVerticalBlankFlags, "dwFlags"), (HANDLE, "hEvent")]),
1374 Method(DDRESULT, "GetAvailableVidMem", [(LPDDSCAPS2, "lpDDSCaps"), Out(LPDWORD, "lpdwTotal"), Out(LPDWORD, "lpdwFree")]),
1375 Method(DDRESULT, "GetSurfaceFromDC", [(HDC, "hdc"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lpDDSurface")]),
1376 Method(DDRESULT, "RestoreAllSurfaces", []),
1377 Method(DDRESULT, "TestCooperativeLevel", []),
José Fonseca3a2a4762011-05-26 11:37:30 +01001378 Method(DDRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDI"), (DirectDrawGetDeviceIdentifierFlags, "dwFlags")]),
José Fonseca08d21782011-05-26 00:58:26 +01001379 Method(DDRESULT, "StartModeTest", [(LPSIZE, "lpModesToTest"), (DWORD, "dwNumEntries"), (DirectDrawStartModeTestFlags, "dwFlags")]),
1380 Method(DDRESULT, "EvaluateMode", [(DirectDrawEvaluateModeFlags, "dwFlags"), Out(Pointer(DWORD), "pSecondsUntilTimeout")]),
José Fonseca91af9232009-04-13 16:15:28 +01001381]
1382
1383IDirectDrawPalette.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001384 Method(DDRESULT, "GetCaps", [Out(Pointer(DirectDrawPaletteCapsFlags), "lpdwCaps")]),
José Fonseca3a2a4762011-05-26 11:37:30 +01001385 Method(DDRESULT, "GetEntries", [(DWORD, "dwFlags"), (DWORD, "dwBase"), (DWORD, "dwNumEntries"), Out(LPPALETTEENTRY, "lpEntries")]),
José Fonseca08d21782011-05-26 00:58:26 +01001386 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags"), (LPPALETTEENTRY, "lpDDColorTable")]),
1387 Method(DDRESULT, "SetEntries", [(DWORD, "dwFlags"), (DWORD, "dwStartingEntry"), (DWORD, "dwCount"), (LPPALETTEENTRY, "lpEntries")]),
José Fonseca91af9232009-04-13 16:15:28 +01001388]
1389
1390IDirectDrawClipper.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001391 Method(DDRESULT, "GetClipList", [(LPRECT, "lpRect"), (LPRGNDATA, "lpClipList"), Out(LPDWORD, "lpdwSize")]),
1392 Method(DDRESULT, "GetHWnd", [Out(Pointer(HWND), "hWnd")]),
1393 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (DWORD, "dwFlags")]),
1394 Method(DDRESULT, "IsClipListChanged", [Out(Pointer(BOOL), "lpbChanged")]),
1395 Method(DDRESULT, "SetClipList", [(LPRGNDATA, "lpClipList"), (DWORD, "dwFlags")]),
1396 Method(DDRESULT, "SetHWnd", [(DWORD, "dwFlags"), (HWND, "hWnd")]),
José Fonseca91af9232009-04-13 16:15:28 +01001397]
1398
1399
1400IDirectDrawSurface.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001401 Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE, "lpDDSAttachedSurface")]),
1402 Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1403 Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1404 Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1405 Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1406 Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSurface")]),
1407 Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1408 Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1409 Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1410 Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDAttachedSurface")]),
1411 Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1412 Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1413 Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1414 Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1415 Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1416 Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1417 Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1418 Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1419 Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1420 Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1421 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1422 Method(DDRESULT, "IsLost", []),
1423 Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1424 Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1425 Method(DDRESULT, "Restore", []),
1426 Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1427 Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1428 Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1429 Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1430 Method(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1431 Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1432 Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1433 Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE, "lpDDSReference")]),
José Fonseca91af9232009-04-13 16:15:28 +01001434]
1435
1436IDirectDrawSurface2.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001437 Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE2, "lpDDSAttachedSurface")]),
1438 Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1439 Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1440 Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1441 Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE2, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1442 Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSurface")]),
1443 Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1444 Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1445 Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE2, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1446 Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE2), "lplpDDAttachedSurface")]),
1447 Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1448 Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1449 Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1450 Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1451 Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1452 Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1453 Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1454 Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1455 Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1456 Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1457 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1458 Method(DDRESULT, "IsLost", []),
1459 Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1460 Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1461 Method(DDRESULT, "Restore", []),
1462 Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1463 Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1464 Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1465 Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1466 Method(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1467 Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE2, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1468 Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1469 Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE2, "lpDDSReference")]),
José Fonseca9782b292012-04-14 22:02:42 +01001470 Method(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
José Fonseca08d21782011-05-26 00:58:26 +01001471 Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1472 Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001473]
1474
1475IDirectDrawSurface3.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001476 Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE3, "lpDDSAttachedSurface")]),
1477 Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1478 Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1479 Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1480 Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE3, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1481 Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSurface")]),
1482 Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpEnumSurfacesCallback")]),
1483 Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK, "lpfnCallback")]),
1484 Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE3, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1485 Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE3), "lplpDDAttachedSurface")]),
1486 Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1487 Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS, "lpDDSCaps")]),
1488 Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1489 Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1490 Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1491 Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1492 Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1493 Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1494 Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1495 Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1496 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
1497 Method(DDRESULT, "IsLost", []),
1498 Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1499 Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1500 Method(DDRESULT, "Restore", []),
1501 Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1502 Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1503 Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1504 Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1505 Method(DDRESULT, "Unlock", [(LPVOID, "lp")]),
1506 Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE3, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1507 Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1508 Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE3, "lpDDSReference")]),
José Fonseca9782b292012-04-14 22:02:42 +01001509 Method(DDRESULT, "GetDDInterface", [Out(LPUNKNOWN, "lplpDD")]),
José Fonseca08d21782011-05-26 00:58:26 +01001510 Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1511 Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1512 Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC, "lpDDSD"), (DWORD, "dwFlags")]),
José Fonseca91af9232009-04-13 16:15:28 +01001513]
1514
1515IDirectDrawSurface4.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001516 Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE4, "lpDDSAttachedSurface")]),
1517 Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1518 Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1519 Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1520 Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE4, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1521 Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSurface")]),
1522 Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpEnumSurfacesCallback")]),
1523 Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK2, "lpfnCallback")]),
1524 Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE4, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1525 Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDAttachedSurface")]),
1526 Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1527 Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1528 Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1529 Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1530 Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1531 Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1532 Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1533 Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1534 Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1535 Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1536 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1537 Method(DDRESULT, "IsLost", []),
1538 Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1539 Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1540 Method(DDRESULT, "Restore", []),
1541 Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1542 Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1543 Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1544 Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1545 Method(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1546 Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE4, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1547 Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1548 Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE4, "lpDDSReference")]),
1549 Method(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1550 Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1551 Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1552 Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
1553 Method(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]),
1554 Method(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]),
1555 Method(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]),
1556 Method(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1557 Method(DDRESULT, "ChangeUniquenessValue", []),
José Fonseca91af9232009-04-13 16:15:28 +01001558]
1559
1560IDirectDrawSurface7.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001561 Method(DDRESULT, "AddAttachedSurface", [(LPDIRECTDRAWSURFACE7, "lpDDSAttachedSurface")]),
1562 Method(DDRESULT, "AddOverlayDirtyRect", [(LPRECT, "lpRect")]),
1563 Method(DDRESULT, "Blt", [(LPRECT, "lpDestRect"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DirectDrawBltFlags, "dwFlags"), (LPDDBLTFX, "lpDDBltFx")]),
1564 Method(DDRESULT, "BltBatch", [(LPDDBLTBATCH, "lpDDBltBatch"), (DWORD, "dwCount"), (DWORD, "dwFlags")]),
1565 Method(DDRESULT, "BltFast", [(DWORD, "dwX"), (DWORD, "dwY"), (LPDIRECTDRAWSURFACE7, "lpDDSrcSurface"), (LPRECT, "lpSrcRect"), (DWORD, "dwTrans")]),
1566 Method(DDRESULT, "DeleteAttachedSurface", [(DWORD, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSurface")]),
1567 Method(DDRESULT, "EnumAttachedSurfaces", [(LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpEnumSurfacesCallback")]),
1568 Method(DDRESULT, "EnumOverlayZOrders", [(DirectDrawEnumOverlayZOrderFlags, "dwFlags"), (LPVOID, "lpContext"), (LPDDENUMSURFACESCALLBACK7, "lpfnCallback")]),
1569 Method(DDRESULT, "Flip", [(LPDIRECTDRAWSURFACE7, "lpDDSurfaceTargetOverride"), (DirectDrawFlipFlags, "dwFlags")]),
1570 Method(DDRESULT, "GetAttachedSurface", [(LPDDSCAPS2, "lpDDSCaps"), Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDAttachedSurface")]),
1571 Method(DDRESULT, "GetBltStatus", [(DirectDrawGetBltStatusFlags, "dwFlags")]),
1572 Method(DDRESULT, "GetCaps", [Out(LPDDSCAPS2, "lpDDSCaps")]),
1573 Method(DDRESULT, "GetClipper", [Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper")]),
1574 Method(DDRESULT, "GetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1575 Method(DDRESULT, "GetDC", [Out(Pointer(HDC), "phDC")]),
1576 Method(DDRESULT, "GetFlipStatus", [(DWORD, "dwFlags")]),
1577 Method(DDRESULT, "GetOverlayPosition", [Out(LPLONG, "lplX"), Out(LPLONG, "lplY")]),
1578 Method(DDRESULT, "GetPalette", [Out(Pointer(LPDIRECTDRAWPALETTE), "lplpDDPalette")]),
1579 Method(DDRESULT, "GetPixelFormat", [Out(LPDDPIXELFORMAT, "lpDDPixelFormat")]),
1580 Method(DDRESULT, "GetSurfaceDesc", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1581 Method(DDRESULT, "Initialize", [(LPDIRECTDRAW, "lpDD"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
1582 Method(DDRESULT, "IsLost", []),
1583 Method(DDRESULT, "Lock", [(LPRECT, "lpDestRect"), (LPDDSURFACEDESC2, "lpDDSurfaceDesc"), (DirectDrawSurfaceLockFlags, "dwFlags"), (HANDLE, "hEvent")]),
1584 Method(DDRESULT, "ReleaseDC", [(HDC, "hDC")]),
1585 Method(DDRESULT, "Restore", []),
1586 Method(DDRESULT, "SetClipper", [(LPDIRECTDRAWCLIPPER, "lpDDClipper")]),
1587 Method(DDRESULT, "SetColorKey", [(DirectDrawSurfaceSetGetColorKeyFlags, "dwFlags"), Out(LPDDCOLORKEY, "lpDDColorKey")]),
1588 Method(DDRESULT, "SetOverlayPosition", [(LONG, "lX"), (LONG, "lY")]),
1589 Method(DDRESULT, "SetPalette", [(LPDIRECTDRAWPALETTE, "lpDDPalette")]),
1590 Method(DDRESULT, "Unlock", [(LPRECT, "lpRect")]),
1591 Method(DDRESULT, "UpdateOverlay", [(LPRECT, "lpSrcRect"), (LPDIRECTDRAWSURFACE7, "lpDDDestSurface"), (LPRECT, "lpDestRect"), (DirectDrawSurfaceOverlayFlags, "dwFlags"), (LPDDOVERLAYFX, "lpDDOverlayFx")]),
1592 Method(DDRESULT, "UpdateOverlayDisplay", [(DWORD, "dwFlags")]),
1593 Method(DDRESULT, "UpdateOverlayZOrder", [(DirectDrawUpdateOverlayZOrderFlags, "dwFlags"), (LPDIRECTDRAWSURFACE7, "lpDDSReference")]),
1594 Method(DDRESULT, "GetDDInterface", [Out(Pointer(LPVOID), "lplpDD")]),
1595 Method(DDRESULT, "PageLock", [(DWORD, "dwFlags")]),
1596 Method(DDRESULT, "PageUnlock", [(DWORD, "dwFlags")]),
1597 Method(DDRESULT, "SetSurfaceDesc", [(LPDDSURFACEDESC2, "lpDDSD"), (DWORD, "dwFlags")]),
1598 Method(DDRESULT, "SetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), (DWORD, "cbSize"), (DWORD, "dwFlags")]),
1599 Method(DDRESULT, "GetPrivateData", [(REFGUID, "guidTag"), (LPVOID, "lpData"), Out(LPDWORD, "lpcbBufferSize")]),
1600 Method(DDRESULT, "FreePrivateData", [(REFGUID, "guidTag")]),
1601 Method(DDRESULT, "GetUniquenessValue", [Out(LPDWORD, "lpValue")]),
1602 Method(DDRESULT, "ChangeUniquenessValue", []),
1603 Method(DDRESULT, "SetPriority", [(DWORD, "dwPriority")]),
1604 Method(DDRESULT, "GetPriority", [Out(LPDWORD, "lpdwPriority")]),
1605 Method(DDRESULT, "SetLOD", [(DWORD, "dwMaxLOD")]),
1606 Method(DDRESULT, "GetLOD", [Out(LPDWORD, "lpdwMaxLOD")]),
José Fonseca91af9232009-04-13 16:15:28 +01001607]
1608
1609IDirectDrawColorControl.methods += [
José Fonseca08d21782011-05-26 00:58:26 +01001610 Method(DDRESULT, "GetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
1611 Method(DDRESULT, "SetColorControls", [(LPDDCOLORCONTROL, "lpColorControl")]),
José Fonseca91af9232009-04-13 16:15:28 +01001612]
1613
1614IDirectDrawGammaControl.methods += [
José Fonseca3a2a4762011-05-26 11:37:30 +01001615 Method(DDRESULT, "GetGammaRamp", [(DWORD, "dwFlags"), Out(LPDDGAMMARAMP, "lpRampData")]),
José Fonseca08d21782011-05-26 00:58:26 +01001616 Method(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é Fonseca8384ccb2011-05-25 10:12:02 +01001635ddraw = API("ddraw")
José Fonseca54f304a2012-01-14 19:33:08 +00001636ddraw.addFunctions([
José Fonseca90dd97e2010-11-23 21:35:55 +00001637 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
1638 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
1639 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1640 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
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é Fonseca8384ccb2011-05-25 10:12:02 +01001644 StdFunction(Void, "AcquireDDThreadLock", []),
1645 StdFunction(Void, "ReleaseDDThreadLock", []),
1646 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")]),
1647 StdFunction(HRESULT, "DllCanUnloadNow", []),
José Fonseca9782b292012-04-14 22:02:42 +01001648 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(ObjPointer(Void)), "ppv")]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001649
1650 # XXX
1651 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int]),
1652 StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int]),
1653 StdFunction(HRESULT, "DDInternalLock", [Int, Int]),
1654 StdFunction(HRESULT, "DDInternalUnlock", [Int]),
1655 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int]),
1656 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int]),
1657 StdFunction(HANDLE, "GetOLEThunkData", [Int]),
1658 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int]),
1659 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int]),
1660
1661 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001662])
José Fonseca91af9232009-04-13 16:15:28 +01001663