blob: 2e17b06edf64a71e79b255ffff767b05ebe80ff7 [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é Fonseca8384ccb2011-05-25 10:12:02 +010029from trace import DllTracer
José Fonseca91af9232009-04-13 16:15:28 +010030
31IDirectDraw = Interface("IDirectDraw", IUnknown)
32IDirectDraw2 = Interface("IDirectDraw2", IUnknown)
33IDirectDraw4 = Interface("IDirectDraw4", IUnknown)
34IDirectDraw7 = Interface("IDirectDraw7", IUnknown)
35IDirectDrawPalette = Interface("IDirectDrawPalette", IUnknown)
36IDirectDrawClipper = Interface("IDirectDrawClipper", IUnknown)
37IDirectDrawSurface = Interface("IDirectDrawSurface", IUnknown)
38IDirectDrawSurface2 = Interface("IDirectDrawSurface2", IUnknown)
39IDirectDrawSurface3 = Interface("IDirectDrawSurface3", IUnknown)
40IDirectDrawSurface4 = Interface("IDirectDrawSurface4", IUnknown)
41IDirectDrawSurface7 = Interface("IDirectDrawSurface7", IUnknown)
42IDirectDrawColorControl = Interface("IDirectDrawColorControl", IUnknown)
43IDirectDrawGammaControl = Interface("IDirectDrawGammaControl", IUnknown)
44
45LPDIRECTDRAW = Pointer(IDirectDraw)
46LPDIRECTDRAW2 = Pointer(IDirectDraw2)
47LPDIRECTDRAW4 = Pointer(IDirectDraw4)
48LPDIRECTDRAW7 = Pointer(IDirectDraw7)
49LPDIRECTDRAWSURFACE = Pointer(IDirectDrawSurface)
50LPDIRECTDRAWSURFACE2 = Pointer(IDirectDrawSurface2)
51LPDIRECTDRAWSURFACE3 = Pointer(IDirectDrawSurface3)
52LPDIRECTDRAWSURFACE4 = Pointer(IDirectDrawSurface4)
53LPDIRECTDRAWSURFACE7 = Pointer(IDirectDrawSurface7)
54LPDIRECTDRAWPALETTE = Pointer(IDirectDrawPalette)
55LPDIRECTDRAWCLIPPER = Pointer(IDirectDrawClipper)
56LPDIRECTDRAWCOLORCONTROL = Pointer(IDirectDrawColorControl)
57LPDIRECTDRAWGAMMACONTROL = Pointer(IDirectDrawGammaControl)
58
59DDARGB = Struct("DDARGB", [
60 (BYTE, "blue"),
61 (BYTE, "green"),
62 (BYTE, "red"),
63 (BYTE, "alpha"),
64])
65
66LPDDARGB = Pointer(DDARGB)
67
68DDRGBA = Struct("DDRGBA", [
69 (BYTE, "red"),
70 (BYTE, "green"),
71 (BYTE, "blue"),
72 (BYTE, "alpha"),
73])
74LPDDRGBA = Pointer(DDRGBA)
75
76DDCOLORKEY = Struct("DDCOLORKEY", [
77 (DWORD, "dwColorSpaceLowValue"),
78 (DWORD, "dwColorSpaceHighValue"),
79])
80LPDDCOLORKEY = Pointer(DDCOLORKEY)
81
82DDBLTFX = Struct("DDBLTFX", [
83 (DWORD, "dwSize"),
84 (DWORD, "dwDDFX"),
85 (DWORD, "dwROP"),
86 (DWORD, "dwDDROP"),
87 (DWORD, "dwRotationAngle"),
88 (DWORD, "dwZBufferOpCode"),
89 (DWORD, "dwZBufferLow"),
90 (DWORD, "dwZBufferHigh"),
91 (DWORD, "dwZBufferBaseDest"),
92 (DWORD, "dwZDestConstBitDepth"),
93 (DWORD, "dwZDestConst"),
94 (LPDIRECTDRAWSURFACE, "lpDDSZBufferDest"),
95 (DWORD, "dwZSrcConstBitDepth"),
96 (DWORD, "dwZSrcConst"),
97 (LPDIRECTDRAWSURFACE, "lpDDSZBufferSrc"),
98 (DWORD, "dwAlphaEdgeBlendBitDepth"),
99 (DWORD, "dwAlphaEdgeBlend"),
100 (DWORD, "dwReserved"),
101 (DWORD, "dwAlphaDestConstBitDepth"),
102 (DWORD, "dwAlphaDestConst"),
103 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
104 (DWORD, "dwAlphaSrcConstBitDepth"),
105 (DWORD, "dwAlphaSrcConst"),
106 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
107 (DWORD, "dwFillColor"),
108 (DWORD, "dwFillDepth"),
109 (DWORD, "dwFillPixel"),
110 (LPDIRECTDRAWSURFACE, "lpDDSPattern"),
111 (DDCOLORKEY, "ddckDestColorkey"),
112 (DDCOLORKEY, "ddckSrcColorkey"),
113])
114LPDDBLTFX = Pointer(DDBLTFX)
115
116DDSCAPS = Struct("DDSCAPS", [
117 (DWORD, "dwCaps"),
118])
119LPDDSCAPS = Pointer(DDSCAPS)
120
121DDOSCAPS = Struct("DDOSCAPS", [
122 (DWORD, "dwCaps"),
123])
124LPDDOSCAPS = Pointer(DDOSCAPS)
125
126DDSCAPSEX = Struct("DDSCAPSEX", [
127 (DWORD, "dwCaps2"),
128 (DWORD, "dwCaps3"),
129 (DWORD, "dwCaps4"),
130])
131
132DDSCAPS2 = Struct("DDSCAPS2", [
133 (DWORD, "dwCaps"),
134 (DWORD, "dwCaps2"),
135 (DWORD, "dwCaps3"),
136 (DWORD, "dwCaps4"),
137])
138LPDDSCAPS2 = Pointer(DDSCAPS2)
139
140DDCAPS_DX1 = Struct("DDCAPS_DX1", [
141 (DWORD, "dwSize"),
142 (DWORD, "dwCaps"),
143 (DWORD, "dwCaps2"),
144 (DWORD, "dwCKeyCaps"),
145 (DWORD, "dwFXCaps"),
146 (DWORD, "dwFXAlphaCaps"),
147 (DWORD, "dwPalCaps"),
148 (DWORD, "dwSVCaps"),
149 (DWORD, "dwAlphaBltConstBitDepths"),
150 (DWORD, "dwAlphaBltPixelBitDepths"),
151 (DWORD, "dwAlphaBltSurfaceBitDepths"),
152 (DWORD, "dwAlphaOverlayConstBitDepths"),
153 (DWORD, "dwAlphaOverlayPixelBitDepths"),
154 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
155 (DWORD, "dwZBufferBitDepths"),
156 (DWORD, "dwVidMemTotal"),
157 (DWORD, "dwVidMemFree"),
158 (DWORD, "dwMaxVisibleOverlays"),
159 (DWORD, "dwCurrVisibleOverlays"),
160 (DWORD, "dwNumFourCCCodes"),
161 (DWORD, "dwAlignBoundarySrc"),
162 (DWORD, "dwAlignSizeSrc"),
163 (DWORD, "dwAlignBoundaryDest"),
164 (DWORD, "dwAlignSizeDest"),
165 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100166 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100167 (DDSCAPS, "ddsCaps"),
168 (DWORD, "dwMinOverlayStretch"),
169 (DWORD, "dwMaxOverlayStretch"),
170 (DWORD, "dwMinLiveVideoStretch"),
171 (DWORD, "dwMaxLiveVideoStretch"),
172 (DWORD, "dwMinHwCodecStretch"),
173 (DWORD, "dwMaxHwCodecStretch"),
174 (DWORD, "dwReserved1"),
175 (DWORD, "dwReserved2"),
176 (DWORD, "dwReserved3"),
177])
178LPDDCAPS_DX1 = Pointer(DDCAPS_DX1)
179
180DDCAPS_DX3 = Struct("DDCAPS_DX3", [
181 (DWORD, "dwSize"),
182 (DWORD, "dwCaps"),
183 (DWORD, "dwCaps2"),
184 (DWORD, "dwCKeyCaps"),
185 (DWORD, "dwFXCaps"),
186 (DWORD, "dwFXAlphaCaps"),
187 (DWORD, "dwPalCaps"),
188 (DWORD, "dwSVCaps"),
189 (DWORD, "dwAlphaBltConstBitDepths"),
190 (DWORD, "dwAlphaBltPixelBitDepths"),
191 (DWORD, "dwAlphaBltSurfaceBitDepths"),
192 (DWORD, "dwAlphaOverlayConstBitDepths"),
193 (DWORD, "dwAlphaOverlayPixelBitDepths"),
194 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
195 (DWORD, "dwZBufferBitDepths"),
196 (DWORD, "dwVidMemTotal"),
197 (DWORD, "dwVidMemFree"),
198 (DWORD, "dwMaxVisibleOverlays"),
199 (DWORD, "dwCurrVisibleOverlays"),
200 (DWORD, "dwNumFourCCCodes"),
201 (DWORD, "dwAlignBoundarySrc"),
202 (DWORD, "dwAlignSizeSrc"),
203 (DWORD, "dwAlignBoundaryDest"),
204 (DWORD, "dwAlignSizeDest"),
205 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100206 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100207 (DDSCAPS, "ddsCaps"),
208 (DWORD, "dwMinOverlayStretch"),
209 (DWORD, "dwMaxOverlayStretch"),
210 (DWORD, "dwMinLiveVideoStretch"),
211 (DWORD, "dwMaxLiveVideoStretch"),
212 (DWORD, "dwMinHwCodecStretch"),
213 (DWORD, "dwMaxHwCodecStretch"),
214 (DWORD, "dwReserved1"),
215 (DWORD, "dwReserved2"),
216 (DWORD, "dwReserved3"),
217 (DWORD, "dwSVBCaps"),
218 (DWORD, "dwSVBCKeyCaps"),
219 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100220 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100221 (DWORD, "dwVSBCaps"),
222 (DWORD, "dwVSBCKeyCaps"),
223 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100224 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100225 (DWORD, "dwSSBCaps"),
226 (DWORD, "dwSSBCKeyCaps"),
227 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100228 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100229 (DWORD, "dwReserved4"),
230 (DWORD, "dwReserved5"),
231 (DWORD, "dwReserved6"),
232])
233LPDDCAPS_DX3 = Pointer(DDCAPS_DX3)
234
235DDCAPS_DX5 = Struct("DDCAPS_DX5", [
236 (DWORD, "dwSize"),
237 (DWORD, "dwCaps"),
238 (DWORD, "dwCaps2"),
239 (DWORD, "dwCKeyCaps"),
240 (DWORD, "dwFXCaps"),
241 (DWORD, "dwFXAlphaCaps"),
242 (DWORD, "dwPalCaps"),
243 (DWORD, "dwSVCaps"),
244 (DWORD, "dwAlphaBltConstBitDepths"),
245 (DWORD, "dwAlphaBltPixelBitDepths"),
246 (DWORD, "dwAlphaBltSurfaceBitDepths"),
247 (DWORD, "dwAlphaOverlayConstBitDepths"),
248 (DWORD, "dwAlphaOverlayPixelBitDepths"),
249 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
250 (DWORD, "dwZBufferBitDepths"),
251 (DWORD, "dwVidMemTotal"),
252 (DWORD, "dwVidMemFree"),
253 (DWORD, "dwMaxVisibleOverlays"),
254 (DWORD, "dwCurrVisibleOverlays"),
255 (DWORD, "dwNumFourCCCodes"),
256 (DWORD, "dwAlignBoundarySrc"),
257 (DWORD, "dwAlignSizeSrc"),
258 (DWORD, "dwAlignBoundaryDest"),
259 (DWORD, "dwAlignSizeDest"),
260 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100261 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100262 (DDSCAPS, "ddsCaps"),
263 (DWORD, "dwMinOverlayStretch"),
264 (DWORD, "dwMaxOverlayStretch"),
265 (DWORD, "dwMinLiveVideoStretch"),
266 (DWORD, "dwMaxLiveVideoStretch"),
267 (DWORD, "dwMinHwCodecStretch"),
268 (DWORD, "dwMaxHwCodecStretch"),
269 (DWORD, "dwReserved1"),
270 (DWORD, "dwReserved2"),
271 (DWORD, "dwReserved3"),
272 (DWORD, "dwSVBCaps"),
273 (DWORD, "dwSVBCKeyCaps"),
274 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100275 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100276 (DWORD, "dwVSBCaps"),
277 (DWORD, "dwVSBCKeyCaps"),
278 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100279 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100280 (DWORD, "dwSSBCaps"),
281 (DWORD, "dwSSBCKeyCaps"),
282 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100283 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100284 (DWORD, "dwMaxVideoPorts"),
285 (DWORD, "dwCurrVideoPorts"),
286 (DWORD, "dwSVBCaps2"),
287 (DWORD, "dwNLVBCaps"),
288 (DWORD, "dwNLVBCaps2"),
289 (DWORD, "dwNLVBCKeyCaps"),
290 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100291 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100292])
293LPDDCAPS_DX5 = Pointer(DDCAPS_DX5)
294
295DDCAPS_DX6 = Struct("DDCAPS_DX6", [
296 (DWORD, "dwSize"),
297 (DWORD, "dwCaps"),
298 (DWORD, "dwCaps2"),
299 (DWORD, "dwCKeyCaps"),
300 (DWORD, "dwFXCaps"),
301 (DWORD, "dwFXAlphaCaps"),
302 (DWORD, "dwPalCaps"),
303 (DWORD, "dwSVCaps"),
304 (DWORD, "dwAlphaBltConstBitDepths"),
305 (DWORD, "dwAlphaBltPixelBitDepths"),
306 (DWORD, "dwAlphaBltSurfaceBitDepths"),
307 (DWORD, "dwAlphaOverlayConstBitDepths"),
308 (DWORD, "dwAlphaOverlayPixelBitDepths"),
309 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
310 (DWORD, "dwZBufferBitDepths"),
311 (DWORD, "dwVidMemTotal"),
312 (DWORD, "dwVidMemFree"),
313 (DWORD, "dwMaxVisibleOverlays"),
314 (DWORD, "dwCurrVisibleOverlays"),
315 (DWORD, "dwNumFourCCCodes"),
316 (DWORD, "dwAlignBoundarySrc"),
317 (DWORD, "dwAlignSizeSrc"),
318 (DWORD, "dwAlignBoundaryDest"),
319 (DWORD, "dwAlignSizeDest"),
320 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100321 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100322 (DDSCAPS, "ddsOldCaps"),
323 (DWORD, "dwMinOverlayStretch"),
324 (DWORD, "dwMaxOverlayStretch"),
325 (DWORD, "dwMinLiveVideoStretch"),
326 (DWORD, "dwMaxLiveVideoStretch"),
327 (DWORD, "dwMinHwCodecStretch"),
328 (DWORD, "dwMaxHwCodecStretch"),
329 (DWORD, "dwReserved1"),
330 (DWORD, "dwReserved2"),
331 (DWORD, "dwReserved3"),
332 (DWORD, "dwSVBCaps"),
333 (DWORD, "dwSVBCKeyCaps"),
334 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100335 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100336 (DWORD, "dwVSBCaps"),
337 (DWORD, "dwVSBCKeyCaps"),
338 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100339 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100340 (DWORD, "dwSSBCaps"),
341 (DWORD, "dwSSBCKeyCaps"),
342 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100343 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100344 (DWORD, "dwMaxVideoPorts"),
345 (DWORD, "dwCurrVideoPorts"),
346 (DWORD, "dwSVBCaps2"),
347 (DWORD, "dwNLVBCaps"),
348 (DWORD, "dwNLVBCaps2"),
349 (DWORD, "dwNLVBCKeyCaps"),
350 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100351 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100352 (DDSCAPS2, "ddsCaps"),
353])
354LPDDCAPS_DX6 = Pointer(DDCAPS_DX6)
355
356DDCAPS_DX7 = Struct("DDCAPS_DX7", [
357 (DWORD, "dwSize"),
358 (DWORD, "dwCaps"),
359 (DWORD, "dwCaps2"),
360 (DWORD, "dwCKeyCaps"),
361 (DWORD, "dwFXCaps"),
362 (DWORD, "dwFXAlphaCaps"),
363 (DWORD, "dwPalCaps"),
364 (DWORD, "dwSVCaps"),
365 (DWORD, "dwAlphaBltConstBitDepths"),
366 (DWORD, "dwAlphaBltPixelBitDepths"),
367 (DWORD, "dwAlphaBltSurfaceBitDepths"),
368 (DWORD, "dwAlphaOverlayConstBitDepths"),
369 (DWORD, "dwAlphaOverlayPixelBitDepths"),
370 (DWORD, "dwAlphaOverlaySurfaceBitDepths"),
371 (DWORD, "dwZBufferBitDepths"),
372 (DWORD, "dwVidMemTotal"),
373 (DWORD, "dwVidMemFree"),
374 (DWORD, "dwMaxVisibleOverlays"),
375 (DWORD, "dwCurrVisibleOverlays"),
376 (DWORD, "dwNumFourCCCodes"),
377 (DWORD, "dwAlignBoundarySrc"),
378 (DWORD, "dwAlignSizeSrc"),
379 (DWORD, "dwAlignBoundaryDest"),
380 (DWORD, "dwAlignSizeDest"),
381 (DWORD, "dwAlignStrideAlign"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100382 (Array(DWORD, "DD_ROP_SPACE"), "dwRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100383 (DDSCAPS, "ddsOldCaps"),
384 (DWORD, "dwMinOverlayStretch"),
385 (DWORD, "dwMaxOverlayStretch"),
386 (DWORD, "dwMinLiveVideoStretch"),
387 (DWORD, "dwMaxLiveVideoStretch"),
388 (DWORD, "dwMinHwCodecStretch"),
389 (DWORD, "dwMaxHwCodecStretch"),
390 (DWORD, "dwReserved1"),
391 (DWORD, "dwReserved2"),
392 (DWORD, "dwReserved3"),
393 (DWORD, "dwSVBCaps"),
394 (DWORD, "dwSVBCKeyCaps"),
395 (DWORD, "dwSVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100396 (Array(DWORD, "DD_ROP_SPACE"), "dwSVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100397 (DWORD, "dwVSBCaps"),
398 (DWORD, "dwVSBCKeyCaps"),
399 (DWORD, "dwVSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100400 (Array(DWORD, "DD_ROP_SPACE"), "dwVSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100401 (DWORD, "dwSSBCaps"),
402 (DWORD, "dwSSBCKeyCaps"),
403 (DWORD, "dwSSBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100404 (Array(DWORD, "DD_ROP_SPACE"), "dwSSBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100405 (DWORD, "dwMaxVideoPorts"),
406 (DWORD, "dwCurrVideoPorts"),
407 (DWORD, "dwSVBCaps2"),
408 (DWORD, "dwNLVBCaps"),
409 (DWORD, "dwNLVBCaps2"),
410 (DWORD, "dwNLVBCKeyCaps"),
411 (DWORD, "dwNLVBFXCaps"),
José Fonsecabb8760b2011-05-25 23:21:18 +0100412 (Array(DWORD, "DD_ROP_SPACE"), "dwNLVBRops"),
José Fonseca91af9232009-04-13 16:15:28 +0100413 (DDSCAPS2, "ddsCaps"),
414])
415LPDDCAPS_DX7 = Pointer(DDCAPS_DX7)
416DDCAPS = DDCAPS_DX7
417LPDDCAPS = Pointer(DDCAPS)
418
419DDPIXELFORMAT = Struct("DDPIXELFORMAT", [
420 (DWORD, "dwSize"),
421 (DWORD, "dwFlags"),
422 (DWORD, "dwFourCC"),
423 (DWORD, "dwRGBBitCount"),
424 (DWORD, "dwYUVBitCount"),
425 (DWORD, "dwZBufferBitDepth"),
426 (DWORD, "dwAlphaBitDepth"),
427 (DWORD, "dwLuminanceBitCount"),
428 (DWORD, "dwBumpBitCount"),
429 (DWORD, "dwPrivateFormatBitCount"),
430 (DWORD, "dwRBitMask"),
431 (DWORD, "dwYBitMask"),
432 (DWORD, "dwStencilBitDepth"),
433 (DWORD, "dwLuminanceBitMask"),
434 (DWORD, "dwBumpDuBitMask"),
435 (DWORD, "dwOperations"),
436 (DWORD, "dwGBitMask"),
437 (DWORD, "dwUBitMask"),
438 (DWORD, "dwZBitMask"),
439 (DWORD, "dwBumpDvBitMask"),
440 (WORD, "MultiSampleCaps.wFlipMSTypes"),
441 (WORD, "MultiSampleCaps.wBltMSTypes"),
442 (DWORD, "dwBBitMask"),
443 (DWORD, "dwVBitMask"),
444 (DWORD, "dwStencilBitMask"),
445 (DWORD, "dwBumpLuminanceBitMask"),
446 (DWORD, "dwRGBAlphaBitMask"),
447 (DWORD, "dwYUVAlphaBitMask"),
448 (DWORD, "dwLuminanceAlphaBitMask"),
449 (DWORD, "dwRGBZBitMask"),
450 (DWORD, "dwYUVZBitMask"),
451])
452LPDDPIXELFORMAT = Pointer(DDPIXELFORMAT)
453
454DDOVERLAYFX = Struct("DDOVERLAYFX", [
455 (DWORD, "dwSize"),
456 (DWORD, "dwAlphaEdgeBlendBitDepth"),
457 (DWORD, "dwAlphaEdgeBlend"),
458 (DWORD, "dwReserved"),
459 (DWORD, "dwAlphaDestConstBitDepth"),
460 (DWORD, "dwAlphaDestConst"),
461 (LPDIRECTDRAWSURFACE, "lpDDSAlphaDest"),
462 (DWORD, "dwAlphaSrcConstBitDepth"),
463 (DWORD, "dwAlphaSrcConst"),
464 (LPDIRECTDRAWSURFACE, "lpDDSAlphaSrc"),
465 (DDCOLORKEY, "dckDestColorkey"),
466 (DDCOLORKEY, "dckSrcColorkey"),
467 (DWORD, "dwDDFX"),
468 (DWORD, "dwFlags"),
469])
470LPDDOVERLAYFX = Pointer(DDOVERLAYFX)
471
472DDBLTBATCH = Struct("DDBLTBATCH", [
473 (LPRECT, "lprDest"),
474 (LPDIRECTDRAWSURFACE, "lpDDSSrc"),
475 (LPRECT, "lprSrc"),
476 (DWORD, "dwFlags"),
477 (LPDDBLTFX, "lpDDBltFx"),
478])
479LPDDBLTBATCH = Pointer(DDBLTBATCH)
480
481DDGAMMARAMP = Struct("DDGAMMARAMP", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100482 (Array(WORD, "256"), "red"),
483 (Array(WORD, "256"), "green"),
484 (Array(WORD, "256"), "blue"),
José Fonseca91af9232009-04-13 16:15:28 +0100485])
486LPDDGAMMARAMP = Pointer(DDGAMMARAMP)
487
488DDDEVICEIDENTIFIER = Struct("DDDEVICEIDENTIFIER", [
José Fonseca5f81c3a2010-11-24 08:42:22 +0000489 (CString, "szDriver"),
490 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100491 (LARGE_INTEGER, "liDriverVersion"),
492 (DWORD, "dwVendorId"),
493 (DWORD, "dwDeviceId"),
494 (DWORD, "dwSubSysId"),
495 (DWORD, "dwRevision"),
496 (GUID, "guidDeviceIdentifier"),
497])
498LPDDDEVICEIDENTIFIER = Pointer(DDDEVICEIDENTIFIER)
499
500DDDEVICEIDENTIFIER2 = Struct("DDDEVICEIDENTIFIER2", [
José Fonsecabb8760b2011-05-25 23:21:18 +0100501 (CString, "szDriver"),
502 (CString, "szDescription"),
José Fonseca91af9232009-04-13 16:15:28 +0100503 (LARGE_INTEGER, "liDriverVersion"),
504 (DWORD, "dwVendorId"),
505 (DWORD, "dwDeviceId"),
506 (DWORD, "dwSubSysId"),
507 (DWORD, "dwRevision"),
508 (GUID, "guidDeviceIdentifier"),
509 (DWORD, "dwWHQLLevel"),
510])
511LPDDDEVICEIDENTIFIER2 = Pointer(DDDEVICEIDENTIFIER2)
512
José Fonseca31524192010-11-22 21:05:26 +0000513LPCLIPPERCALLBACK = FunctionPointer("DWORD", "LPCLIPPERCALLBACK", [(LPDIRECTDRAWCLIPPER, "lpDDClipper"), (HWND, "hWnd"), (DWORD, "code"), (LPVOID, "lpContext")])
514LPSURFACESTREAMINGCALLBACK = FunctionPointer("DWORD", "LPSURFACESTREAMINGCALLBACK", [DWORD])
José Fonseca91af9232009-04-13 16:15:28 +0100515
516DDSURFACEDESC = Struct("DDSURFACEDESC", [
517 (DWORD, "dwSize"),
518 (DWORD, "dwFlags"),
519 (DWORD, "dwHeight"),
520 (DWORD, "dwWidth"),
521 (LONG, "lPitch"),
522 (DWORD, "dwLinearSize"),
523 (DWORD, "dwBackBufferCount"),
524 (DWORD, "dwMipMapCount"),
525 (DWORD, "dwZBufferBitDepth"),
526 (DWORD, "dwRefreshRate"),
527 (DWORD, "dwAlphaBitDepth"),
528 (DWORD, "dwReserved"),
529 (LPVOID, "lpSurface"),
530 (DDCOLORKEY, "ddckCKDestOverlay"),
531 (DDCOLORKEY, "ddckCKDestBlt"),
532 (DDCOLORKEY, "ddckCKSrcOverlay"),
533 (DDCOLORKEY, "ddckCKSrcBlt"),
534 (DDPIXELFORMAT, "ddpfPixelFormat"),
535 (DDSCAPS, "ddsCaps"),
536])
537LPDDSURFACEDESC = Pointer(DDSURFACEDESC)
538
539DDSURFACEDESC2 = Struct("DDSURFACEDESC2", [
540 (DWORD, "dwSize"),
541 (DWORD, "dwFlags"),
542 (DWORD, "dwHeight"),
543 (DWORD, "dwWidth"),
544 (LONG, "lPitch"),
545 (DWORD, "dwLinearSize"),
546 (DWORD, "dwBackBufferCount"),
547 (DWORD, "dwDepth"),
548 (DWORD, "dwMipMapCount"),
549 (DWORD, "dwRefreshRate"),
550 (DWORD, "dwSrcVBHandle"),
551 (DWORD, "dwAlphaBitDepth"),
552 (DWORD, "dwReserved"),
553 (LPVOID, "lpSurface"),
554 (DDCOLORKEY, "ddckCKDestOverlay"),
555 (DWORD, "dwEmptyFaceColor"),
556 (DDCOLORKEY, "ddckCKDestBlt"),
557 (DDCOLORKEY, "ddckCKSrcOverlay"),
558 (DDCOLORKEY, "ddckCKSrcBlt"),
559 (DDPIXELFORMAT, "ddpfPixelFormat"),
560 (DWORD, "dwFVF"),
561 (DDSCAPS2, "ddsCaps"),
562 (DWORD, "dwTextureStage"),
563])
564LPDDSURFACEDESC2 = Pointer(DDSURFACEDESC2)
565
566DDSD = Flags(DWORD, [
567 "DDSD_CAPS",
568 "DDSD_HEIGHT",
569 "DDSD_WIDTH",
570 "DDSD_PITCH",
571 "DDSD_BACKBUFFERCOUNT",
572 "DDSD_ZBUFFERBITDEPTH",
573 "DDSD_ALPHABITDEPTH",
574 "DDSD_LPSURFACE",
575 "DDSD_PIXELFORMAT",
576 "DDSD_CKDESTOVERLAY",
577 "DDSD_CKDESTBLT",
578 "DDSD_CKSRCOVERLAY",
579 "DDSD_CKSRCBLT",
580 "DDSD_MIPMAPCOUNT",
581 "DDSD_REFRESHRATE",
582 "DDSD_LINEARSIZE",
583 "DDSD_TEXTURESTAGE",
584 "DDSD_FVF",
585 "DDSD_SRCVBHANDLE",
586 "DDSD_DEPTH",
587 "DDSD_ALL",
588])
589
590DDOPTSURFACEDESC = Struct("DDOPTSURFACEDESC", [
591 (DWORD, "dwSize"),
592 (DWORD, "dwFlags"),
593 (DDSCAPS2, "ddSCaps"),
594 (DDOSCAPS, "ddOSCaps"),
595 (GUID, "guid"),
596 (DWORD, "dwCompressionRatio"),
597])
598
599DDSD = Flags(DWORD, [
600 "DDOSD_GUID",
601 "DDOSD_COMPRESSION_RATIO",
602 "DDOSD_SCAPS",
603 "DDOSD_OSCAPS",
604 "DDOSD_ALL",
605])
606
607DDOSDCAPS = Flags(DWORD, [
608 "DDOSDCAPS_OPTCOMPRESSED",
609 "DDOSDCAPS_OPTREORDERED",
610 "DDOSDCAPS_MONOLITHICMIPMAP",
611 "DDOSDCAPS_VALIDSCAPS",
612 "DDOSDCAPS_VALIDOSCAPS",
613])
614
615DDCOLORCONTROL = Struct("DDCOLORCONTROL", [
616 (DWORD, "dwSize"),
617 (DWORD, "dwFlags"),
618 (LONG, "lBrightness"),
619 (LONG, "lContrast"),
620 (LONG, "lHue"),
621 (LONG, "lSaturation"),
622 (LONG, "lSharpness"),
623 (LONG, "lGamma"),
624 (LONG, "lColorEnable"),
625 (DWORD, "dwReserved1"),
626])
627LPDDCOLORCONTROL = Pointer(DDCOLORCONTROL)
628
629DDCOLOR = Flags(DWORD, [
630 "DDCOLOR_BRIGHTNESS",
631 "DDCOLOR_CONTRAST",
632 "DDCOLOR_HUE",
633 "DDCOLOR_SATURATION",
634 "DDCOLOR_SHARPNESS",
635 "DDCOLOR_GAMMA",
636 "DDCOLOR_COLORENABLE",
637])
638
639DDSCAPS = Flags(DWORD, [
640 "DDSCAPS_RESERVED1",
641 "DDSCAPS_ALPHA",
642 "DDSCAPS_BACKBUFFER",
643 "DDSCAPS_COMPLEX",
644 "DDSCAPS_FLIP",
645 "DDSCAPS_FRONTBUFFER",
646 "DDSCAPS_OFFSCREENPLAIN",
647 "DDSCAPS_OVERLAY",
648 "DDSCAPS_PALETTE",
649 "DDSCAPS_PRIMARYSURFACE",
650 "DDSCAPS_RESERVED3",
651 "DDSCAPS_PRIMARYSURFACELEFT",
652 "DDSCAPS_SYSTEMMEMORY",
653 "DDSCAPS_TEXTURE",
654 "DDSCAPS_3DDEVICE",
655 "DDSCAPS_VIDEOMEMORY",
656 "DDSCAPS_VISIBLE",
657 "DDSCAPS_WRITEONLY",
658 "DDSCAPS_ZBUFFER",
659 "DDSCAPS_OWNDC",
660 "DDSCAPS_LIVEVIDEO",
661 "DDSCAPS_HWCODEC",
662 "DDSCAPS_MODEX",
663 "DDSCAPS_MIPMAP",
664 "DDSCAPS_RESERVED2",
665 "DDSCAPS_ALLOCONLOAD",
666 "DDSCAPS_VIDEOPORT",
667 "DDSCAPS_LOCALVIDMEM",
668 "DDSCAPS_NONLOCALVIDMEM",
669 "DDSCAPS_STANDARDVGAMODE",
670 "DDSCAPS_OPTIMIZED",
671])
672DDCAPS2 = Flags(DWORD, [
673 "DDSCAPS2_RESERVED4",
674 "DDSCAPS2_HARDWAREDEINTERLACE",
675 "DDSCAPS2_HINTDYNAMIC",
676 "DDSCAPS2_HINTSTATIC",
677 "DDSCAPS2_TEXTUREMANAGE",
678 "DDSCAPS2_RESERVED1",
679 "DDSCAPS2_RESERVED2",
680 "DDSCAPS2_OPAQUE",
681 "DDSCAPS2_HINTANTIALIASING",
682 "DDSCAPS2_CUBEMAP",
683 "DDSCAPS2_CUBEMAP_ALLFACES",
684 "DDSCAPS2_CUBEMAP_POSITIVEX",
685 "DDSCAPS2_CUBEMAP_NEGATIVEX",
686 "DDSCAPS2_CUBEMAP_POSITIVEY",
687 "DDSCAPS2_CUBEMAP_NEGATIVEY",
688 "DDSCAPS2_CUBEMAP_POSITIVEZ",
689 "DDSCAPS2_CUBEMAP_NEGATIVEZ",
690 "DDSCAPS2_MIPMAPSUBLEVEL",
691 "DDSCAPS2_D3DTEXTUREMANAGE",
692 "DDSCAPS2_DONOTPERSIST",
693 "DDSCAPS2_STEREOSURFACELEFT",
694 "DDSCAPS2_VOLUME",
695 "DDSCAPS2_NOTUSERLOCKABLE",
696 "DDSCAPS2_POINTS",
697 "DDSCAPS2_RTPATCHES",
698 "DDSCAPS2_NPATCHES",
699 "DDSCAPS2_RESERVED3",
700 "DDSCAPS2_DISCARDBACKBUFFER",
701 "DDSCAPS2_ENABLEALPHACHANNEL",
702 "DDSCAPS2_EXTENDEDFORMATPRIMARY",
703 "DDSCAPS2_ADDITIONALPRIMARY",
704])
705DDSCAPS3 = Flags(DWORD, [
706 "DDSCAPS3_MULTISAMPLE_MASK",
707 "DDSCAPS3_MULTISAMPLE_QUALITY_MASK",
708 "DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT",
709 "DDSCAPS3_RESERVED1",
710 "DDSCAPS3_RESERVED2",
711 "DDSCAPS3_LIGHTWEIGHTMIPMAP",
712 "DDSCAPS3_AUTOGENMIPMAP",
713 "DDSCAPS3_DMAP",
714 "DDSCAPS3_CREATESHAREDRESOURCE",
715 "DDSCAPS3_READONLYRESOURCE",
716 "DDSCAPS3_OPENSHAREDRESOURCE",
717])
718
719DDCAPS = Flags(DWORD, [
720 "DDCAPS_3D",
721 "DDCAPS_ALIGNBOUNDARYDEST",
722 "DDCAPS_ALIGNSIZEDEST",
723 "DDCAPS_ALIGNBOUNDARYSRC",
724 "DDCAPS_ALIGNSIZESRC",
725 "DDCAPS_ALIGNSTRIDE",
726 "DDCAPS_BLT",
727 "DDCAPS_BLTQUEUE",
728 "DDCAPS_BLTFOURCC",
729 "DDCAPS_BLTSTRETCH",
730 "DDCAPS_GDI",
731 "DDCAPS_OVERLAY",
732 "DDCAPS_OVERLAYCANTCLIP",
733 "DDCAPS_OVERLAYFOURCC",
734 "DDCAPS_OVERLAYSTRETCH",
735 "DDCAPS_PALETTE",
736 "DDCAPS_PALETTEVSYNC",
737 "DDCAPS_READSCANLINE",
738 "DDCAPS_RESERVED1",
739 "DDCAPS_VBI",
740 "DDCAPS_ZBLTS",
741 "DDCAPS_ZOVERLAYS",
742 "DDCAPS_COLORKEY",
743 "DDCAPS_ALPHA",
744 "DDCAPS_COLORKEYHWASSIST",
745 "DDCAPS_NOHARDWARE",
746 "DDCAPS_BLTCOLORFILL",
747 "DDCAPS_BANKSWITCHED",
748 "DDCAPS_BLTDEPTHFILL",
749 "DDCAPS_CANCLIP",
750 "DDCAPS_CANCLIPSTRETCHED",
751 "DDCAPS_CANBLTSYSMEM",
752])
753
754DDCAPS2 = Flags(DWORD, [
755 "DDCAPS2_CERTIFIED",
756 "DDCAPS2_NO2DDURING3DSCENE",
757 "DDCAPS2_VIDEOPORT",
758 "DDCAPS2_AUTOFLIPOVERLAY",
759 "DDCAPS2_CANBOBINTERLEAVED",
760 "DDCAPS2_CANBOBNONINTERLEAVED",
761 "DDCAPS2_COLORCONTROLOVERLAY",
762 "DDCAPS2_COLORCONTROLPRIMARY",
763 "DDCAPS2_CANDROPZ16BIT",
764 "DDCAPS2_NONLOCALVIDMEM",
765 "DDCAPS2_NONLOCALVIDMEMCAPS",
766 "DDCAPS2_NOPAGELOCKREQUIRED",
767 "DDCAPS2_WIDESURFACES",
768 "DDCAPS2_CANFLIPODDEVEN",
769 "DDCAPS2_CANBOBHARDWARE",
770 "DDCAPS2_COPYFOURCC",
771 "DDCAPS2_PRIMARYGAMMA",
772 "DDCAPS2_CANRENDERWINDOWED",
773 "DDCAPS2_CANCALIBRATEGAMMA",
774 "DDCAPS2_FLIPINTERVAL",
775 "DDCAPS2_FLIPNOVSYNC",
776 "DDCAPS2_CANMANAGETEXTURE",
777 "DDCAPS2_TEXMANINNONLOCALVIDMEM",
778 "DDCAPS2_STEREO",
779 "DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL",
780 "DDCAPS2_RESERVED1",
781 "DDCAPS2_CANMANAGERESOURCE",
782 "DDCAPS2_DYNAMICTEXTURES",
783 "DDCAPS2_CANAUTOGENMIPMAP",
784 "DDCAPS2_CANSHARERESOURCE",
785])
786
787DDFXALPHACAPS = Flags(DWORD, [
788 "DDFXALPHACAPS_BLTALPHAEDGEBLEND",
789 "DDFXALPHACAPS_BLTALPHAPIXELS",
790 "DDFXALPHACAPS_BLTALPHAPIXELSNEG",
791 "DDFXALPHACAPS_BLTALPHASURFACES",
792 "DDFXALPHACAPS_BLTALPHASURFACESNEG",
793 "DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND",
794 "DDFXALPHACAPS_OVERLAYALPHAPIXELS",
795 "DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG",
796 "DDFXALPHACAPS_OVERLAYALPHASURFACES",
797 "DDFXALPHACAPS_OVERLAYALPHASURFACESNEG",
798])
799
800DDFXCAPS = Flags(DWORD, [
801 "DDFXCAPS_BLTARITHSTRETCHY",
802 "DDFXCAPS_BLTARITHSTRETCHYN",
803 "DDFXCAPS_BLTMIRRORLEFTRIGHT",
804 "DDFXCAPS_BLTMIRRORUPDOWN",
805 "DDFXCAPS_BLTROTATION",
806 "DDFXCAPS_BLTROTATION90",
807 "DDFXCAPS_BLTSHRINKX",
808 "DDFXCAPS_BLTSHRINKXN",
809 "DDFXCAPS_BLTSHRINKY",
810 "DDFXCAPS_BLTSHRINKYN",
811 "DDFXCAPS_BLTSTRETCHX",
812 "DDFXCAPS_BLTSTRETCHXN",
813 "DDFXCAPS_BLTSTRETCHY",
814 "DDFXCAPS_BLTSTRETCHYN",
815 "DDFXCAPS_OVERLAYARITHSTRETCHY",
816 "DDFXCAPS_OVERLAYARITHSTRETCHYN",
817 "DDFXCAPS_OVERLAYSHRINKX",
818 "DDFXCAPS_OVERLAYSHRINKXN",
819 "DDFXCAPS_OVERLAYSHRINKY",
820 "DDFXCAPS_OVERLAYSHRINKYN",
821 "DDFXCAPS_OVERLAYSTRETCHX",
822 "DDFXCAPS_OVERLAYSTRETCHXN",
823 "DDFXCAPS_OVERLAYSTRETCHY",
824 "DDFXCAPS_OVERLAYSTRETCHYN",
825 "DDFXCAPS_OVERLAYMIRRORLEFTRIGHT",
826 "DDFXCAPS_OVERLAYMIRRORUPDOWN",
827 "DDFXCAPS_OVERLAYDEINTERLACE",
828 "DDFXCAPS_BLTALPHA",
829 "DDFXCAPS_BLTFILTER",
830 "DDFXCAPS_OVERLAYALPHA",
831 "DDFXCAPS_OVERLAYFILTER",
832])
833
834DDSVCAPS = Flags(DWORD, [
835 "DDSVCAPS_RESERVED1",
836 "DDSVCAPS_RESERVED2",
837 "DDSVCAPS_RESERVED3",
838 "DDSVCAPS_RESERVED4",
839 "DDSVCAPS_STEREOSEQUENTIAL",
840])
841
842DDPCAPS = Flags(DWORD, [
843 "DDPCAPS_4BIT",
844 "DDPCAPS_8BITENTRIES",
845 "DDPCAPS_8BIT",
846 "DDPCAPS_INITIALIZE",
847 "DDPCAPS_PRIMARYSURFACE",
848 "DDPCAPS_PRIMARYSURFACELEFT",
849 "DDPCAPS_ALLOW256",
850 "DDPCAPS_VSYNC",
851 "DDPCAPS_1BIT",
852 "DDPCAPS_2BIT",
853 "DDPCAPS_ALPHA",
854])
855
856DDSPD = Flags(DWORD, [
857 "DDSPD_IUNKNOWNPOINTER",
858 "DDSPD_VOLATILE",
859])
860
861DDBD = Flags(DWORD, [
862 "DDBD_1",
863 "DDBD_2",
864 "DDBD_4",
865 "DDBD_8",
866 "DDBD_16",
867 "DDBD_24",
868 "DDBD_32",
869])
870
871DDCKEY = Flags(DWORD, [
872 "DDCKEY_COLORSPACE",
873 "DDCKEY_DESTBLT",
874 "DDCKEY_DESTOVERLAY",
875 "DDCKEY_SRCBLT",
876 "DDCKEY_SRCOVERLAY",
877])
878
879DDCKEYCAPS = Flags(DWORD, [
880 "DDCKEYCAPS_DESTBLT",
881 "DDCKEYCAPS_DESTBLTCLRSPACE",
882 "DDCKEYCAPS_DESTBLTCLRSPACEYUV",
883 "DDCKEYCAPS_DESTBLTYUV",
884 "DDCKEYCAPS_DESTOVERLAY",
885 "DDCKEYCAPS_DESTOVERLAYCLRSPACE",
886 "DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV",
887 "DDCKEYCAPS_DESTOVERLAYONEACTIVE",
888 "DDCKEYCAPS_DESTOVERLAYYUV",
889 "DDCKEYCAPS_SRCBLT",
890 "DDCKEYCAPS_SRCBLTCLRSPACE",
891 "DDCKEYCAPS_SRCBLTCLRSPACEYUV",
892 "DDCKEYCAPS_SRCBLTYUV",
893 "DDCKEYCAPS_SRCOVERLAY",
894 "DDCKEYCAPS_SRCOVERLAYCLRSPACE",
895 "DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV",
896 "DDCKEYCAPS_SRCOVERLAYONEACTIVE",
897 "DDCKEYCAPS_SRCOVERLAYYUV",
898 "DDCKEYCAPS_NOCOSTOVERLAY",
899])
900
901DDPF = Flags(DWORD, [
902 "DDPF_ALPHAPIXELS",
903 "DDPF_ALPHA",
904 "DDPF_FOURCC",
905 "DDPF_PALETTEINDEXED4",
906 "DDPF_PALETTEINDEXEDTO8",
907 "DDPF_PALETTEINDEXED8",
908 "DDPF_RGB",
909 "DDPF_COMPRESSED",
910 "DDPF_RGBTOYUV",
911 "DDPF_YUV",
912 "DDPF_ZBUFFER",
913 "DDPF_PALETTEINDEXED1",
914 "DDPF_PALETTEINDEXED2",
915 "DDPF_ZPIXELS",
916 "DDPF_STENCILBUFFER",
917 "DDPF_ALPHAPREMULT",
918 "DDPF_LUMINANCE",
919 "DDPF_BUMPLUMINANCE",
920 "DDPF_BUMPDUDV",
921])
922
923DDENUMSURFACES = Flags(DWORD, [
924 "DDENUMSURFACES_ALL",
925 "DDENUMSURFACES_MATCH",
926 "DDENUMSURFACES_NOMATCH",
927 "DDENUMSURFACES_CANBECREATED",
928 "DDENUMSURFACES_DOESEXIST",
929])
930
931DDSDM = Flags(DWORD, [
932 "DDSDM_STANDARDVGAMODE",
933])
934
935DDEDM = Flags(DWORD, [
936 "DDEDM_REFRESHRATES",
937 "DDEDM_STANDARDVGAMODES",
938])
939
940DDSCL = Flags(DWORD, [
941 "DDSCL_FULLSCREEN",
942 "DDSCL_ALLOWREBOOT",
943 "DDSCL_NOWINDOWCHANGES",
944 "DDSCL_NORMAL",
945 "DDSCL_EXCLUSIVE",
946 "DDSCL_ALLOWMODEX",
947 "DDSCL_SETFOCUSWINDOW",
948 "DDSCL_SETDEVICEWINDOW",
949 "DDSCL_CREATEDEVICEWINDOW",
950 "DDSCL_MULTITHREADED",
951 "DDSCL_FPUSETUP",
952 "DDSCL_FPUPRESERVE",
953])
954
955DDBLT = Flags(DWORD, [
956 "DDBLT_ALPHADEST",
957 "DDBLT_ALPHADESTCONSTOVERRIDE",
958 "DDBLT_ALPHADESTNEG",
959 "DDBLT_ALPHADESTSURFACEOVERRIDE",
960 "DDBLT_ALPHAEDGEBLEND",
961 "DDBLT_ALPHASRC",
962 "DDBLT_ALPHASRCCONSTOVERRIDE",
963 "DDBLT_ALPHASRCNEG",
964 "DDBLT_ALPHASRCSURFACEOVERRIDE",
965 "DDBLT_ASYNC",
966 "DDBLT_COLORFILL",
967 "DDBLT_DDFX",
968 "DDBLT_DDROPS",
969 "DDBLT_KEYDEST",
970 "DDBLT_KEYDESTOVERRIDE",
971 "DDBLT_KEYSRC",
972 "DDBLT_KEYSRCOVERRIDE",
973 "DDBLT_ROP",
974 "DDBLT_ROTATIONANGLE",
975 "DDBLT_ZBUFFER",
976 "DDBLT_ZBUFFERDESTCONSTOVERRIDE",
977 "DDBLT_ZBUFFERDESTOVERRIDE",
978 "DDBLT_ZBUFFERSRCCONSTOVERRIDE",
979 "DDBLT_ZBUFFERSRCOVERRIDE",
980 "DDBLT_WAIT",
981 "DDBLT_DEPTHFILL",
982 "DDBLT_DONOTWAIT",
983 "DDBLT_PRESENTATION",
984 "DDBLT_LAST_PRESENTATION",
985 "DDBLT_EXTENDED_FLAGS",
986 "DDBLT_EXTENDED_LINEAR_CONTENT",
987])
988
989DDBLTFAST = Flags(DWORD, [
990 "DDBLTFAST_NOCOLORKEY",
991 "DDBLTFAST_SRCCOLORKEY",
992 "DDBLTFAST_DESTCOLORKEY",
993 "DDBLTFAST_WAIT",
994 "DDBLTFAST_DONOTWAIT",
995])
996
997DDFLIP = Flags(DWORD, [
998 "DDFLIP_WAIT",
999 "DDFLIP_EVEN",
1000 "DDFLIP_ODD",
1001 "DDFLIP_NOVSYNC",
1002 "DDFLIP_INTERVAL2",
1003 "DDFLIP_INTERVAL3",
1004 "DDFLIP_INTERVAL4",
1005 "DDFLIP_STEREO",
1006 "DDFLIP_DONOTWAIT",
1007])
1008
1009DDOVER = Flags(DWORD, [
1010 "DDOVER_ALPHADEST",
1011 "DDOVER_ALPHADESTCONSTOVERRIDE",
1012 "DDOVER_ALPHADESTNEG",
1013 "DDOVER_ALPHADESTSURFACEOVERRIDE",
1014 "DDOVER_ALPHAEDGEBLEND",
1015 "DDOVER_ALPHASRC",
1016 "DDOVER_ALPHASRCCONSTOVERRIDE",
1017 "DDOVER_ALPHASRCNEG",
1018 "DDOVER_ALPHASRCSURFACEOVERRIDE",
1019 "DDOVER_HIDE",
1020 "DDOVER_KEYDEST",
1021 "DDOVER_KEYDESTOVERRIDE",
1022 "DDOVER_KEYSRC",
1023 "DDOVER_KEYSRCOVERRIDE",
1024 "DDOVER_SHOW",
1025 "DDOVER_ADDDIRTYRECT",
1026 "DDOVER_REFRESHDIRTYRECTS",
1027 "DDOVER_REFRESHALL",
1028 "DDOVER_DDFX",
1029 "DDOVER_AUTOFLIP",
1030 "DDOVER_BOB",
1031 "DDOVER_OVERRIDEBOBWEAVE",
1032 "DDOVER_INTERLEAVED",
1033 "DDOVER_BOBHARDWARE",
1034 "DDOVER_ARGBSCALEFACTORS",
1035 "DDOVER_DEGRADEARGBSCALING",
1036])
1037
1038DDSETSURFACEDESC = Flags(DWORD, [
1039 #"DDSETSURFACEDESC_RECREATEDC",
1040 #"DDSETSURFACEDESC_PRESERVEDC",
1041])
1042
1043DDLOCK = Flags(DWORD, [
1044 "DDLOCK_SURFACEMEMORYPTR",
1045 "DDLOCK_WAIT",
1046 "DDLOCK_EVENT",
1047 "DDLOCK_READONLY",
1048 "DDLOCK_WRITEONLY",
1049 "DDLOCK_NOSYSLOCK",
1050 "DDLOCK_NOOVERWRITE",
1051 "DDLOCK_DISCARDCONTENTS",
1052 "DDLOCK_OKTOSWAP",
1053 "DDLOCK_DONOTWAIT",
1054 "DDLOCK_HASVOLUMETEXTUREBOXRECT",
1055 "DDLOCK_NODIRTYUPDATE",
1056])
1057
1058DDBLTFX = Flags(DWORD, [
1059 "DDBLTFX_ARITHSTRETCHY",
1060 "DDBLTFX_MIRRORLEFTRIGHT",
1061 "DDBLTFX_MIRRORUPDOWN",
1062 "DDBLTFX_NOTEARING",
1063 "DDBLTFX_ROTATE180",
1064 "DDBLTFX_ROTATE270",
1065 "DDBLTFX_ROTATE90",
1066 "DDBLTFX_ZBUFFERRANGE",
1067 "DDBLTFX_ZBUFFERBASEDEST",
1068])
1069
1070DDOVERFX = Flags(DWORD, [
1071 "DDOVERFX_ARITHSTRETCHY",
1072 "DDOVERFX_MIRRORLEFTRIGHT",
1073 "DDOVERFX_MIRRORUPDOWN",
1074 "DDOVERFX_DEINTERLACE",
1075])
1076
1077DDWAITVB = Flags(DWORD, [
1078 "DDWAITVB_BLOCKBEGIN",
1079 "DDWAITVB_BLOCKBEGINEVENT",
1080 "DDWAITVB_BLOCKEND",
1081])
1082
1083DDGFS = Flags(DWORD, [
1084 "DDGFS_CANFLIP",
1085 "DDGFS_ISFLIPDONE",
1086])
1087
1088DDGBS = Flags(DWORD, [
1089 "DDGBS_CANBLT",
1090 "DDGBS_ISBLTDONE",
1091])
1092
1093DDENUMOVERLAYZ = Flags(DWORD, [
1094 "DDENUMOVERLAYZ_BACKTOFRONT",
1095 "DDENUMOVERLAYZ_FRONTTOBACK",
1096])
1097
1098DDOVERZ = Flags(DWORD, [
1099 "DDOVERZ_SENDTOFRONT",
1100 "DDOVERZ_SENDTOBACK",
1101 "DDOVERZ_MOVEFORWARD",
1102 "DDOVERZ_MOVEBACKWARD",
1103 "DDOVERZ_INSERTINFRONTOF",
1104 "DDOVERZ_INSERTINBACKOF",
1105])
1106
1107DDSGR = Flags(DWORD, [
1108 "DDSGR_CALIBRATE",
1109])
1110
1111DDSMT = Flags(DWORD, [
1112 "DDSMT_ISTESTREQUIRED",
1113])
1114
1115DDEM = Flags(DWORD, [
1116 "DDEM_MODEPASSED",
1117 "DDEM_MODEFAILED",
1118])
1119
1120HRESULT = Enum("HRESULT", [
1121 "DD_OK",
1122 "DD_FALSE",
1123 "DDERR_ALREADYINITIALIZED",
1124 "DDERR_CANNOTATTACHSURFACE",
1125 "DDERR_CANNOTDETACHSURFACE",
1126 "DDERR_CURRENTLYNOTAVAIL",
1127 "DDERR_EXCEPTION",
1128 "DDERR_GENERIC",
1129 "DDERR_HEIGHTALIGN",
1130 "DDERR_INCOMPATIBLEPRIMARY",
1131 "DDERR_INVALIDCAPS",
1132 "DDERR_INVALIDCLIPLIST",
1133 "DDERR_INVALIDMODE",
1134 "DDERR_INVALIDOBJECT",
1135 "DDERR_INVALIDPARAMS",
1136 "DDERR_INVALIDPIXELFORMAT",
1137 "DDERR_INVALIDRECT",
1138 "DDERR_LOCKEDSURFACES",
1139 "DDERR_NO3D",
1140 "DDERR_NOALPHAHW",
1141 "DDERR_NOSTEREOHARDWARE",
1142 "DDERR_NOSURFACELEFT",
1143 "DDERR_NOCLIPLIST",
1144 "DDERR_NOCOLORCONVHW",
1145 "DDERR_NOCOOPERATIVELEVELSET",
1146 "DDERR_NOCOLORKEY",
1147 "DDERR_NOCOLORKEYHW",
1148 "DDERR_NODIRECTDRAWSUPPORT",
1149 "DDERR_NOEXCLUSIVEMODE",
1150 "DDERR_NOFLIPHW",
1151 "DDERR_NOGDI",
1152 "DDERR_NOMIRRORHW",
1153 "DDERR_NOTFOUND",
1154 "DDERR_NOOVERLAYHW",
1155 "DDERR_OVERLAPPINGRECTS",
1156 "DDERR_NORASTEROPHW",
1157 "DDERR_NOROTATIONHW",
1158 "DDERR_NOSTRETCHHW",
1159 "DDERR_NOT4BITCOLOR",
1160 "DDERR_NOT4BITCOLORINDEX",
1161 "DDERR_NOT8BITCOLOR",
1162 "DDERR_NOTEXTUREHW",
1163 "DDERR_NOVSYNCHW",
1164 "DDERR_NOZBUFFERHW",
1165 "DDERR_NOZOVERLAYHW",
1166 "DDERR_OUTOFCAPS",
1167 "DDERR_OUTOFMEMORY",
1168 "DDERR_OUTOFVIDEOMEMORY",
1169 "DDERR_OVERLAYCANTCLIP",
1170 "DDERR_OVERLAYCOLORKEYONLYONEACTIVE",
1171 "DDERR_PALETTEBUSY",
1172 "DDERR_COLORKEYNOTSET",
1173 "DDERR_SURFACEALREADYATTACHED",
1174 "DDERR_SURFACEALREADYDEPENDENT",
1175 "DDERR_SURFACEBUSY",
1176 "DDERR_CANTLOCKSURFACE",
1177 "DDERR_SURFACEISOBSCURED",
1178 "DDERR_SURFACELOST",
1179 "DDERR_SURFACENOTATTACHED",
1180 "DDERR_TOOBIGHEIGHT",
1181 "DDERR_TOOBIGSIZE",
1182 "DDERR_TOOBIGWIDTH",
1183 "DDERR_UNSUPPORTED",
1184 "DDERR_UNSUPPORTEDFORMAT",
1185 "DDERR_UNSUPPORTEDMASK",
1186 "DDERR_INVALIDSTREAM",
1187 "DDERR_VERTICALBLANKINPROGRESS",
1188 "DDERR_WASSTILLDRAWING",
1189 "DDERR_DDSCAPSCOMPLEXREQUIRED",
1190 "DDERR_XALIGN",
1191 "DDERR_INVALIDDIRECTDRAWGUID",
1192 "DDERR_DIRECTDRAWALREADYCREATED",
1193 "DDERR_NODIRECTDRAWHW",
1194 "DDERR_PRIMARYSURFACEALREADYEXISTS",
1195 "DDERR_NOEMULATION",
1196 "DDERR_REGIONTOOSMALL",
1197 "DDERR_CLIPPERISUSINGHWND",
1198 "DDERR_NOCLIPPERATTACHED",
1199 "DDERR_NOHWND",
1200 "DDERR_HWNDSUBCLASSED",
1201 "DDERR_HWNDALREADYSET",
1202 "DDERR_NOPALETTEATTACHED",
1203 "DDERR_NOPALETTEHW",
1204 "DDERR_BLTFASTCANTCLIP",
1205 "DDERR_NOBLTHW",
1206 "DDERR_NODDROPSHW",
1207 "DDERR_OVERLAYNOTVISIBLE",
1208 "DDERR_NOOVERLAYDEST",
1209 "DDERR_INVALIDPOSITION",
1210 "DDERR_NOTAOVERLAYSURFACE",
1211 "DDERR_EXCLUSIVEMODEALREADYSET",
1212 "DDERR_NOTFLIPPABLE",
1213 "DDERR_CANTDUPLICATE",
1214 "DDERR_NOTLOCKED",
1215 "DDERR_CANTCREATEDC",
1216 "DDERR_NODC",
1217 "DDERR_WRONGMODE",
1218 "DDERR_IMPLICITLYCREATED",
1219 "DDERR_NOTPALETTIZED",
1220 "DDERR_UNSUPPORTEDMODE",
1221 "DDERR_NOMIPMAPHW",
1222 "DDERR_INVALIDSURFACETYPE",
1223 "DDERR_NOOPTIMIZEHW",
1224 "DDERR_NOTLOADED",
1225 "DDERR_NOFOCUSWINDOW",
1226 "DDERR_NOTONMIPMAPSUBLEVEL",
1227 "DDERR_DCALREADYCREATED",
1228 "DDERR_NONONLOCALVIDMEM",
1229 "DDERR_CANTPAGELOCK",
1230 "DDERR_CANTPAGEUNLOCK",
1231 "DDERR_NOTPAGELOCKED",
1232 "DDERR_MOREDATA",
1233 "DDERR_EXPIRED",
1234 "DDERR_TESTFINISHED",
1235 "DDERR_NEWMODE",
1236 "DDERR_D3DNOTINITIALIZED",
1237 "DDERR_VIDEONOTACTIVE",
1238 "DDERR_NOMONITORINFORMATION",
1239 "DDERR_NODRIVERSUPPORT",
1240 "DDERR_DEVICEDOESNTOWNSURFACE",
1241 "DDERR_NOTINITIALIZED",
1242])
1243
José Fonseca31524192010-11-22 21:05:26 +00001244LPDDENUMMODESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK", [LPDDSURFACEDESC, LPVOID])
1245LPDDENUMMODESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMMODESCALLBACK2", [LPDDSURFACEDESC2, LPVOID])
1246LPDDENUMSURFACESCALLBACK = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK", [LPDIRECTDRAWSURFACE, LPDDSURFACEDESC, LPVOID])
1247LPDDENUMSURFACESCALLBACK2 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK2", [LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID])
1248LPDDENUMSURFACESCALLBACK7 = FunctionPointer(HRESULT, "LPDDENUMSURFACESCALLBACK7", [LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID])
José Fonseca91af9232009-04-13 16:15:28 +01001249
1250IDirectDraw.methods += [
1251 Method(HRESULT, "Compact", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001252 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER), Pointer(IUnknown)]),
1253 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001254 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), Pointer(IUnknown)]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001255 Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE)]),
1256 Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK]),
1257 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK]),
José Fonseca91af9232009-04-13 16:15:28 +01001258 Method(HRESULT, "FlipToGDISurface", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001259 Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001260 Method(HRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001261 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
1262 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001263 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1264 Method(HRESULT, "GetScanLine", [LPDWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001265 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
1266 Method(HRESULT, "Initialize", [Pointer(GUID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001267 Method(HRESULT, "RestoreDisplayMode", []),
1268 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1269 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001270 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
José Fonseca91af9232009-04-13 16:15:28 +01001271]
1272
1273IDirectDraw2.methods += [
1274 Method(HRESULT, "Compact", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001275 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown)]),
1276 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001277 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC, Out(Pointer(LPDIRECTDRAWSURFACE), "lplpDDSurface"), Pointer(IUnknown)]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001278 Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE, Pointer(LPDIRECTDRAWSURFACE)]),
1279 Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC, LPVOID, LPDDENUMMODESCALLBACK]),
1280 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC, LPVOID,LPDDENUMSURFACESCALLBACK]),
José Fonseca91af9232009-04-13 16:15:28 +01001281 Method(HRESULT, "FlipToGDISurface", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001282 Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001283 Method(HRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC, "lpDDSurfaceDesc")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001284 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
1285 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001286 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1287 Method(HRESULT, "GetScanLine", [LPDWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001288 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
1289 Method(HRESULT, "Initialize", [Pointer(GUID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001290 Method(HRESULT, "RestoreDisplayMode", []),
1291 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1292 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001293 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
José Fonseca91af9232009-04-13 16:15:28 +01001294 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS, LPDWORD, LPDWORD]),
1295]
1296
1297IDirectDraw4.methods += [
1298 Method(HRESULT, "Compact", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001299 Method(HRESULT, "CreateClipper", [DWORD, Pointer(LPDIRECTDRAWCLIPPER) , Pointer(IUnknown)]),
1300 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001301 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Out(Pointer(LPDIRECTDRAWSURFACE4), "lplpDDSurface"), Pointer(IUnknown)]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001302 Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE4, Pointer(LPDIRECTDRAWSURFACE4)]),
1303 Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2]),
1304 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK2]),
José Fonseca91af9232009-04-13 16:15:28 +01001305 Method(HRESULT, "FlipToGDISurface", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001306 Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001307 Method(HRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001308 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
1309 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE4)]),
José Fonseca91af9232009-04-13 16:15:28 +01001310 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1311 Method(HRESULT, "GetScanLine", [LPDWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001312 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
1313 Method(HRESULT, "Initialize", [Pointer(GUID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001314 Method(HRESULT, "RestoreDisplayMode", []),
1315 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1316 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001317 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
José Fonseca91af9232009-04-13 16:15:28 +01001318 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
1319 Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE4)]),
1320 Method(HRESULT, "RestoreAllSurfaces", []),
1321 Method(HRESULT, "TestCooperativeLevel", []),
José Fonsecabb8760b2011-05-25 23:21:18 +01001322 Method(HRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER, "lpDDDeviceIdentifier"), DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001323]
1324
1325IDirectDraw7.methods += [
1326 Method(HRESULT, "Compact", []),
José Fonsecabb8760b2011-05-25 23:21:18 +01001327 Method(HRESULT, "CreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001328 Method(HRESULT, "CreatePalette", [DWORD, LPPALETTEENTRY, Pointer(LPDIRECTDRAWPALETTE) , Pointer(IUnknown)]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001329 Method(HRESULT, "CreateSurface", [LPDDSURFACEDESC2, Out(Pointer(LPDIRECTDRAWSURFACE7), "lplpDDSurface") , Pointer(IUnknown)]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001330 Method(HRESULT, "DuplicateSurface", [LPDIRECTDRAWSURFACE7, Pointer(LPDIRECTDRAWSURFACE7)]),
1331 Method(HRESULT, "EnumDisplayModes", [DWORD, LPDDSURFACEDESC2, LPVOID, LPDDENUMMODESCALLBACK2]),
1332 Method(HRESULT, "EnumSurfaces", [DWORD, LPDDSURFACEDESC2, LPVOID,LPDDENUMSURFACESCALLBACK7]),
José Fonseca91af9232009-04-13 16:15:28 +01001333 Method(HRESULT, "FlipToGDISurface", []),
José Fonseca8384ccb2011-05-25 10:12:02 +01001334 Method(HRESULT, "GetCaps", [LPDDCAPS, LPDDCAPS]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001335 Method(HRESULT, "GetDisplayMode", [Out(LPDDSURFACEDESC2, "lpDDSurfaceDesc")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001336 Method(HRESULT, "GetFourCCCodes", [LPDWORD, LPDWORD]),
1337 Method(HRESULT, "GetGDISurface", [Pointer(LPDIRECTDRAWSURFACE7)]),
José Fonseca91af9232009-04-13 16:15:28 +01001338 Method(HRESULT, "GetMonitorFrequency", [LPDWORD]),
1339 Method(HRESULT, "GetScanLine", [LPDWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001340 Method(HRESULT, "GetVerticalBlankStatus", [LPBOOL]),
1341 Method(HRESULT, "Initialize", [Pointer(GUID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001342 Method(HRESULT, "RestoreDisplayMode", []),
1343 Method(HRESULT, "SetCooperativeLevel", [HWND, DWORD]),
1344 Method(HRESULT, "SetDisplayMode", [DWORD, DWORD,DWORD, DWORD, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001345 Method(HRESULT, "WaitForVerticalBlank", [DWORD, HANDLE]),
José Fonseca91af9232009-04-13 16:15:28 +01001346 Method(HRESULT, "GetAvailableVidMem", [LPDDSCAPS2, LPDWORD, LPDWORD]),
1347 Method(HRESULT, "GetSurfaceFromDC", [HDC, Pointer(LPDIRECTDRAWSURFACE7)]),
1348 Method(HRESULT, "RestoreAllSurfaces", []),
1349 Method(HRESULT, "TestCooperativeLevel", []),
José Fonsecabb8760b2011-05-25 23:21:18 +01001350 Method(HRESULT, "GetDeviceIdentifier", [Out(LPDDDEVICEIDENTIFIER2, "lpDDDeviceIdentifier"), DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001351 Method(HRESULT, "StartModeTest", [LPSIZE, DWORD, DWORD]),
1352 Method(HRESULT, "EvaluateMode", [DWORD, Pointer(DWORD)]),
José Fonseca91af9232009-04-13 16:15:28 +01001353]
1354
1355IDirectDrawPalette.methods += [
1356 Method(HRESULT, "GetCaps", [LPDWORD]),
1357 Method(HRESULT, "GetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
1358 Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD, LPPALETTEENTRY]),
1359 Method(HRESULT, "SetEntries", [DWORD,DWORD,DWORD,LPPALETTEENTRY]),
1360]
1361
1362IDirectDrawClipper.methods += [
1363 Method(HRESULT, "GetClipList", [LPRECT, LPRGNDATA, LPDWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001364 Method(HRESULT, "GetHWnd", [Pointer(HWND)]),
José Fonseca91af9232009-04-13 16:15:28 +01001365 Method(HRESULT, "Initialize", [LPDIRECTDRAW, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001366 Method(HRESULT, "IsClipListChanged", [Pointer(BOOL)]),
José Fonseca91af9232009-04-13 16:15:28 +01001367 Method(HRESULT, "SetClipList", [LPRGNDATA,DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001368 Method(HRESULT, "SetHWnd", [DWORD, HWND]),
José Fonseca91af9232009-04-13 16:15:28 +01001369]
1370
1371
1372IDirectDrawSurface.methods += [
1373 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE]),
1374 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1375 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE, LPRECT,DWORD, LPDDBLTFX]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001376 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001377 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE, LPRECT,DWORD]),
1378 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE]),
1379 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1380 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1381 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001382 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001383 Method(HRESULT, "GetBltStatus", [DWORD]),
1384 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001385 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
José Fonseca91af9232009-04-13 16:15:28 +01001386 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001387 Method(HRESULT, "GetDC", [Pointer(HDC)]),
José Fonseca91af9232009-04-13 16:15:28 +01001388 Method(HRESULT, "GetFlipStatus", [DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001389 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
1390 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001391 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1392 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1393 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1394 Method(HRESULT, "IsLost", []),
1395 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1396 Method(HRESULT, "ReleaseDC", [HDC]),
1397 Method(HRESULT, "Restore", []),
1398 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1399 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001400 Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
José Fonseca91af9232009-04-13 16:15:28 +01001401 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1402 Method(HRESULT, "Unlock", [LPVOID]),
1403 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE,LPRECT,DWORD, LPDDOVERLAYFX]),
1404 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1405 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE]),
1406]
1407
1408IDirectDrawSurface2.methods += [
1409 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE2]),
1410 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1411 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE2, LPRECT,DWORD, LPDDBLTFX]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001412 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001413 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE2, LPRECT,DWORD]),
1414 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE2]),
1415 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1416 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1417 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE2, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001418 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE2)]),
José Fonseca91af9232009-04-13 16:15:28 +01001419 Method(HRESULT, "GetBltStatus", [DWORD]),
1420 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001421 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
José Fonseca91af9232009-04-13 16:15:28 +01001422 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001423 Method(HRESULT, "GetDC", [Pointer(HDC)]),
José Fonseca91af9232009-04-13 16:15:28 +01001424 Method(HRESULT, "GetFlipStatus", [DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001425 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
1426 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001427 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1428 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1429 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1430 Method(HRESULT, "IsLost", []),
1431 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1432 Method(HRESULT, "ReleaseDC", [HDC]),
1433 Method(HRESULT, "Restore", []),
1434 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1435 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001436 Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
José Fonseca91af9232009-04-13 16:15:28 +01001437 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1438 Method(HRESULT, "Unlock", [LPVOID]),
1439 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE2,LPRECT,DWORD, LPDDOVERLAYFX]),
1440 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1441 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE2]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001442 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001443 Method(HRESULT, "PageLock", [DWORD]),
1444 Method(HRESULT, "PageUnlock", [DWORD]),
1445]
1446
1447IDirectDrawSurface3.methods += [
1448 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE3]),
1449 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1450 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE3, LPRECT,DWORD, LPDDBLTFX]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001451 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001452 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE3, LPRECT,DWORD]),
1453 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE3]),
1454 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK]),
1455 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK]),
1456 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE3, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001457 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS, Pointer(LPDIRECTDRAWSURFACE3)]),
José Fonseca91af9232009-04-13 16:15:28 +01001458 Method(HRESULT, "GetBltStatus", [DWORD]),
1459 Method(HRESULT, "GetCaps", [LPDDSCAPS]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001460 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
José Fonseca91af9232009-04-13 16:15:28 +01001461 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001462 Method(HRESULT, "GetDC", [Pointer(HDC)]),
José Fonseca91af9232009-04-13 16:15:28 +01001463 Method(HRESULT, "GetFlipStatus", [DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001464 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
1465 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001466 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1467 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC]),
1468 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC]),
1469 Method(HRESULT, "IsLost", []),
1470 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC,DWORD,HANDLE]),
1471 Method(HRESULT, "ReleaseDC", [HDC]),
1472 Method(HRESULT, "Restore", []),
1473 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1474 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001475 Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
José Fonseca91af9232009-04-13 16:15:28 +01001476 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1477 Method(HRESULT, "Unlock", [LPVOID]),
1478 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE3,LPRECT,DWORD, LPDDOVERLAYFX]),
1479 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1480 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE3]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001481 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001482 Method(HRESULT, "PageLock", [DWORD]),
1483 Method(HRESULT, "PageUnlock", [DWORD]),
1484 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC, DWORD]),
1485]
1486
1487IDirectDrawSurface4.methods += [
1488 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE4]),
1489 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1490 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE4, LPRECT,DWORD, LPDDBLTFX]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001491 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001492 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE4, LPRECT,DWORD]),
1493 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE4]),
1494 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK2]),
1495 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK2]),
1496 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE4, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001497 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE4)]),
José Fonseca91af9232009-04-13 16:15:28 +01001498 Method(HRESULT, "GetBltStatus", [DWORD]),
1499 Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001500 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
José Fonseca91af9232009-04-13 16:15:28 +01001501 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001502 Method(HRESULT, "GetDC", [Pointer(HDC)]),
José Fonseca91af9232009-04-13 16:15:28 +01001503 Method(HRESULT, "GetFlipStatus", [DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001504 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
1505 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001506 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1507 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
1508 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
1509 Method(HRESULT, "IsLost", []),
1510 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
1511 Method(HRESULT, "ReleaseDC", [HDC]),
1512 Method(HRESULT, "Restore", []),
1513 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1514 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001515 Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
José Fonseca91af9232009-04-13 16:15:28 +01001516 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1517 Method(HRESULT, "Unlock", [LPRECT]),
1518 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE4,LPRECT,DWORD, LPDDOVERLAYFX]),
1519 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1520 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE4]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001521 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001522 Method(HRESULT, "PageLock", [DWORD]),
1523 Method(HRESULT, "PageUnlock", [DWORD]),
1524 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
1525 Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
1526 Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
1527 Method(HRESULT, "FreePrivateData", [REFGUID]),
1528 Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
1529 Method(HRESULT, "ChangeUniquenessValue", []),
1530]
1531
1532IDirectDrawSurface7.methods += [
1533 Method(HRESULT, "AddAttachedSurface", [LPDIRECTDRAWSURFACE7]),
1534 Method(HRESULT, "AddOverlayDirtyRect", [LPRECT]),
1535 Method(HRESULT, "Blt", [LPRECT,LPDIRECTDRAWSURFACE7, LPRECT,DWORD, LPDDBLTFX]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001536 Method(HRESULT, "BltBatch", [LPDDBLTBATCH, DWORD, DWORD]),
José Fonseca91af9232009-04-13 16:15:28 +01001537 Method(HRESULT, "BltFast", [DWORD,DWORD,LPDIRECTDRAWSURFACE7, LPRECT,DWORD]),
1538 Method(HRESULT, "DeleteAttachedSurface", [DWORD,LPDIRECTDRAWSURFACE7]),
1539 Method(HRESULT, "EnumAttachedSurfaces", [LPVOID,LPDDENUMSURFACESCALLBACK7]),
1540 Method(HRESULT, "EnumOverlayZOrders", [DWORD,LPVOID,LPDDENUMSURFACESCALLBACK7]),
1541 Method(HRESULT, "Flip", [LPDIRECTDRAWSURFACE7, DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001542 Method(HRESULT, "GetAttachedSurface", [LPDDSCAPS2, Pointer(LPDIRECTDRAWSURFACE7)]),
José Fonseca91af9232009-04-13 16:15:28 +01001543 Method(HRESULT, "GetBltStatus", [DWORD]),
1544 Method(HRESULT, "GetCaps", [LPDDSCAPS2]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001545 Method(HRESULT, "GetClipper", [Pointer(LPDIRECTDRAWCLIPPER)]),
José Fonseca91af9232009-04-13 16:15:28 +01001546 Method(HRESULT, "GetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001547 Method(HRESULT, "GetDC", [Pointer(HDC)]),
José Fonseca91af9232009-04-13 16:15:28 +01001548 Method(HRESULT, "GetFlipStatus", [DWORD]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001549 Method(HRESULT, "GetOverlayPosition", [LPLONG, LPLONG]),
1550 Method(HRESULT, "GetPalette", [Pointer(LPDIRECTDRAWPALETTE)]),
José Fonseca91af9232009-04-13 16:15:28 +01001551 Method(HRESULT, "GetPixelFormat", [LPDDPIXELFORMAT]),
1552 Method(HRESULT, "GetSurfaceDesc", [LPDDSURFACEDESC2]),
1553 Method(HRESULT, "Initialize", [LPDIRECTDRAW, LPDDSURFACEDESC2]),
1554 Method(HRESULT, "IsLost", []),
1555 Method(HRESULT, "Lock", [LPRECT,LPDDSURFACEDESC2,DWORD,HANDLE]),
1556 Method(HRESULT, "ReleaseDC", [HDC]),
1557 Method(HRESULT, "Restore", []),
1558 Method(HRESULT, "SetClipper", [LPDIRECTDRAWCLIPPER]),
1559 Method(HRESULT, "SetColorKey", [DWORD, LPDDCOLORKEY]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001560 Method(HRESULT, "SetOverlayPosition", [LONG, LONG]),
José Fonseca91af9232009-04-13 16:15:28 +01001561 Method(HRESULT, "SetPalette", [LPDIRECTDRAWPALETTE]),
1562 Method(HRESULT, "Unlock", [LPRECT]),
1563 Method(HRESULT, "UpdateOverlay", [LPRECT, LPDIRECTDRAWSURFACE7,LPRECT,DWORD, LPDDOVERLAYFX]),
1564 Method(HRESULT, "UpdateOverlayDisplay", [DWORD]),
1565 Method(HRESULT, "UpdateOverlayZOrder", [DWORD, LPDIRECTDRAWSURFACE7]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001566 Method(HRESULT, "GetDDInterface", [Pointer(LPVOID)]),
José Fonseca91af9232009-04-13 16:15:28 +01001567 Method(HRESULT, "PageLock", [DWORD]),
1568 Method(HRESULT, "PageUnlock", [DWORD]),
1569 Method(HRESULT, "SetSurfaceDesc", [LPDDSURFACEDESC2, DWORD]),
1570 Method(HRESULT, "SetPrivateData", [REFGUID, LPVOID, DWORD, DWORD]),
1571 Method(HRESULT, "GetPrivateData", [REFGUID, LPVOID, LPDWORD]),
1572 Method(HRESULT, "FreePrivateData", [REFGUID]),
1573 Method(HRESULT, "GetUniquenessValue", [LPDWORD]),
1574 Method(HRESULT, "ChangeUniquenessValue", []),
1575 Method(HRESULT, "SetPriority", [DWORD]),
1576 Method(HRESULT, "GetPriority", [LPDWORD]),
1577 Method(HRESULT, "SetLOD", [DWORD]),
1578 Method(HRESULT, "GetLOD", [LPDWORD]),
1579]
1580
1581IDirectDrawColorControl.methods += [
1582 Method(HRESULT, "GetColorControls", [LPDDCOLORCONTROL]),
1583 Method(HRESULT, "SetColorControls", [LPDDCOLORCONTROL]),
1584]
1585
1586IDirectDrawGammaControl.methods += [
1587 Method(HRESULT, "GetGammaRamp", [DWORD, LPDDGAMMARAMP]),
1588 Method(HRESULT, "SetGammaRamp", [DWORD, LPDDGAMMARAMP]),
1589]
1590
José Fonseca31524192010-11-22 21:05:26 +00001591LPDDENUMCALLBACKA = FunctionPointer(BOOL, "LPDDENUMCALLBACKA", [Pointer(GUID), LPSTR, LPSTR, LPVOID])
1592LPDDENUMCALLBACKW = FunctionPointer(BOOL, "LPDDENUMCALLBACKW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID])
1593LPDDENUMCALLBACKEXA = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXA", [Pointer(GUID), LPSTR, LPSTR, LPVOID, HMONITOR])
1594LPDDENUMCALLBACKEXW = FunctionPointer(BOOL, "LPDDENUMCALLBACKEXW", [Pointer(GUID), LPWSTR, LPWSTR, LPVOID, HMONITOR])
José Fonseca91af9232009-04-13 16:15:28 +01001595
1596DDENUM = Flags(DWORD, [
1597 "DDENUM_ATTACHEDSECONDARYDEVICES",
1598 "DDENUM_DETACHEDSECONDARYDEVICES",
1599 "DDENUM_NONDISPLAYDEVICES",
1600])
1601
1602DDCREATE = Flags(DWORD, [
1603 "DDCREATE_HARDWAREONLY",
1604 "DDCREATE_EMULATIONONLY",
1605])
1606
José Fonseca8384ccb2011-05-25 10:12:02 +01001607ddraw = API("ddraw")
1608ddraw.add_functions([
José Fonseca90dd97e2010-11-23 21:35:55 +00001609 StdFunction(HRESULT, "DirectDrawEnumerateW", [(LPDDENUMCALLBACKW, "lpCallback"), (LPVOID, "lpContext")]),
1610 StdFunction(HRESULT, "DirectDrawEnumerateA", [(LPDDENUMCALLBACKA, "lpCallback"), (LPVOID, "lpContext")]),
1611 StdFunction(HRESULT, "DirectDrawEnumerateExW", [(LPDDENUMCALLBACKEXW, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1612 StdFunction(HRESULT, "DirectDrawEnumerateExA", [(LPDDENUMCALLBACKEXA, "lpCallback"), (LPVOID, "lpContext"), (DDENUM, "dwFlags")]),
1613 StdFunction(HRESULT, "DirectDrawCreate", [(Pointer(GUID), "lpGUID"), Out(Pointer(LPDIRECTDRAW), "lplpDD"), (Pointer(IUnknown), "pUnkOuter")]),
1614 StdFunction(HRESULT, "DirectDrawCreateEx", [(Pointer(GUID), "lpGuid"), Out(Pointer(LPVOID), "lplpDD"), (REFIID, "iid"), (Pointer(IUnknown), "pUnkOuter")]),
1615 StdFunction(HRESULT, "DirectDrawCreateClipper", [(DWORD, "dwFlags"), Out(Pointer(LPDIRECTDRAWCLIPPER), "lplpDDClipper"), (Pointer(IUnknown), "pUnkOuter")]),
José Fonseca8384ccb2011-05-25 10:12:02 +01001616 StdFunction(Void, "AcquireDDThreadLock", []),
1617 StdFunction(Void, "ReleaseDDThreadLock", []),
1618 StdFunction(DWORD, "D3DParseUnknownCommand", [(LPVOID, "lpCmd"), Out(Pointer(LPVOID), "lpRetCmd")]),
1619 StdFunction(HRESULT, "DllCanUnloadNow", []),
1620 StdFunction(HRESULT, "DllGetClassObject", [(REFCLSID, "rclsid"), (REFIID, "riid"), Out(Pointer(OpaquePointer(Void)), "ppv")]),
José Fonsecabb8760b2011-05-25 23:21:18 +01001621
1622 # XXX
1623 StdFunction(HRESULT, "CompleteCreateSysmemSurface", [Int, Int]),
1624 StdFunction(HRESULT, "GetSurfaceFromDC", [Int, Int, Int]),
1625 StdFunction(HRESULT, "DDInternalLock", [Int, Int]),
1626 StdFunction(HRESULT, "DDInternalUnlock", [Int]),
1627 StdFunction(HRESULT, "DSoundHelp", [HWND, Int, Int]),
1628 StdFunction(HRESULT, "GetDDSurfaceLocal", [Int, Int, Int]),
1629 StdFunction(HANDLE, "GetOLEThunkData", [Int]),
1630 StdFunction(HRESULT, "RegisterSpecialCase", [Int, Int, Int, Int]),
1631 StdFunction(HRESULT, "DDGetAttachedSurfaceLcl", [Int, Int, Int]),
1632
1633 # TODO: SetAppCompatData
José Fonseca8384ccb2011-05-25 10:12:02 +01001634])
José Fonseca91af9232009-04-13 16:15:28 +01001635