VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/wine/wined3d.idl@ 33281

Last change on this file since 33281 was 28475, checked in by vboxsync, 15 years ago

crOpenGL: update to wine 1.1.43

  • Property svn:eol-style set to native
File size: 130.3 KB
Line 
1/*
2 * Copyright 2002-2003 The wine-d3d team
3 * Copyright 2002-2003 Jason Edmeades
4 * Copyright 2002-2003 Raphael Junqueira
5 * Copyright 2005 Oliver Stieber
6 * Copyright 2006 Stefan Dösinger
7 * Copyright 2006 Stefan Dösinger for CodeWeavers
8 * Copyright 2007 Henri Verbeet
9 * Copyright 2008 Henri Verbeet for CodeWeavers
10 *
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public
13 * License as published by the Free Software Foundation; either
14 * version 2.1 of the License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public
22 * License along with this library; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26/*
27 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
28 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
29 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
30 * a choice of LGPL license versions is made available with the language indicating
31 * that LGPLv2 or any later version may be used, or where a choice of which version
32 * of the LGPL is applied is otherwise unspecified.
33 */
34
35import "unknwn.idl";
36
37cpp_quote("#if 0")
38typedef HANDLE HMONITOR;
39
40typedef struct _RGNDATAHEADER
41{
42 DWORD dwSize;
43 DWORD iType;
44 DWORD nCount;
45 DWORD nRgnSize;
46 RECT rcBound;
47} RGNDATAHEADER;
48
49typedef struct _RGNDATA
50{
51 RGNDATAHEADER rdh;
52 char Buffer[1];
53} RGNDATA;
54
55typedef struct _LUID
56{
57 DWORD LowPart;
58 LONG HighPart;
59} LUID, *PLUID;
60cpp_quote("#endif")
61
62cpp_quote("#define WINED3D_OK S_OK")
63
64const UINT _FACWINED3D = 0x876;
65cpp_quote("#define MAKE_WINED3DSTATUS(code) MAKE_HRESULT(0, _FACWINED3D, code)")
66cpp_quote("#define WINED3DOK_NOAUTOGEN MAKE_WINED3DSTATUS(2159)")
67
68cpp_quote("#define MAKE_WINED3DHRESULT(code) MAKE_HRESULT(1, _FACWINED3D, code)")
69cpp_quote("#define WINED3DERR_WRONGTEXTUREFORMAT MAKE_WINED3DHRESULT(2072)")
70cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLOROPERATION MAKE_WINED3DHRESULT(2073)")
71cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLORARG MAKE_WINED3DHRESULT(2074)")
72cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAOPERATION MAKE_WINED3DHRESULT(2075)")
73cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAARG MAKE_WINED3DHRESULT(2076)")
74cpp_quote("#define WINED3DERR_TOOMANYOPERATIONS MAKE_WINED3DHRESULT(2077)")
75cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREFILTER MAKE_WINED3DHRESULT(2078)")
76cpp_quote("#define WINED3DERR_UNSUPPORTEDFACTORVALUE MAKE_WINED3DHRESULT(2079)")
77cpp_quote("#define WINED3DERR_CONFLICTINGRENDERSTATE MAKE_WINED3DHRESULT(2081)")
78cpp_quote("#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_WINED3DHRESULT(2082)")
79cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREPALETTE MAKE_WINED3DHRESULT(2086)")
80cpp_quote("#define WINED3DERR_DRIVERINTERNALERROR MAKE_WINED3DHRESULT(2087)")
81cpp_quote("#define WINED3DERR_NOTFOUND MAKE_WINED3DHRESULT(2150)")
82cpp_quote("#define WINED3DERR_MOREDATA MAKE_WINED3DHRESULT(2151)")
83cpp_quote("#define WINED3DERR_DEVICELOST MAKE_WINED3DHRESULT(2152)")
84cpp_quote("#define WINED3DERR_DEVICENOTRESET MAKE_WINED3DHRESULT(2153)")
85cpp_quote("#define WINED3DERR_NOTAVAILABLE MAKE_WINED3DHRESULT(2154)")
86cpp_quote("#define WINED3DERR_OUTOFVIDEOMEMORY MAKE_WINED3DHRESULT(380)")
87cpp_quote("#define WINED3DERR_INVALIDDEVICE MAKE_WINED3DHRESULT(2155)")
88cpp_quote("#define WINED3DERR_INVALIDCALL MAKE_WINED3DHRESULT(2156)")
89cpp_quote("#define WINED3DERR_DRIVERINVALIDCALL MAKE_WINED3DHRESULT(2157)")
90cpp_quote("#define WINED3DERR_WASSTILLDRAWING MAKE_WINED3DHRESULT(540)")
91cpp_quote("#define WINEDDERR_NOTAOVERLAYSURFACE MAKE_WINED3DHRESULT(580)")
92cpp_quote("#define WINEDDERR_NOTLOCKED MAKE_WINED3DHRESULT(584)")
93cpp_quote("#define WINEDDERR_NODC MAKE_WINED3DHRESULT(586)")
94cpp_quote("#define WINEDDERR_DCALREADYCREATED MAKE_WINED3DHRESULT(620)")
95cpp_quote("#define WINEDDERR_NOTFLIPPABLE MAKE_WINED3DHRESULT(582)")
96cpp_quote("#define WINEDDERR_SURFACEBUSY MAKE_WINED3DHRESULT(430)")
97cpp_quote("#define WINEDDERR_INVALIDRECT MAKE_WINED3DHRESULT(150)")
98cpp_quote("#define WINEDDERR_NOCLIPLIST MAKE_WINED3DHRESULT(205)")
99cpp_quote("#define WINEDDERR_OVERLAYNOTVISIBLE MAKE_WINED3DHRESULT(577)")
100
101typedef DWORD WINED3DCOLOR;
102
103typedef enum _WINED3DLIGHTTYPE
104{
105 WINED3DLIGHT_POINT = 1,
106 WINED3DLIGHT_SPOT = 2,
107 WINED3DLIGHT_DIRECTIONAL = 3,
108 WINED3DLIGHT_PARALLELPOINT = 4, /* D3D7 */
109 WINED3DLIGHT_GLSPOT = 5, /* D3D7 */
110 WINED3DLIGHT_FORCE_DWORD = 0x7fffffff
111} WINED3DLIGHTTYPE;
112
113typedef enum _WINED3DPRIMITIVETYPE
114{
115 WINED3DPT_UNDEFINED = 0,
116 WINED3DPT_POINTLIST = 1,
117 WINED3DPT_LINELIST = 2,
118 WINED3DPT_LINESTRIP = 3,
119 WINED3DPT_TRIANGLELIST = 4,
120 WINED3DPT_TRIANGLESTRIP = 5,
121 WINED3DPT_TRIANGLEFAN = 6,
122 WINED3DPT_LINELIST_ADJ = 10,
123 WINED3DPT_LINESTRIP_ADJ = 11,
124 WINED3DPT_TRIANGLELIST_ADJ = 12,
125 WINED3DPT_TRIANGLESTRIP_ADJ = 13,
126 WINED3DPT_FORCE_DWORD = 0x7fffffff
127} WINED3DPRIMITIVETYPE;
128
129typedef enum _WINED3DDEVTYPE
130{
131 WINED3DDEVTYPE_HAL = 1,
132 WINED3DDEVTYPE_REF = 2,
133 WINED3DDEVTYPE_SW = 3,
134 WINED3DDEVTYPE_NULLREF = 4,
135 WINED3DDEVTYPE_FORCE_DWORD = 0xffffffff
136} WINED3DDEVTYPE;
137
138typedef enum _WINED3DDEGREETYPE
139{
140 WINED3DDEGREE_LINEAR = 1,
141 WINED3DDEGREE_QUADRATIC = 2,
142 WINED3DDEGREE_CUBIC = 3,
143 WINED3DDEGREE_QUINTIC = 5,
144 WINED3DDEGREE_FORCE_DWORD = 0x7fffffff
145} WINED3DDEGREETYPE;
146
147#define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \
148 ((unsigned long)(unsigned char)(ch0) | ((unsigned long)(unsigned char)(ch1) << 8) | \
149 ((unsigned long)(unsigned char)(ch2) << 16) | ((unsigned long)(unsigned char)(ch3) << 24))
150
151typedef enum _WINED3DFORMAT
152{
153 WINED3DFMT_UNKNOWN,
154 WINED3DFMT_B8G8R8_UNORM,
155 WINED3DFMT_B5G5R5X1_UNORM,
156 WINED3DFMT_B4G4R4A4_UNORM,
157 WINED3DFMT_B2G3R3_UNORM,
158 WINED3DFMT_B2G3R3A8_UNORM,
159 WINED3DFMT_B4G4R4X4_UNORM,
160 WINED3DFMT_R8G8B8X8_UNORM,
161 WINED3DFMT_B10G10R10A2_UNORM,
162 WINED3DFMT_P8_UINT_A8_UNORM,
163 WINED3DFMT_P8_UINT,
164 WINED3DFMT_L8_UNORM,
165 WINED3DFMT_L8A8_UNORM,
166 WINED3DFMT_L4A4_UNORM,
167 WINED3DFMT_R5G5_SNORM_L6_UNORM,
168 WINED3DFMT_R8G8_SNORM_L8X8_UNORM,
169 WINED3DFMT_R10G11B11_SNORM,
170 WINED3DFMT_R10G10B10_SNORM_A2_UNORM,
171 WINED3DFMT_D16_LOCKABLE,
172 WINED3DFMT_D32_UNORM,
173 WINED3DFMT_S1_UINT_D15_UNORM,
174 WINED3DFMT_X8D24_UNORM,
175 WINED3DFMT_S4X4_UINT_D24_UNORM,
176 WINED3DFMT_L16_UNORM,
177 WINED3DFMT_S8_UINT_D24_FLOAT,
178 WINED3DFMT_VERTEXDATA,
179 WINED3DFMT_R8G8_SNORM_Cx,
180 WINED3DFMT_R32G32B32A32_TYPELESS,
181 WINED3DFMT_R32G32B32A32_FLOAT,
182 WINED3DFMT_R32G32B32A32_UINT,
183 WINED3DFMT_R32G32B32A32_SINT,
184 WINED3DFMT_R32G32B32_TYPELESS,
185 WINED3DFMT_R32G32B32_FLOAT,
186 WINED3DFMT_R32G32B32_UINT,
187 WINED3DFMT_R32G32B32_SINT,
188 WINED3DFMT_R16G16B16A16_TYPELESS,
189 WINED3DFMT_R16G16B16A16_FLOAT,
190 WINED3DFMT_R16G16B16A16_UNORM,
191 WINED3DFMT_R16G16B16A16_UINT,
192 WINED3DFMT_R16G16B16A16_SNORM,
193 WINED3DFMT_R16G16B16A16_SINT,
194 WINED3DFMT_R32G32_TYPELESS,
195 WINED3DFMT_R32G32_FLOAT,
196 WINED3DFMT_R32G32_UINT,
197 WINED3DFMT_R32G32_SINT,
198 WINED3DFMT_R32G8X24_TYPELESS,
199 WINED3DFMT_D32_FLOAT_S8X24_UINT,
200 WINED3DFMT_R32_FLOAT_X8X24_TYPELESS,
201 WINED3DFMT_X32_TYPELESS_G8X24_UINT,
202 WINED3DFMT_R10G10B10A2_TYPELESS,
203 WINED3DFMT_R10G10B10A2_UNORM,
204 WINED3DFMT_R10G10B10A2_UINT,
205 WINED3DFMT_R10G10B10A2_SNORM,
206 WINED3DFMT_R11G11B10_FLOAT,
207 WINED3DFMT_R8G8B8A8_TYPELESS,
208 WINED3DFMT_R8G8B8A8_UNORM,
209 WINED3DFMT_R8G8B8A8_UNORM_SRGB,
210 WINED3DFMT_R8G8B8A8_UINT,
211 WINED3DFMT_R8G8B8A8_SNORM,
212 WINED3DFMT_R8G8B8A8_SINT,
213 WINED3DFMT_R16G16_TYPELESS,
214 WINED3DFMT_R16G16_FLOAT,
215 WINED3DFMT_R16G16_UNORM,
216 WINED3DFMT_R16G16_UINT,
217 WINED3DFMT_R16G16_SNORM,
218 WINED3DFMT_R16G16_SINT,
219 WINED3DFMT_R32_TYPELESS,
220 WINED3DFMT_D32_FLOAT,
221 WINED3DFMT_R32_FLOAT,
222 WINED3DFMT_R32_UINT,
223 WINED3DFMT_R32_SINT,
224 WINED3DFMT_R24G8_TYPELESS,
225 WINED3DFMT_D24_UNORM_S8_UINT,
226 WINED3DFMT_R24_UNORM_X8_TYPELESS,
227 WINED3DFMT_X24_TYPELESS_G8_UINT,
228 WINED3DFMT_R8G8_TYPELESS,
229 WINED3DFMT_R8G8_UNORM,
230 WINED3DFMT_R8G8_UINT,
231 WINED3DFMT_R8G8_SNORM,
232 WINED3DFMT_R8G8_SINT,
233 WINED3DFMT_R16_TYPELESS,
234 WINED3DFMT_R16_FLOAT,
235 WINED3DFMT_D16_UNORM,
236 WINED3DFMT_R16_UNORM,
237 WINED3DFMT_R16_UINT,
238 WINED3DFMT_R16_SNORM,
239 WINED3DFMT_R16_SINT,
240 WINED3DFMT_R8_TYPELESS,
241 WINED3DFMT_R8_UNORM,
242 WINED3DFMT_R8_UINT,
243 WINED3DFMT_R8_SNORM,
244 WINED3DFMT_R8_SINT,
245 WINED3DFMT_A8_UNORM,
246 WINED3DFMT_R1_UNORM,
247 WINED3DFMT_R9G9B9E5_SHAREDEXP,
248 WINED3DFMT_R8G8_B8G8_UNORM,
249 WINED3DFMT_G8R8_G8B8_UNORM,
250 WINED3DFMT_BC1_TYPELESS,
251 WINED3DFMT_BC1_UNORM,
252 WINED3DFMT_BC1_UNORM_SRGB,
253 WINED3DFMT_BC2_TYPELESS,
254 WINED3DFMT_BC2_UNORM,
255 WINED3DFMT_BC2_UNORM_SRGB,
256 WINED3DFMT_BC3_TYPELESS,
257 WINED3DFMT_BC3_UNORM,
258 WINED3DFMT_BC3_UNORM_SRGB,
259 WINED3DFMT_BC4_TYPELESS,
260 WINED3DFMT_BC4_UNORM,
261 WINED3DFMT_BC4_SNORM,
262 WINED3DFMT_BC5_TYPELESS,
263 WINED3DFMT_BC5_UNORM,
264 WINED3DFMT_BC5_SNORM,
265 WINED3DFMT_B5G6R5_UNORM,
266 WINED3DFMT_B5G5R5A1_UNORM,
267 WINED3DFMT_B8G8R8A8_UNORM,
268 WINED3DFMT_B8G8R8X8_UNORM,
269 /* FOURCC formats. */
270 WINED3DFMT_UYVY = WINEMAKEFOURCC('U','Y','V','Y'),
271 WINED3DFMT_YUY2 = WINEMAKEFOURCC('Y','U','Y','2'),
272 WINED3DFMT_YV12 = WINEMAKEFOURCC('Y','V','1','2'),
273 WINED3DFMT_DXT1 = WINEMAKEFOURCC('D','X','T','1'),
274 WINED3DFMT_DXT2 = WINEMAKEFOURCC('D','X','T','2'),
275 WINED3DFMT_DXT3 = WINEMAKEFOURCC('D','X','T','3'),
276 WINED3DFMT_DXT4 = WINEMAKEFOURCC('D','X','T','4'),
277 WINED3DFMT_DXT5 = WINEMAKEFOURCC('D','X','T','5'),
278 WINED3DFMT_MULTI2_ARGB8 = WINEMAKEFOURCC('M','E','T','1'),
279 WINED3DFMT_G8R8_G8B8 = WINEMAKEFOURCC('G','R','G','B'),
280 WINED3DFMT_R8G8_B8G8 = WINEMAKEFOURCC('R','G','B','G'),
281 WINED3DFMT_ATI2N = WINEMAKEFOURCC('A','T','I','2'),
282 WINED3DFMT_INST = WINEMAKEFOURCC('I','N','S','T'),
283 WINED3DFMT_NVHU = WINEMAKEFOURCC('N','V','H','U'),
284 WINED3DFMT_NVHS = WINEMAKEFOURCC('N','V','H','S'),
285
286 WINED3DFMT_FORCE_DWORD = 0xffffffff
287} WINED3DFORMAT;
288
289typedef enum _WINED3DRENDERSTATETYPE
290{
291 WINED3DRS_ANTIALIAS = 2, /* d3d7 */
292 WINED3DRS_TEXTUREPERSPECTIVE = 4, /* d3d7 */
293 WINED3DRS_WRAPU = 5, /* d3d7 */
294 WINED3DRS_WRAPV = 6, /* d3d7 */
295 WINED3DRS_ZENABLE = 7,
296 WINED3DRS_FILLMODE = 8,
297 WINED3DRS_SHADEMODE = 9,
298 WINED3DRS_LINEPATTERN = 10, /* d3d7, d3d8 */
299 WINED3DRS_MONOENABLE = 11, /* d3d7 */
300 WINED3DRS_ROP2 = 12, /* d3d7 */
301 WINED3DRS_PLANEMASK = 13, /* d3d7 */
302 WINED3DRS_ZWRITEENABLE = 14,
303 WINED3DRS_ALPHATESTENABLE = 15,
304 WINED3DRS_LASTPIXEL = 16,
305 WINED3DRS_SRCBLEND = 19,
306 WINED3DRS_DESTBLEND = 20,
307 WINED3DRS_CULLMODE = 22,
308 WINED3DRS_ZFUNC = 23,
309 WINED3DRS_ALPHAREF = 24,
310 WINED3DRS_ALPHAFUNC = 25,
311 WINED3DRS_DITHERENABLE = 26,
312 WINED3DRS_ALPHABLENDENABLE = 27,
313 WINED3DRS_FOGENABLE = 28,
314 WINED3DRS_SPECULARENABLE = 29,
315 WINED3DRS_ZVISIBLE = 30, /* d3d7, d3d8 */
316 WINED3DRS_SUBPIXEL = 31, /* d3d7 */
317 WINED3DRS_SUBPIXELX = 32, /* d3d7 */
318 WINED3DRS_STIPPLEDALPHA = 33, /* d3d7 */
319 WINED3DRS_FOGCOLOR = 34,
320 WINED3DRS_FOGTABLEMODE = 35,
321 WINED3DRS_FOGSTART = 36,
322 WINED3DRS_FOGEND = 37,
323 WINED3DRS_FOGDENSITY = 38,
324 WINED3DRS_STIPPLEENABLE = 39, /* d3d7 */
325 WINED3DRS_EDGEANTIALIAS = 40, /* d3d7, d3d8 */
326 WINED3DRS_COLORKEYENABLE = 41, /* d3d7 */
327 WINED3DRS_MIPMAPLODBIAS = 46, /* d3d7 */
328 WINED3DRS_ZBIAS = 47, /* d3d7, d3d8 */
329 WINED3DRS_RANGEFOGENABLE = 48,
330 WINED3DRS_ANISOTROPY = 49, /* d3d7 */
331 WINED3DRS_FLUSHBATCH = 50, /* d3d7 */
332 WINED3DRS_TRANSLUCENTSORTINDEPENDENT = 51, /* d3d7 */
333 WINED3DRS_STENCILENABLE = 52,
334 WINED3DRS_STENCILFAIL = 53,
335 WINED3DRS_STENCILZFAIL = 54,
336 WINED3DRS_STENCILPASS = 55,
337 WINED3DRS_STENCILFUNC = 56,
338 WINED3DRS_STENCILREF = 57,
339 WINED3DRS_STENCILMASK = 58,
340 WINED3DRS_STENCILWRITEMASK = 59,
341 WINED3DRS_TEXTUREFACTOR = 60,
342 WINED3DRS_WRAP0 = 128,
343 WINED3DRS_WRAP1 = 129,
344 WINED3DRS_WRAP2 = 130,
345 WINED3DRS_WRAP3 = 131,
346 WINED3DRS_WRAP4 = 132,
347 WINED3DRS_WRAP5 = 133,
348 WINED3DRS_WRAP6 = 134,
349 WINED3DRS_WRAP7 = 135,
350 WINED3DRS_CLIPPING = 136,
351 WINED3DRS_LIGHTING = 137,
352 WINED3DRS_EXTENTS = 138, /* d3d7 */
353 WINED3DRS_AMBIENT = 139,
354 WINED3DRS_FOGVERTEXMODE = 140,
355 WINED3DRS_COLORVERTEX = 141,
356 WINED3DRS_LOCALVIEWER = 142,
357 WINED3DRS_NORMALIZENORMALS = 143,
358 WINED3DRS_COLORKEYBLENDENABLE = 144, /* d3d7 */
359 WINED3DRS_DIFFUSEMATERIALSOURCE = 145,
360 WINED3DRS_SPECULARMATERIALSOURCE = 146,
361 WINED3DRS_AMBIENTMATERIALSOURCE = 147,
362 WINED3DRS_EMISSIVEMATERIALSOURCE = 148,
363 WINED3DRS_VERTEXBLEND = 151,
364 WINED3DRS_CLIPPLANEENABLE = 152,
365 WINED3DRS_SOFTWAREVERTEXPROCESSING = 153, /* d3d8 */
366 WINED3DRS_POINTSIZE = 154,
367 WINED3DRS_POINTSIZE_MIN = 155,
368 WINED3DRS_POINTSPRITEENABLE = 156,
369 WINED3DRS_POINTSCALEENABLE = 157,
370 WINED3DRS_POINTSCALE_A = 158,
371 WINED3DRS_POINTSCALE_B = 159,
372 WINED3DRS_POINTSCALE_C = 160,
373 WINED3DRS_MULTISAMPLEANTIALIAS = 161,
374 WINED3DRS_MULTISAMPLEMASK = 162,
375 WINED3DRS_PATCHEDGESTYLE = 163,
376 WINED3DRS_PATCHSEGMENTS = 164, /* d3d8 */
377 WINED3DRS_DEBUGMONITORTOKEN = 165,
378 WINED3DRS_POINTSIZE_MAX = 166,
379 WINED3DRS_INDEXEDVERTEXBLENDENABLE = 167,
380 WINED3DRS_COLORWRITEENABLE = 168,
381 WINED3DRS_TWEENFACTOR = 170,
382 WINED3DRS_BLENDOP = 171,
383 WINED3DRS_POSITIONDEGREE = 172,
384 WINED3DRS_NORMALDEGREE = 173,
385 WINED3DRS_SCISSORTESTENABLE = 174,
386 WINED3DRS_SLOPESCALEDEPTHBIAS = 175,
387 WINED3DRS_ANTIALIASEDLINEENABLE = 176,
388 WINED3DRS_MINTESSELLATIONLEVEL = 178,
389 WINED3DRS_MAXTESSELLATIONLEVEL = 179,
390 WINED3DRS_ADAPTIVETESS_X = 180,
391 WINED3DRS_ADAPTIVETESS_Y = 181,
392 WINED3DRS_ADAPTIVETESS_Z = 182,
393 WINED3DRS_ADAPTIVETESS_W = 183,
394 WINED3DRS_ENABLEADAPTIVETESSELLATION = 184,
395 WINED3DRS_TWOSIDEDSTENCILMODE = 185,
396 WINED3DRS_CCW_STENCILFAIL = 186,
397 WINED3DRS_CCW_STENCILZFAIL = 187,
398 WINED3DRS_CCW_STENCILPASS = 188,
399 WINED3DRS_CCW_STENCILFUNC = 189,
400 WINED3DRS_COLORWRITEENABLE1 = 190,
401 WINED3DRS_COLORWRITEENABLE2 = 191,
402 WINED3DRS_COLORWRITEENABLE3 = 192,
403 WINED3DRS_BLENDFACTOR = 193,
404 WINED3DRS_SRGBWRITEENABLE = 194,
405 WINED3DRS_DEPTHBIAS = 195,
406 WINED3DRS_WRAP8 = 198,
407 WINED3DRS_WRAP9 = 199,
408 WINED3DRS_WRAP10 = 200,
409 WINED3DRS_WRAP11 = 201,
410 WINED3DRS_WRAP12 = 202,
411 WINED3DRS_WRAP13 = 203,
412 WINED3DRS_WRAP14 = 204,
413 WINED3DRS_WRAP15 = 205,
414 WINED3DRS_SEPARATEALPHABLENDENABLE = 206,
415 WINED3DRS_SRCBLENDALPHA = 207,
416 WINED3DRS_DESTBLENDALPHA = 208,
417 WINED3DRS_BLENDOPALPHA = 209,
418 WINED3DRS_FORCE_DWORD = 0x7fffffff
419} WINED3DRENDERSTATETYPE;
420const UINT WINEHIGHEST_RENDER_STATE = WINED3DRS_BLENDOPALPHA;
421
422typedef enum _WINED3DBLEND
423{
424 WINED3DBLEND_ZERO = 1,
425 WINED3DBLEND_ONE = 2,
426 WINED3DBLEND_SRCCOLOR = 3,
427 WINED3DBLEND_INVSRCCOLOR = 4,
428 WINED3DBLEND_SRCALPHA = 5,
429 WINED3DBLEND_INVSRCALPHA = 6,
430 WINED3DBLEND_DESTALPHA = 7,
431 WINED3DBLEND_INVDESTALPHA = 8,
432 WINED3DBLEND_DESTCOLOR = 9,
433 WINED3DBLEND_INVDESTCOLOR = 10,
434 WINED3DBLEND_SRCALPHASAT = 11,
435 WINED3DBLEND_BOTHSRCALPHA = 12,
436 WINED3DBLEND_BOTHINVSRCALPHA = 13,
437 WINED3DBLEND_BLENDFACTOR = 14,
438 WINED3DBLEND_INVBLENDFACTOR = 15,
439 WINED3DBLEND_FORCE_DWORD = 0x7fffffff
440} WINED3DBLEND;
441
442typedef enum _WINED3DBLENDOP
443{
444 WINED3DBLENDOP_ADD = 1,
445 WINED3DBLENDOP_SUBTRACT = 2,
446 WINED3DBLENDOP_REVSUBTRACT = 3,
447 WINED3DBLENDOP_MIN = 4,
448 WINED3DBLENDOP_MAX = 5,
449 WINED3DBLENDOP_FORCE_DWORD = 0x7fffffff
450} WINED3DBLENDOP;
451
452typedef enum _WINED3DVERTEXBLENDFLAGS
453{
454 WINED3DVBF_DISABLE = 0,
455 WINED3DVBF_1WEIGHTS = 1,
456 WINED3DVBF_2WEIGHTS = 2,
457 WINED3DVBF_3WEIGHTS = 3,
458 WINED3DVBF_TWEENING = 255,
459 WINED3DVBF_0WEIGHTS = 256
460} WINED3DVERTEXBLENDFLAGS;
461
462typedef enum _WINED3DCMPFUNC
463{
464 WINED3DCMP_NEVER = 1,
465 WINED3DCMP_LESS = 2,
466 WINED3DCMP_EQUAL = 3,
467 WINED3DCMP_LESSEQUAL = 4,
468 WINED3DCMP_GREATER = 5,
469 WINED3DCMP_NOTEQUAL = 6,
470 WINED3DCMP_GREATEREQUAL = 7,
471 WINED3DCMP_ALWAYS = 8,
472 WINED3DCMP_FORCE_DWORD = 0x7fffffff
473} WINED3DCMPFUNC;
474
475typedef enum _WINED3DZBUFFERTYPE
476{
477 WINED3DZB_FALSE = 0,
478 WINED3DZB_TRUE = 1,
479 WINED3DZB_USEW = 2,
480 WINED3DZB_FORCE_DWORD = 0x7fffffff
481} WINED3DZBUFFERTYPE;
482
483typedef enum _WINED3DFOGMODE
484{
485 WINED3DFOG_NONE = 0,
486 WINED3DFOG_EXP = 1,
487 WINED3DFOG_EXP2 = 2,
488 WINED3DFOG_LINEAR = 3,
489 WINED3DFOG_FORCE_DWORD = 0x7fffffff
490} WINED3DFOGMODE;
491
492typedef enum _WINED3DSHADEMODE
493{
494 WINED3DSHADE_FLAT = 1,
495 WINED3DSHADE_GOURAUD = 2,
496 WINED3DSHADE_PHONG = 3,
497 WINED3DSHADE_FORCE_DWORD = 0x7fffffff
498} WINED3DSHADEMODE;
499
500typedef enum _WINED3DFILLMODE
501{
502 WINED3DFILL_POINT = 1,
503 WINED3DFILL_WIREFRAME = 2,
504 WINED3DFILL_SOLID = 3,
505 WINED3DFILL_FORCE_DWORD = 0x7fffffff
506} WINED3DFILLMODE;
507
508typedef enum _WINED3DCULL
509{
510 WINED3DCULL_NONE = 1,
511 WINED3DCULL_CW = 2,
512 WINED3DCULL_CCW = 3,
513 WINED3DCULL_FORCE_DWORD = 0x7fffffff
514} WINED3DCULL;
515
516typedef enum _WINED3DSTENCILOP
517{
518 WINED3DSTENCILOP_KEEP = 1,
519 WINED3DSTENCILOP_ZERO = 2,
520 WINED3DSTENCILOP_REPLACE = 3,
521 WINED3DSTENCILOP_INCRSAT = 4,
522 WINED3DSTENCILOP_DECRSAT = 5,
523 WINED3DSTENCILOP_INVERT = 6,
524 WINED3DSTENCILOP_INCR = 7,
525 WINED3DSTENCILOP_DECR = 8,
526 WINED3DSTENCILOP_FORCE_DWORD = 0x7fffffff
527} WINED3DSTENCILOP;
528
529typedef enum _WINED3DMATERIALCOLORSOURCE
530{
531 WINED3DMCS_MATERIAL = 0,
532 WINED3DMCS_COLOR1 = 1,
533 WINED3DMCS_COLOR2 = 2,
534 WINED3DMCS_FORCE_DWORD = 0x7fffffff
535} WINED3DMATERIALCOLORSOURCE;
536
537typedef enum _WINED3DPATCHEDGESTYLE
538{
539 WINED3DPATCHEDGE_DISCRETE = 0,
540 WINED3DPATCHEDGE_CONTINUOUS = 1,
541 WINED3DPATCHEDGE_FORCE_DWORD = 0x7fffffff
542} WINED3DPATCHEDGESTYLE;
543
544typedef enum _WINED3DBACKBUFFER_TYPE
545{
546 WINED3DBACKBUFFER_TYPE_MONO = 0,
547 WINED3DBACKBUFFER_TYPE_LEFT = 1,
548 WINED3DBACKBUFFER_TYPE_RIGHT = 2,
549 WINED3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
550} WINED3DBACKBUFFER_TYPE;
551
552typedef enum _WINED3DSWAPEFFECT
553{
554 WINED3DSWAPEFFECT_DISCARD = 1,
555 WINED3DSWAPEFFECT_FLIP = 2,
556 WINED3DSWAPEFFECT_COPY = 3,
557 WINED3DSWAPEFFECT_COPY_VSYNC = 4,
558 WINED3DSWAPEFFECT_FORCE_DWORD = 0xffffffff
559} WINED3DSWAPEFFECT;
560
561typedef enum _WINED3DSAMPLERSTATETYPE
562{
563 WINED3DSAMP_ADDRESSU = 1,
564 WINED3DSAMP_ADDRESSV = 2,
565 WINED3DSAMP_ADDRESSW = 3,
566 WINED3DSAMP_BORDERCOLOR = 4,
567 WINED3DSAMP_MAGFILTER = 5,
568 WINED3DSAMP_MINFILTER = 6,
569 WINED3DSAMP_MIPFILTER = 7,
570 WINED3DSAMP_MIPMAPLODBIAS = 8,
571 WINED3DSAMP_MAXMIPLEVEL = 9,
572 WINED3DSAMP_MAXANISOTROPY = 10,
573 WINED3DSAMP_SRGBTEXTURE = 11,
574 WINED3DSAMP_ELEMENTINDEX = 12,
575 WINED3DSAMP_DMAPOFFSET = 13,
576 WINED3DSAMP_FORCE_DWORD = 0x7fffffff,
577} WINED3DSAMPLERSTATETYPE;
578const UINT WINED3D_HIGHEST_SAMPLER_STATE = WINED3DSAMP_DMAPOFFSET;
579
580typedef enum _WINED3DMULTISAMPLE_TYPE
581{
582 WINED3DMULTISAMPLE_NONE = 0,
583 WINED3DMULTISAMPLE_NONMASKABLE = 1,
584 WINED3DMULTISAMPLE_2_SAMPLES = 2,
585 WINED3DMULTISAMPLE_3_SAMPLES = 3,
586 WINED3DMULTISAMPLE_4_SAMPLES = 4,
587 WINED3DMULTISAMPLE_5_SAMPLES = 5,
588 WINED3DMULTISAMPLE_6_SAMPLES = 6,
589 WINED3DMULTISAMPLE_7_SAMPLES = 7,
590 WINED3DMULTISAMPLE_8_SAMPLES = 8,
591 WINED3DMULTISAMPLE_9_SAMPLES = 9,
592 WINED3DMULTISAMPLE_10_SAMPLES = 10,
593 WINED3DMULTISAMPLE_11_SAMPLES = 11,
594 WINED3DMULTISAMPLE_12_SAMPLES = 12,
595 WINED3DMULTISAMPLE_13_SAMPLES = 13,
596 WINED3DMULTISAMPLE_14_SAMPLES = 14,
597 WINED3DMULTISAMPLE_15_SAMPLES = 15,
598 WINED3DMULTISAMPLE_16_SAMPLES = 16,
599 WINED3DMULTISAMPLE_FORCE_DWORD = 0xffffffff
600} WINED3DMULTISAMPLE_TYPE;
601
602typedef enum _WINED3DTEXTURESTAGESTATETYPE
603{
604 WINED3DTSS_COLOROP = 0,
605 WINED3DTSS_COLORARG1 = 1,
606 WINED3DTSS_COLORARG2 = 2,
607 WINED3DTSS_ALPHAOP = 3,
608 WINED3DTSS_ALPHAARG1 = 4,
609 WINED3DTSS_ALPHAARG2 = 5,
610 WINED3DTSS_BUMPENVMAT00 = 6,
611 WINED3DTSS_BUMPENVMAT01 = 7,
612 WINED3DTSS_BUMPENVMAT10 = 8,
613 WINED3DTSS_BUMPENVMAT11 = 9,
614 WINED3DTSS_TEXCOORDINDEX = 10,
615 WINED3DTSS_BUMPENVLSCALE = 11,
616 WINED3DTSS_BUMPENVLOFFSET = 12,
617 WINED3DTSS_TEXTURETRANSFORMFLAGS = 13,
618 WINED3DTSS_COLORARG0 = 14,
619 WINED3DTSS_ALPHAARG0 = 15,
620 WINED3DTSS_RESULTARG = 16,
621 WINED3DTSS_CONSTANT = 17,
622 WINED3DTSS_FORCE_DWORD = 0x7fffffff
623} WINED3DTEXTURESTAGESTATETYPE;
624const UINT WINED3D_HIGHEST_TEXTURE_STATE = WINED3DTSS_CONSTANT;
625
626typedef enum _WINED3DTEXTURETRANSFORMFLAGS
627{
628 WINED3DTTFF_DISABLE = 0,
629 WINED3DTTFF_COUNT1 = 1,
630 WINED3DTTFF_COUNT2 = 2,
631 WINED3DTTFF_COUNT3 = 3,
632 WINED3DTTFF_COUNT4 = 4,
633 WINED3DTTFF_PROJECTED = 256,
634 WINED3DTTFF_FORCE_DWORD = 0x7fffffff
635} WINED3DTEXTURETRANSFORMFLAGS;
636
637typedef enum _WINED3DTEXTUREOP
638{
639 WINED3DTOP_DISABLE = 1,
640 WINED3DTOP_SELECTARG1 = 2,
641 WINED3DTOP_SELECTARG2 = 3,
642 WINED3DTOP_MODULATE = 4,
643 WINED3DTOP_MODULATE2X = 5,
644 WINED3DTOP_MODULATE4X = 6,
645 WINED3DTOP_ADD = 7,
646 WINED3DTOP_ADDSIGNED = 8,
647 WINED3DTOP_ADDSIGNED2X = 9,
648 WINED3DTOP_SUBTRACT = 10,
649 WINED3DTOP_ADDSMOOTH = 11,
650 WINED3DTOP_BLENDDIFFUSEALPHA = 12,
651 WINED3DTOP_BLENDTEXTUREALPHA = 13,
652 WINED3DTOP_BLENDFACTORALPHA = 14,
653 WINED3DTOP_BLENDTEXTUREALPHAPM = 15,
654 WINED3DTOP_BLENDCURRENTALPHA = 16,
655 WINED3DTOP_PREMODULATE = 17,
656 WINED3DTOP_MODULATEALPHA_ADDCOLOR = 18,
657 WINED3DTOP_MODULATECOLOR_ADDALPHA = 19,
658 WINED3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
659 WINED3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
660 WINED3DTOP_BUMPENVMAP = 22,
661 WINED3DTOP_BUMPENVMAPLUMINANCE = 23,
662 WINED3DTOP_DOTPRODUCT3 = 24,
663 WINED3DTOP_MULTIPLYADD = 25,
664 WINED3DTOP_LERP = 26,
665 WINED3DTOP_FORCE_DWORD = 0x7fffffff,
666} WINED3DTEXTUREOP;
667
668typedef enum _WINED3DTEXTUREADDRESS
669{
670 WINED3DTADDRESS_WRAP = 1,
671 WINED3DTADDRESS_MIRROR = 2,
672 WINED3DTADDRESS_CLAMP = 3,
673 WINED3DTADDRESS_BORDER = 4,
674 WINED3DTADDRESS_MIRRORONCE = 5,
675 WINED3DTADDRESS_FORCE_DWORD = 0x7fffffff
676} WINED3DTEXTUREADDRESS;
677
678typedef enum _WINED3DTRANSFORMSTATETYPE
679{
680 WINED3DTS_VIEW = 2,
681 WINED3DTS_PROJECTION = 3,
682 WINED3DTS_TEXTURE0 = 16,
683 WINED3DTS_TEXTURE1 = 17,
684 WINED3DTS_TEXTURE2 = 18,
685 WINED3DTS_TEXTURE3 = 19,
686 WINED3DTS_TEXTURE4 = 20,
687 WINED3DTS_TEXTURE5 = 21,
688 WINED3DTS_TEXTURE6 = 22,
689 WINED3DTS_TEXTURE7 = 23,
690 WINED3DTS_WORLD = 256, /*WINED3DTS_WORLDMATRIX(0)*/
691 WINED3DTS_WORLD1 = 257,
692 WINED3DTS_WORLD2 = 258,
693 WINED3DTS_WORLD3 = 259,
694 WINED3DTS_FORCE_DWORD = 0x7fffffff
695} WINED3DTRANSFORMSTATETYPE;
696cpp_quote("#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)")
697
698typedef enum _WINED3DBASISTYPE
699{
700 WINED3DBASIS_BEZIER = 0,
701 WINED3DBASIS_BSPLINE = 1,
702 WINED3DBASIS_INTERPOLATE = 2,
703 WINED3DBASIS_FORCE_DWORD = 0x7fffffff
704} WINED3DBASISTYPE;
705
706typedef enum _WINED3DCUBEMAP_FACES
707{
708 WINED3DCUBEMAP_FACE_POSITIVE_X = 0,
709 WINED3DCUBEMAP_FACE_NEGATIVE_X = 1,
710 WINED3DCUBEMAP_FACE_POSITIVE_Y = 2,
711 WINED3DCUBEMAP_FACE_NEGATIVE_Y = 3,
712 WINED3DCUBEMAP_FACE_POSITIVE_Z = 4,
713 WINED3DCUBEMAP_FACE_NEGATIVE_Z = 5,
714 WINED3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff
715} WINED3DCUBEMAP_FACES;
716
717typedef enum _WINED3DTEXTUREFILTERTYPE
718{
719 WINED3DTEXF_NONE = 0,
720 WINED3DTEXF_POINT = 1,
721 WINED3DTEXF_LINEAR = 2,
722 WINED3DTEXF_ANISOTROPIC = 3,
723 WINED3DTEXF_FLATCUBIC = 4,
724 WINED3DTEXF_GAUSSIANCUBIC = 5,
725 WINED3DTEXF_PYRAMIDALQUAD = 6,
726 WINED3DTEXF_GAUSSIANQUAD = 7,
727 WINED3DTEXF_FORCE_DWORD = 0x7fffffff
728} WINED3DTEXTUREFILTERTYPE;
729
730typedef enum _WINED3DRESOURCETYPE
731{
732 WINED3DRTYPE_SURFACE = 1,
733 WINED3DRTYPE_VOLUME = 2,
734 WINED3DRTYPE_TEXTURE = 3,
735 WINED3DRTYPE_VOLUMETEXTURE = 4,
736 WINED3DRTYPE_CUBETEXTURE = 5,
737 WINED3DRTYPE_BUFFER = 6,
738 WINED3DRTYPE_FORCE_DWORD = 0x7fffffff
739} WINED3DRESOURCETYPE;
740const UINT WINED3DRTYPECOUNT = WINED3DRTYPE_BUFFER + 1;
741
742typedef enum _WINED3DPOOL
743{
744 WINED3DPOOL_DEFAULT = 0,
745 WINED3DPOOL_MANAGED = 1,
746 WINED3DPOOL_SYSTEMMEM = 2,
747 WINED3DPOOL_SCRATCH = 3,
748 WINED3DPOOL_FORCE_DWORD = 0x7fffffff
749} WINED3DPOOL;
750
751typedef enum _WINED3DQUERYTYPE
752{
753 WINED3DQUERYTYPE_VCACHE = 4,
754 WINED3DQUERYTYPE_RESOURCEMANAGER = 5,
755 WINED3DQUERYTYPE_VERTEXSTATS = 6,
756 WINED3DQUERYTYPE_EVENT = 8,
757 WINED3DQUERYTYPE_OCCLUSION = 9,
758 WINED3DQUERYTYPE_TIMESTAMP = 10,
759 WINED3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
760 WINED3DQUERYTYPE_TIMESTAMPFREQ = 12,
761 WINED3DQUERYTYPE_PIPELINETIMINGS = 13,
762 WINED3DQUERYTYPE_INTERFACETIMINGS = 14,
763 WINED3DQUERYTYPE_VERTEXTIMINGS = 15,
764 WINED3DQUERYTYPE_PIXELTIMINGS = 16,
765 WINED3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
766 WINED3DQUERYTYPE_CACHEUTILIZATION = 18
767} WINED3DQUERYTYPE;
768
769const UINT WINED3DISSUE_BEGIN = (1 << 1);
770const UINT WINED3DISSUE_END = (1 << 0);
771const UINT WINED3DGETDATA_FLUSH = (1 << 0);
772
773typedef enum _WINED3DSTATEBLOCKTYPE
774{
775 WINED3DSBT_INIT = 0,
776 WINED3DSBT_ALL = 1,
777 WINED3DSBT_PIXELSTATE = 2,
778 WINED3DSBT_VERTEXSTATE = 3,
779 WINED3DSBT_RECORDED = 4, /* WineD3D private */
780 WINED3DSBT_FORCE_DWORD = 0xffffffff
781} WINED3DSTATEBLOCKTYPE;
782
783typedef enum _WINED3DDECLMETHOD
784{
785 WINED3DDECLMETHOD_DEFAULT = 0,
786 WINED3DDECLMETHOD_PARTIALU = 1,
787 WINED3DDECLMETHOD_PARTIALV = 2,
788 WINED3DDECLMETHOD_CROSSUV = 3,
789 WINED3DDECLMETHOD_UV = 4,
790 WINED3DDECLMETHOD_LOOKUP = 5,
791 WINED3DDECLMETHOD_LOOKUPPRESAMPLED = 6
792} WINED3DDECLMETHOD;
793
794typedef enum _WINED3DDECLUSAGE
795{
796 WINED3DDECLUSAGE_POSITION = 0,
797 WINED3DDECLUSAGE_BLENDWEIGHT = 1,
798 WINED3DDECLUSAGE_BLENDINDICES = 2,
799 WINED3DDECLUSAGE_NORMAL = 3,
800 WINED3DDECLUSAGE_PSIZE = 4,
801 WINED3DDECLUSAGE_TEXCOORD = 5,
802 WINED3DDECLUSAGE_TANGENT = 6,
803 WINED3DDECLUSAGE_BINORMAL = 7,
804 WINED3DDECLUSAGE_TESSFACTOR = 8,
805 WINED3DDECLUSAGE_POSITIONT = 9,
806 WINED3DDECLUSAGE_COLOR = 10,
807 WINED3DDECLUSAGE_FOG = 11,
808 WINED3DDECLUSAGE_DEPTH = 12,
809 WINED3DDECLUSAGE_SAMPLE = 13
810} WINED3DDECLUSAGE;
811
812typedef enum _WINED3DSURFTYPE
813{
814 SURFACE_UNKNOWN = 0, /* Default / Unknown surface type */
815 SURFACE_OPENGL, /* OpenGL surface: Renders using libGL, needed for 3D */
816 SURFACE_GDI, /* User surface. No 3D, DirectDraw rendering with GDI */
817} WINED3DSURFTYPE;
818
819enum wined3d_sysval_semantic
820{
821 WINED3D_SV_DEPTH = 0xffffffff,
822 WINED3D_SV_TARGET0 = 0,
823 WINED3D_SV_TARGET1 = 1,
824 WINED3D_SV_TARGET2 = 2,
825 WINED3D_SV_TARGET3 = 3,
826 WINED3D_SV_TARGET4 = 4,
827 WINED3D_SV_TARGET5 = 5,
828 WINED3D_SV_TARGET6 = 6,
829 WINED3D_SV_TARGET7 = 7,
830};
831
832const UINT WINED3DCOLORWRITEENABLE_RED = (1<<0);
833const UINT WINED3DCOLORWRITEENABLE_GREEN = (1<<1);
834const UINT WINED3DCOLORWRITEENABLE_BLUE = (1<<2);
835const UINT WINED3DCOLORWRITEENABLE_ALPHA = (1<<3);
836
837const UINT WINED3DADAPTER_DEFAULT = 0;
838const UINT WINED3DENUM_NO_WHQL_LEVEL = 2;
839const UINT WINED3DPRESENT_BACK_BUFFER_MAX = 3;
840
841const UINT WINED3DTSS_TCI_PASSTHRU = 0x00000;
842const UINT WINED3DTSS_TCI_CAMERASPACENORMAL = 0x10000;
843const UINT WINED3DTSS_TCI_CAMERASPACEPOSITION = 0x20000;
844const UINT WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x30000;
845const UINT WINED3DTSS_TCI_SPHEREMAP = 0x40000;
846
847const UINT WINED3DTA_SELECTMASK = 0x0000000f;
848const UINT WINED3DTA_DIFFUSE = 0x00000000;
849const UINT WINED3DTA_CURRENT = 0x00000001;
850const UINT WINED3DTA_TEXTURE = 0x00000002;
851const UINT WINED3DTA_TFACTOR = 0x00000003;
852const UINT WINED3DTA_SPECULAR = 0x00000004;
853const UINT WINED3DTA_TEMP = 0x00000005;
854const UINT WINED3DTA_CONSTANT = 0x00000006;
855const UINT WINED3DTA_COMPLEMENT = 0x00000010;
856const UINT WINED3DTA_ALPHAREPLICATE = 0x00000020;
857
858const UINT WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER = 0x00000001;
859const UINT WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL = 0x00000002;
860const UINT WINED3DPRESENTFLAG_DEVICECLIP = 0x00000004;
861const UINT WINED3DPRESENTFLAG_VIDEO = 0x00000010;
862const UINT WINED3DPRESENTFLAG_NOAUTOROTATE = 0x00000020;
863const UINT WINED3DPRESENTFLAG_UNPRUNEDMODE = 0x00000040;
864
865const UINT WINED3DDP_MAXTEXCOORD = 8;
866
867const UINT WINED3DUSAGE_RENDERTARGET = 0x00000001;
868const UINT WINED3DUSAGE_DEPTHSTENCIL = 0x00000002;
869const UINT WINED3DUSAGE_WRITEONLY = 0x00000008;
870const UINT WINED3DUSAGE_SOFTWAREPROCESSING = 0x00000010;
871const UINT WINED3DUSAGE_DONOTCLIP = 0x00000020;
872const UINT WINED3DUSAGE_POINTS = 0x00000040;
873const UINT WINED3DUSAGE_RTPATCHES = 0x00000080;
874const UINT WINED3DUSAGE_NPATCHES = 0x00000100;
875const UINT WINED3DUSAGE_DYNAMIC = 0x00000200;
876const UINT WINED3DUSAGE_AUTOGENMIPMAP = 0x00000400;
877const UINT WINED3DUSAGE_DMAP = 0x00004000;
878const UINT WINED3DUSAGE_MASK = 0x00004fff;
879const UINT WINED3DUSAGE_STATICDECL = 0x40000000;
880const UINT WINED3DUSAGE_OVERLAY = 0x80000000;
881
882const UINT WINED3DUSAGE_QUERY_LEGACYBUMPMAP = 0x00008000;
883const UINT WINED3DUSAGE_QUERY_FILTER = 0x00020000;
884const UINT WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING = 0x00080000;
885const UINT WINED3DUSAGE_QUERY_SRGBREAD = 0x00010000;
886const UINT WINED3DUSAGE_QUERY_SRGBWRITE = 0x00040000;
887const UINT WINED3DUSAGE_QUERY_VERTEXTEXTURE = 0x00100000;
888const UINT WINED3DUSAGE_QUERY_WRAPANDMIP = 0x00200000;
889const UINT WINED3DUSAGE_QUERY_MASK = 0x003f8000;
890
891const UINT WINED3DLOCK_READONLY = 0x0010;
892const UINT WINED3DLOCK_NOSYSLOCK = 0x0800;
893const UINT WINED3DLOCK_NOOVERWRITE = 0x1000;
894const UINT WINED3DLOCK_DISCARD = 0x2000;
895const UINT WINED3DLOCK_DONOTWAIT = 0x4000;
896const UINT WINED3DLOCK_NO_DIRTY_UPDATE = 0x8000;
897
898const UINT WINED3DPRESENT_RATE_DEFAULT = 0x000000000;
899
900const UINT WINED3DPRESENT_INTERVAL_DEFAULT = 0x00000000;
901const UINT WINED3DPRESENT_INTERVAL_ONE = 0x00000001;
902const UINT WINED3DPRESENT_INTERVAL_TWO = 0x00000002;
903const UINT WINED3DPRESENT_INTERVAL_THREE = 0x00000004;
904const UINT WINED3DPRESENT_INTERVAL_FOUR = 0x00000008;
905const UINT WINED3DPRESENT_INTERVAL_IMMEDIATE = 0x80000000;
906
907const UINT WINED3DMAXUSERCLIPPLANES = 32;
908const UINT WINED3DCLIPPLANE0 = (1 << 0);
909const UINT WINED3DCLIPPLANE1 = (1 << 1);
910const UINT WINED3DCLIPPLANE2 = (1 << 2);
911const UINT WINED3DCLIPPLANE3 = (1 << 3);
912const UINT WINED3DCLIPPLANE4 = (1 << 4);
913const UINT WINED3DCLIPPLANE5 = (1 << 5);
914
915/* FVF (Flexible Vertex Format) codes */
916const UINT WINED3DFVF_RESERVED0 = 0x0001;
917const UINT WINED3DFVF_POSITION_MASK = 0x400e;
918const UINT WINED3DFVF_XYZ = 0x0002;
919const UINT WINED3DFVF_XYZRHW = 0x0004;
920const UINT WINED3DFVF_XYZB1 = 0x0006;
921const UINT WINED3DFVF_XYZB2 = 0x0008;
922const UINT WINED3DFVF_XYZB3 = 0x000a;
923const UINT WINED3DFVF_XYZB4 = 0x000c;
924const UINT WINED3DFVF_XYZB5 = 0x000e;
925const UINT WINED3DFVF_XYZW = 0x4002;
926const UINT WINED3DFVF_NORMAL = 0x0010;
927const UINT WINED3DFVF_PSIZE = 0x0020;
928const UINT WINED3DFVF_DIFFUSE = 0x0040;
929const UINT WINED3DFVF_SPECULAR = 0x0080;
930const UINT WINED3DFVF_TEXCOUNT_MASK = 0x0f00;
931const UINT WINED3DFVF_TEXCOUNT_SHIFT = 8;
932const UINT WINED3DFVF_TEX0 = 0x0000;
933const UINT WINED3DFVF_TEX1 = 0x0100;
934const UINT WINED3DFVF_TEX2 = 0x0200;
935const UINT WINED3DFVF_TEX3 = 0x0300;
936const UINT WINED3DFVF_TEX4 = 0x0400;
937const UINT WINED3DFVF_TEX5 = 0x0500;
938const UINT WINED3DFVF_TEX6 = 0x0600;
939const UINT WINED3DFVF_TEX7 = 0x0700;
940const UINT WINED3DFVF_TEX8 = 0x0800;
941const UINT WINED3DFVF_LASTBETA_UBYTE4 = 0x1000;
942const UINT WINED3DFVF_LASTBETA_D3DCOLOR = 0x8000;
943const UINT WINED3DFVF_RESERVED2 = 0x6000;
944
945const UINT WINED3DFVF_TEXTUREFORMAT1 = 3;
946const UINT WINED3DFVF_TEXTUREFORMAT2 = 0;
947const UINT WINED3DFVF_TEXTUREFORMAT3 = 1;
948const UINT WINED3DFVF_TEXTUREFORMAT4 = 2;
949cpp_quote("#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))")
950cpp_quote("#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2)")
951cpp_quote("#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))")
952cpp_quote("#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))")
953
954/* Clear flags */
955const UINT WINED3DCLEAR_TARGET = 0x00000001;
956const UINT WINED3DCLEAR_ZBUFFER = 0x00000002;
957const UINT WINED3DCLEAR_STENCIL = 0x00000004;
958
959/* Stream source flags */
960const UINT WINED3DSTREAMSOURCE_INDEXEDDATA = (1 << 30);
961const UINT WINED3DSTREAMSOURCE_INSTANCEDATA = (2 << 30);
962
963/* SetPrivateData flags */
964const UINT WINED3DSPD_IUNKNOWN = 0x00000001;
965
966/* IWineD3D::CreateDevice behaviour flags */
967const UINT WINED3DCREATE_FPU_PRESERVE = 0x00000002;
968const UINT WINED3DCREATE_PUREDEVICE = 0x00000010;
969const UINT WINED3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020;
970const UINT WINED3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040;
971const UINT WINED3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080;
972const UINT WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100;
973const UINT WINED3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200;
974
975/* VTF defines */
976const UINT WINED3DDMAPSAMPLER = 0x100;
977const UINT WINED3DVERTEXTEXTURESAMPLER0 = (WINED3DDMAPSAMPLER + 1);
978const UINT WINED3DVERTEXTEXTURESAMPLER1 = (WINED3DDMAPSAMPLER + 2);
979const UINT WINED3DVERTEXTEXTURESAMPLER2 = (WINED3DDMAPSAMPLER + 3);
980const UINT WINED3DVERTEXTEXTURESAMPLER3 = (WINED3DDMAPSAMPLER + 4);
981
982const UINT WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD = 0x00000020;
983const UINT WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION = 0x00000080;
984const UINT WINED3DCAPS3_COPY_TO_VIDMEM = 0x00000100;
985const UINT WINED3DCAPS3_COPY_TO_SYSTEMMEM = 0x00000200;
986const UINT WINED3DCAPS3_RESERVED = 0x8000001f;
987
988const UINT WINED3DDEVCAPS2_STREAMOFFSET = 0x00000001;
989const UINT WINED3DDEVCAPS2_DMAPNPATCH = 0x00000002;
990const UINT WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH = 0x00000004;
991const UINT WINED3DDEVCAPS2_ADAPTIVETESSNPATCH = 0x00000008;
992const UINT WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES = 0x00000010;
993const UINT WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH = 0x00000020;
994const UINT WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET = 0x00000040;
995
996const UINT WINED3DDTCAPS_UBYTE4 = 0x00000001;
997const UINT WINED3DDTCAPS_UBYTE4N = 0x00000002;
998const UINT WINED3DDTCAPS_SHORT2N = 0x00000004;
999const UINT WINED3DDTCAPS_SHORT4N = 0x00000008;
1000const UINT WINED3DDTCAPS_USHORT2N = 0x00000010;
1001const UINT WINED3DDTCAPS_USHORT4N = 0x00000020;
1002const UINT WINED3DDTCAPS_UDEC3 = 0x00000040;
1003const UINT WINED3DDTCAPS_DEC3N = 0x00000080;
1004const UINT WINED3DDTCAPS_FLOAT16_2 = 0x00000100;
1005const UINT WINED3DDTCAPS_FLOAT16_4 = 0x00000200;
1006
1007const UINT WINED3DFVFCAPS_TEXCOORDCOUNTMASK = 0x0000ffff;
1008const UINT WINED3DFVFCAPS_DONOTSTRIPELEMENTS = 0x00080000;
1009const UINT WINED3DFVFCAPS_PSIZE = 0x00100000;
1010
1011const UINT WINED3DLINECAPS_TEXTURE = 0x00000001;
1012const UINT WINED3DLINECAPS_ZTEST = 0x00000002;
1013const UINT WINED3DLINECAPS_BLEND = 0x00000004;
1014const UINT WINED3DLINECAPS_ALPHACMP = 0x00000008;
1015const UINT WINED3DLINECAPS_FOG = 0x00000010;
1016const UINT WINED3DLINECAPS_ANTIALIAS = 0x00000020;
1017
1018const UINT WINED3DMAX30SHADERINSTRUCTIONS = 32768;
1019const UINT WINED3DMIN30SHADERINSTRUCTIONS = 512;
1020
1021const UINT WINED3DPBLENDCAPS_ZERO = 0x00000001;
1022const UINT WINED3DPBLENDCAPS_ONE = 0x00000002;
1023const UINT WINED3DPBLENDCAPS_SRCCOLOR = 0x00000004;
1024const UINT WINED3DPBLENDCAPS_INVSRCCOLOR = 0x00000008;
1025const UINT WINED3DPBLENDCAPS_SRCALPHA = 0x00000010;
1026const UINT WINED3DPBLENDCAPS_INVSRCALPHA = 0x00000020;
1027const UINT WINED3DPBLENDCAPS_DESTALPHA = 0x00000040;
1028const UINT WINED3DPBLENDCAPS_INVDESTALPHA = 0x00000080;
1029const UINT WINED3DPBLENDCAPS_DESTCOLOR = 0x00000100;
1030const UINT WINED3DPBLENDCAPS_INVDESTCOLOR = 0x00000200;
1031const UINT WINED3DPBLENDCAPS_SRCALPHASAT = 0x00000400;
1032const UINT WINED3DPBLENDCAPS_BOTHSRCALPHA = 0x00000800;
1033const UINT WINED3DPBLENDCAPS_BOTHINVSRCALPHA = 0x00001000;
1034const UINT WINED3DPBLENDCAPS_BLENDFACTOR = 0x00002000;
1035
1036const UINT WINED3DPCMPCAPS_NEVER = 0x00000001;
1037const UINT WINED3DPCMPCAPS_LESS = 0x00000002;
1038const UINT WINED3DPCMPCAPS_EQUAL = 0x00000004;
1039const UINT WINED3DPCMPCAPS_LESSEQUAL = 0x00000008;
1040const UINT WINED3DPCMPCAPS_GREATER = 0x00000010;
1041const UINT WINED3DPCMPCAPS_NOTEQUAL = 0x00000020;
1042const UINT WINED3DPCMPCAPS_GREATEREQUAL = 0x00000040;
1043const UINT WINED3DPCMPCAPS_ALWAYS = 0x00000080;
1044
1045const UINT WINED3DPMISCCAPS_MASKZ = 0x00000002;
1046const UINT WINED3DPMISCCAPS_LINEPATTERNREP = 0x00000004;
1047const UINT WINED3DPMISCCAPS_CULLNONE = 0x00000010;
1048const UINT WINED3DPMISCCAPS_CULLCW = 0x00000020;
1049const UINT WINED3DPMISCCAPS_CULLCCW = 0x00000040;
1050const UINT WINED3DPMISCCAPS_COLORWRITEENABLE = 0x00000080;
1051const UINT WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS = 0x00000100;
1052const UINT WINED3DPMISCCAPS_CLIPTLVERTS = 0x00000200;
1053const UINT WINED3DPMISCCAPS_TSSARGTEMP = 0x00000400;
1054const UINT WINED3DPMISCCAPS_BLENDOP = 0x00000800;
1055const UINT WINED3DPMISCCAPS_NULLREFERENCE = 0x00001000;
1056const UINT WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS = 0x00004000;
1057const UINT WINED3DPMISCCAPS_PERSTAGECONSTANT = 0x00008000;
1058const UINT WINED3DPMISCCAPS_FOGANDSPECULARALPHA = 0x00010000;
1059const UINT WINED3DPMISCCAPS_SEPARATEALPHABLEND = 0x00020000;
1060const UINT WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS = 0x00040000;
1061const UINT WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING = 0x00080000;
1062const UINT WINED3DPMISCCAPS_FOGVERTEXCLAMPED = 0x00100000;
1063
1064const UINT WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24;
1065const UINT WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0;
1066const UINT WINED3DPS20_MAX_NUMTEMPS = 32;
1067const UINT WINED3DPS20_MIN_NUMTEMPS = 12;
1068const UINT WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH = 4;
1069const UINT WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH = 0;
1070const UINT WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS = 512;
1071const UINT WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS = 96;
1072
1073const UINT WINED3DPS20CAPS_ARBITRARYSWIZZLE = 0x00000001;
1074const UINT WINED3DPS20CAPS_GRADIENTINSTRUCTIONS = 0x00000002;
1075const UINT WINED3DPS20CAPS_PREDICATION = 0x00000004;
1076const UINT WINED3DPS20CAPS_NODEPENDENTREADLIMIT = 0x00000008;
1077const UINT WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT = 0x00000010;
1078
1079const UINT WINED3DPTADDRESSCAPS_WRAP = 0x00000001;
1080const UINT WINED3DPTADDRESSCAPS_MIRROR = 0x00000002;
1081const UINT WINED3DPTADDRESSCAPS_CLAMP = 0x00000004;
1082const UINT WINED3DPTADDRESSCAPS_BORDER = 0x00000008;
1083const UINT WINED3DPTADDRESSCAPS_INDEPENDENTUV = 0x00000010;
1084const UINT WINED3DPTADDRESSCAPS_MIRRORONCE = 0x00000020;
1085
1086const UINT WINED3DSTENCILCAPS_KEEP = 0x00000001;
1087const UINT WINED3DSTENCILCAPS_ZERO = 0x00000002;
1088const UINT WINED3DSTENCILCAPS_REPLACE = 0x00000004;
1089const UINT WINED3DSTENCILCAPS_INCRSAT = 0x00000008;
1090const UINT WINED3DSTENCILCAPS_DECRSAT = 0x00000010;
1091const UINT WINED3DSTENCILCAPS_INVERT = 0x00000020;
1092const UINT WINED3DSTENCILCAPS_INCR = 0x00000040;
1093const UINT WINED3DSTENCILCAPS_DECR = 0x00000080;
1094const UINT WINED3DSTENCILCAPS_TWOSIDED = 0x00000100;
1095
1096const UINT WINED3DTEXOPCAPS_DISABLE = 0x00000001;
1097const UINT WINED3DTEXOPCAPS_SELECTARG1 = 0x00000002;
1098const UINT WINED3DTEXOPCAPS_SELECTARG2 = 0x00000004;
1099const UINT WINED3DTEXOPCAPS_MODULATE = 0x00000008;
1100const UINT WINED3DTEXOPCAPS_MODULATE2X = 0x00000010;
1101const UINT WINED3DTEXOPCAPS_MODULATE4X = 0x00000020;
1102const UINT WINED3DTEXOPCAPS_ADD = 0x00000040;
1103const UINT WINED3DTEXOPCAPS_ADDSIGNED = 0x00000080;
1104const UINT WINED3DTEXOPCAPS_ADDSIGNED2X = 0x00000100;
1105const UINT WINED3DTEXOPCAPS_SUBTRACT = 0x00000200;
1106const UINT WINED3DTEXOPCAPS_ADDSMOOTH = 0x00000400;
1107const UINT WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA = 0x00000800;
1108const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHA = 0x00001000;
1109const UINT WINED3DTEXOPCAPS_BLENDFACTORALPHA = 0x00002000;
1110const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM = 0x00004000;
1111const UINT WINED3DTEXOPCAPS_BLENDCURRENTALPHA = 0x00008000;
1112const UINT WINED3DTEXOPCAPS_PREMODULATE = 0x00010000;
1113const UINT WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = 0x00020000;
1114const UINT WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = 0x00040000;
1115const UINT WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = 0x00080000;
1116const UINT WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = 0x00100000;
1117const UINT WINED3DTEXOPCAPS_BUMPENVMAP = 0x00200000;
1118const UINT WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE = 0x00400000;
1119const UINT WINED3DTEXOPCAPS_DOTPRODUCT3 = 0x00800000;
1120const UINT WINED3DTEXOPCAPS_MULTIPLYADD = 0x01000000;
1121const UINT WINED3DTEXOPCAPS_LERP = 0x02000000;
1122
1123const UINT WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24;
1124const UINT WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0;
1125const UINT WINED3DVS20_MAX_NUMTEMPS = 32;
1126const UINT WINED3DVS20_MIN_NUMTEMPS = 12;
1127const UINT WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH = 4;
1128const UINT WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH = 1;
1129
1130const UINT WINED3DVS20CAPS_PREDICATION = 0x00000001;
1131
1132const UINT WINED3DCAPS2_NO2DDURING3DSCENE = 0x00000002;
1133const UINT WINED3DCAPS2_FULLSCREENGAMMA = 0x00020000;
1134const UINT WINED3DCAPS2_CANRENDERWINDOWED = 0x00080000;
1135const UINT WINED3DCAPS2_CANCALIBRATEGAMMA = 0x00100000;
1136const UINT WINED3DCAPS2_RESERVED = 0x02000000;
1137const UINT WINED3DCAPS2_CANMANAGERESOURCE = 0x10000000;
1138const UINT WINED3DCAPS2_DYNAMICTEXTURES = 0x20000000;
1139const UINT WINED3DCAPS2_CANAUTOGENMIPMAP = 0x40000000;
1140
1141const UINT WINED3DPRASTERCAPS_DITHER = 0x00000001;
1142const UINT WINED3DPRASTERCAPS_ROP2 = 0x00000002;
1143const UINT WINED3DPRASTERCAPS_XOR = 0x00000004;
1144const UINT WINED3DPRASTERCAPS_PAT = 0x00000008;
1145const UINT WINED3DPRASTERCAPS_ZTEST = 0x00000010;
1146const UINT WINED3DPRASTERCAPS_SUBPIXEL = 0x00000020;
1147const UINT WINED3DPRASTERCAPS_SUBPIXELX = 0x00000040;
1148const UINT WINED3DPRASTERCAPS_FOGVERTEX = 0x00000080;
1149const UINT WINED3DPRASTERCAPS_FOGTABLE = 0x00000100;
1150const UINT WINED3DPRASTERCAPS_STIPPLE = 0x00000200;
1151const UINT WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT = 0x00000400;
1152const UINT WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT = 0x00000800;
1153const UINT WINED3DPRASTERCAPS_ANTIALIASEDGES = 0x00001000;
1154const UINT WINED3DPRASTERCAPS_MIPMAPLODBIAS = 0x00002000;
1155const UINT WINED3DPRASTERCAPS_ZBIAS = 0x00004000;
1156const UINT WINED3DPRASTERCAPS_ZBUFFERLESSHSR = 0x00008000;
1157const UINT WINED3DPRASTERCAPS_FOGRANGE = 0x00010000;
1158const UINT WINED3DPRASTERCAPS_ANISOTROPY = 0x00020000;
1159const UINT WINED3DPRASTERCAPS_WBUFFER = 0x00040000;
1160const UINT WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT = 0x00080000;
1161const UINT WINED3DPRASTERCAPS_WFOG = 0x00100000;
1162const UINT WINED3DPRASTERCAPS_ZFOG = 0x00200000;
1163const UINT WINED3DPRASTERCAPS_COLORPERSPECTIVE = 0x00400000;
1164const UINT WINED3DPRASTERCAPS_SCISSORTEST = 0x01000000;
1165const UINT WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS = 0x02000000;
1166const UINT WINED3DPRASTERCAPS_DEPTHBIAS = 0x04000000;
1167const UINT WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE = 0x08000000;
1168
1169const UINT WINED3DPSHADECAPS_COLORFLATMONO = 0x00000001;
1170const UINT WINED3DPSHADECAPS_COLORFLATRGB = 0x00000002;
1171const UINT WINED3DPSHADECAPS_COLORGOURAUDMONO = 0x00000004;
1172const UINT WINED3DPSHADECAPS_COLORGOURAUDRGB = 0x00000008;
1173const UINT WINED3DPSHADECAPS_COLORPHONGMONO = 0x00000010;
1174const UINT WINED3DPSHADECAPS_COLORPHONGRGB = 0x00000020;
1175const UINT WINED3DPSHADECAPS_SPECULARFLATMONO = 0x00000040;
1176const UINT WINED3DPSHADECAPS_SPECULARFLATRGB = 0x00000080;
1177const UINT WINED3DPSHADECAPS_SPECULARGOURAUDMONO = 0x00000100;
1178const UINT WINED3DPSHADECAPS_SPECULARGOURAUDRGB = 0x00000200;
1179const UINT WINED3DPSHADECAPS_SPECULARPHONGMONO = 0x00000400;
1180const UINT WINED3DPSHADECAPS_SPECULARPHONGRGB = 0x00000800;
1181const UINT WINED3DPSHADECAPS_ALPHAFLATBLEND = 0x00001000;
1182const UINT WINED3DPSHADECAPS_ALPHAFLATSTIPPLED = 0x00002000;
1183const UINT WINED3DPSHADECAPS_ALPHAGOURAUDBLEND = 0x00004000;
1184const UINT WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED = 0x00008000;
1185const UINT WINED3DPSHADECAPS_ALPHAPHONGBLEND = 0x00010000;
1186const UINT WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED = 0x00020000;
1187const UINT WINED3DPSHADECAPS_FOGFLAT = 0x00040000;
1188const UINT WINED3DPSHADECAPS_FOGGOURAUD = 0x00080000;
1189const UINT WINED3DPSHADECAPS_FOGPHONG = 0x00100000;
1190
1191const UINT WINED3DPTEXTURECAPS_PERSPECTIVE = 0x00000001;
1192const UINT WINED3DPTEXTURECAPS_POW2 = 0x00000002;
1193const UINT WINED3DPTEXTURECAPS_ALPHA = 0x00000004;
1194const UINT WINED3DPTEXTURECAPS_TRANSPARENCY = 0x00000008;
1195const UINT WINED3DPTEXTURECAPS_BORDER = 0x00000010;
1196const UINT WINED3DPTEXTURECAPS_SQUAREONLY = 0x00000020;
1197const UINT WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = 0x00000040;
1198const UINT WINED3DPTEXTURECAPS_ALPHAPALETTE = 0x00000080;
1199const UINT WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL = 0x00000100;
1200const UINT WINED3DPTEXTURECAPS_PROJECTED = 0x00000400;
1201const UINT WINED3DPTEXTURECAPS_CUBEMAP = 0x00000800;
1202const UINT WINED3DPTEXTURECAPS_COLORKEYBLEND = 0x00001000;
1203const UINT WINED3DPTEXTURECAPS_VOLUMEMAP = 0x00002000;
1204const UINT WINED3DPTEXTURECAPS_MIPMAP = 0x00004000;
1205const UINT WINED3DPTEXTURECAPS_MIPVOLUMEMAP = 0x00008000;
1206const UINT WINED3DPTEXTURECAPS_MIPCUBEMAP = 0x00010000;
1207const UINT WINED3DPTEXTURECAPS_CUBEMAP_POW2 = 0x00020000;
1208const UINT WINED3DPTEXTURECAPS_VOLUMEMAP_POW2 = 0x00040000;
1209const UINT WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV = 0x00200000;
1210
1211const UINT WINED3DPTFILTERCAPS_NEAREST = 0x00000001;
1212const UINT WINED3DPTFILTERCAPS_LINEAR = 0x00000002;
1213const UINT WINED3DPTFILTERCAPS_MIPNEAREST = 0x00000004;
1214const UINT WINED3DPTFILTERCAPS_MIPLINEAR = 0x00000008;
1215const UINT WINED3DPTFILTERCAPS_LINEARMIPNEAREST = 0x00000010;
1216const UINT WINED3DPTFILTERCAPS_LINEARMIPLINEAR = 0x00000020;
1217const UINT WINED3DPTFILTERCAPS_MINFPOINT = 0x00000100;
1218const UINT WINED3DPTFILTERCAPS_MINFLINEAR = 0x00000200;
1219const UINT WINED3DPTFILTERCAPS_MINFANISOTROPIC = 0x00000400;
1220const UINT WINED3DPTFILTERCAPS_MIPFPOINT = 0x00010000;
1221const UINT WINED3DPTFILTERCAPS_MIPFLINEAR = 0x00020000;
1222const UINT WINED3DPTFILTERCAPS_MAGFPOINT = 0x01000000;
1223const UINT WINED3DPTFILTERCAPS_MAGFLINEAR = 0x02000000;
1224const UINT WINED3DPTFILTERCAPS_MAGFANISOTROPIC = 0x04000000;
1225const UINT WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD = 0x08000000;
1226const UINT WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD = 0x10000000;
1227
1228const UINT WINED3DVTXPCAPS_TEXGEN = 0x00000001;
1229const UINT WINED3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002;
1230const UINT WINED3DVTXPCAPS_VERTEXFOG = 0x00000004;
1231const UINT WINED3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008;
1232const UINT WINED3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010;
1233const UINT WINED3DVTXPCAPS_LOCALVIEWER = 0x00000020;
1234const UINT WINED3DVTXPCAPS_TWEENING = 0x00000040;
1235const UINT WINED3DVTXPCAPS_TEXGEN_SPHEREMAP = 0x00000100;
1236const UINT WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER = 0x00000200;
1237
1238const UINT WINED3DCURSORCAPS_COLOR = 0x00000001;
1239const UINT WINED3DCURSORCAPS_LOWRES = 0x00000002;
1240
1241const UINT WINED3DDEVCAPS_FLOATTLVERTEX = 0x00000001;
1242const UINT WINED3DDEVCAPS_SORTINCREASINGZ = 0x00000002;
1243const UINT WINED3DDEVCAPS_SORTDECREASINGZ = 0X00000004;
1244const UINT WINED3DDEVCAPS_SORTEXACT = 0x00000008;
1245const UINT WINED3DDEVCAPS_EXECUTESYSTEMMEMORY = 0x00000010;
1246const UINT WINED3DDEVCAPS_EXECUTEVIDEOMEMORY = 0x00000020;
1247const UINT WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY = 0x00000040;
1248const UINT WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY = 0x00000080;
1249const UINT WINED3DDEVCAPS_TEXTURESYSTEMMEMORY = 0x00000100;
1250const UINT WINED3DDEVCAPS_TEXTUREVIDEOMEMORY = 0x00000200;
1251const UINT WINED3DDEVCAPS_DRAWPRIMTLVERTEX = 0x00000400;
1252const UINT WINED3DDEVCAPS_CANRENDERAFTERFLIP = 0x00000800;
1253const UINT WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM = 0x00001000;
1254const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2 = 0x00002000;
1255const UINT WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES = 0x00004000;
1256const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2EX = 0x00008000;
1257const UINT WINED3DDEVCAPS_HWTRANSFORMANDLIGHT = 0x00010000;
1258const UINT WINED3DDEVCAPS_CANBLTSYSTONONLOCAL = 0x00020000;
1259const UINT WINED3DDEVCAPS_HWRASTERIZATION = 0x00080000;
1260const UINT WINED3DDEVCAPS_PUREDEVICE = 0x00100000;
1261const UINT WINED3DDEVCAPS_QUINTICRTPATCHES = 0x00200000;
1262const UINT WINED3DDEVCAPS_RTPATCHES = 0x00400000;
1263const UINT WINED3DDEVCAPS_RTPATCHHANDLEZERO = 0x00800000;
1264const UINT WINED3DDEVCAPS_NPATCHES = 0x01000000;
1265
1266/* dwDDFX */
1267/* arithmetic stretching along y axis */
1268const UINT WINEDDBLTFX_ARITHSTRETCHY = 0x00000001;
1269/* mirror on y axis */
1270const UINT WINEDDBLTFX_MIRRORLEFTRIGHT = 0x00000002;
1271/* mirror on x axis */
1272const UINT WINEDDBLTFX_MIRRORUPDOWN = 0x00000004;
1273/* do not tear */
1274const UINT WINEDDBLTFX_NOTEARING = 0x00000008;
1275/* 180 degrees clockwise rotation */
1276const UINT WINEDDBLTFX_ROTATE180 = 0x00000010;
1277/* 270 degrees clockwise rotation */
1278const UINT WINEDDBLTFX_ROTATE270 = 0x00000020;
1279/* 90 degrees clockwise rotation */
1280const UINT WINEDDBLTFX_ROTATE90 = 0x00000040;
1281/* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
1282const UINT WINEDDBLTFX_ZBUFFERRANGE = 0x00000080;
1283/* add dwZBufferBaseDest to every source z value before compare */
1284const UINT WINEDDBLTFX_ZBUFFERBASEDEST = 0x00000100;
1285
1286/* dwFlags for Blt* */
1287const UINT WINEDDBLT_ALPHADEST = 0x00000001;
1288const UINT WINEDDBLT_ALPHADESTCONSTOVERRIDE = 0x00000002;
1289const UINT WINEDDBLT_ALPHADESTNEG = 0x00000004;
1290const UINT WINEDDBLT_ALPHADESTSURFACEOVERRIDE = 0x00000008;
1291const UINT WINEDDBLT_ALPHAEDGEBLEND = 0x00000010;
1292const UINT WINEDDBLT_ALPHASRC = 0x00000020;
1293const UINT WINEDDBLT_ALPHASRCCONSTOVERRIDE = 0x00000040;
1294const UINT WINEDDBLT_ALPHASRCNEG = 0x00000080;
1295const UINT WINEDDBLT_ALPHASRCSURFACEOVERRIDE = 0x00000100;
1296const UINT WINEDDBLT_ASYNC = 0x00000200;
1297const UINT WINEDDBLT_COLORFILL = 0x00000400;
1298const UINT WINEDDBLT_DDFX = 0x00000800;
1299const UINT WINEDDBLT_DDROPS = 0x00001000;
1300const UINT WINEDDBLT_KEYDEST = 0x00002000;
1301const UINT WINEDDBLT_KEYDESTOVERRIDE = 0x00004000;
1302const UINT WINEDDBLT_KEYSRC = 0x00008000;
1303const UINT WINEDDBLT_KEYSRCOVERRIDE = 0x00010000;
1304const UINT WINEDDBLT_ROP = 0x00020000;
1305const UINT WINEDDBLT_ROTATIONANGLE = 0x00040000;
1306const UINT WINEDDBLT_ZBUFFER = 0x00080000;
1307const UINT WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE = 0x00100000;
1308const UINT WINEDDBLT_ZBUFFERDESTOVERRIDE = 0x00200000;
1309const UINT WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE = 0x00400000;
1310const UINT WINEDDBLT_ZBUFFERSRCOVERRIDE = 0x00800000;
1311const UINT WINEDDBLT_WAIT = 0x01000000;
1312const UINT WINEDDBLT_DEPTHFILL = 0x02000000;
1313const UINT WINEDDBLT_DONOTWAIT = 0x08000000;
1314
1315/* dwTrans for BltFast */
1316const UINT WINEDDBLTFAST_NOCOLORKEY = 0x00000000;
1317const UINT WINEDDBLTFAST_SRCCOLORKEY = 0x00000001;
1318const UINT WINEDDBLTFAST_DESTCOLORKEY = 0x00000002;
1319const UINT WINEDDBLTFAST_WAIT = 0x00000010;
1320const UINT WINEDDBLTFAST_DONOTWAIT = 0x00000020;
1321
1322/* DDSURFACEDESC.dwFlags */
1323const UINT WINEDDSD_CAPS = 0x00000001;
1324const UINT WINEDDSD_HEIGHT = 0x00000002;
1325const UINT WINEDDSD_WIDTH = 0x00000004;
1326const UINT WINEDDSD_PITCH = 0x00000008;
1327const UINT WINEDDSD_BACKBUFFERCOUNT = 0x00000020;
1328const UINT WINEDDSD_ZBUFFERBITDEPTH = 0x00000040;
1329const UINT WINEDDSD_ALPHABITDEPTH = 0x00000080;
1330const UINT WINEDDSD_LPSURFACE = 0x00000800;
1331const UINT WINEDDSD_PIXELFORMAT = 0x00001000;
1332const UINT WINEDDSD_CKDESTOVERLAY = 0x00002000;
1333const UINT WINEDDSD_CKDESTBLT = 0x00004000;
1334const UINT WINEDDSD_CKSRCOVERLAY = 0x00008000;
1335const UINT WINEDDSD_CKSRCBLT = 0x00010000;
1336const UINT WINEDDSD_MIPMAPCOUNT = 0x00020000;
1337const UINT WINEDDSD_REFRESHRATE = 0x00040000;
1338const UINT WINEDDSD_LINEARSIZE = 0x00080000;
1339const UINT WINEDDSD_TEXTURESTAGE = 0x00100000;
1340const UINT WINEDDSD_FVF = 0x00200000;
1341const UINT WINEDDSD_SRCVBHANDLE = 0x00400000;
1342const UINT WINEDDSD_ALL = 0x007ff9ee;
1343
1344/* Set/Get Colour Key Flags */
1345const UINT WINEDDCKEY_COLORSPACE = 0x00000001; /* Struct is single colour space */
1346const UINT WINEDDCKEY_DESTBLT = 0x00000002; /* To be used as dest for blt */
1347const UINT WINEDDCKEY_DESTOVERLAY = 0x00000004; /* To be used as dest for CK overlays */
1348const UINT WINEDDCKEY_SRCBLT = 0x00000008; /* To be used as src for blt */
1349const UINT WINEDDCKEY_SRCOVERLAY = 0x00000010; /* To be used as src for CK overlays */
1350
1351/* dwFlags for GetBltStatus */
1352const UINT WINEDDGBS_CANBLT = 0x00000001;
1353const UINT WINEDDGBS_ISBLTDONE = 0x00000002;
1354
1355/* dwFlags for GetFlipStatus */
1356const UINT WINEDDGFS_CANFLIP = 0x00000001;
1357const UINT WINEDDGFS_ISFLIPDONE = 0x00000002;
1358
1359/* dwFlags for Flip */
1360const UINT WINEDDFLIP_WAIT = 0x00000001;
1361const UINT WINEDDFLIP_EVEN = 0x00000002; /* only valid for overlay */
1362const UINT WINEDDFLIP_ODD = 0x00000004; /* only valid for overlay */
1363const UINT WINEDDFLIP_NOVSYNC = 0x00000008;
1364const UINT WINEDDFLIP_STEREO = 0x00000010;
1365const UINT WINEDDFLIP_DONOTWAIT = 0x00000020;
1366const UINT WINEDDFLIP_INTERVAL2 = 0x02000000;
1367const UINT WINEDDFLIP_INTERVAL3 = 0x03000000;
1368const UINT WINEDDFLIP_INTERVAL4 = 0x04000000;
1369
1370const UINT WINEDDOVER_ALPHADEST = 0x00000001;
1371const UINT WINEDDOVER_ALPHADESTCONSTOVERRIDE = 0x00000002;
1372const UINT WINEDDOVER_ALPHADESTNEG = 0x00000004;
1373const UINT WINEDDOVER_ALPHADESTSURFACEOVERRIDE = 0x00000008;
1374const UINT WINEDDOVER_ALPHAEDGEBLEND = 0x00000010;
1375const UINT WINEDDOVER_ALPHASRC = 0x00000020;
1376const UINT WINEDDOVER_ALPHASRCCONSTOVERRIDE = 0x00000040;
1377const UINT WINEDDOVER_ALPHASRCNEG = 0x00000080;
1378const UINT WINEDDOVER_ALPHASRCSURFACEOVERRIDE = 0x00000100;
1379const UINT WINEDDOVER_HIDE = 0x00000200;
1380const UINT WINEDDOVER_KEYDEST = 0x00000400;
1381const UINT WINEDDOVER_KEYDESTOVERRIDE = 0x00000800;
1382const UINT WINEDDOVER_KEYSRC = 0x00001000;
1383const UINT WINEDDOVER_KEYSRCOVERRIDE = 0x00002000;
1384const UINT WINEDDOVER_SHOW = 0x00004000;
1385const UINT WINEDDOVER_ADDDIRTYRECT = 0x00008000;
1386const UINT WINEDDOVER_REFRESHDIRTYRECTS = 0x00010000;
1387const UINT WINEDDOVER_REFRESHALL = 0x00020000;
1388const UINT WINEDDOVER_DDFX = 0x00080000;
1389const UINT WINEDDOVER_AUTOFLIP = 0x00100000;
1390const UINT WINEDDOVER_BOB = 0x00200000;
1391const UINT WINEDDOVER_OVERRIDEBOBWEAVE = 0x00400000;
1392const UINT WINEDDOVER_INTERLEAVED = 0x00800000;
1393
1394/* DirectDraw Caps */
1395const UINT WINEDDSCAPS_RESERVED1 = 0x00000001;
1396const UINT WINEDDSCAPS_ALPHA = 0x00000002;
1397const UINT WINEDDSCAPS_BACKBUFFER = 0x00000004;
1398const UINT WINEDDSCAPS_COMPLEX = 0x00000008;
1399const UINT WINEDDSCAPS_FLIP = 0x00000010;
1400const UINT WINEDDSCAPS_FRONTBUFFER = 0x00000020;
1401const UINT WINEDDSCAPS_OFFSCREENPLAIN = 0x00000040;
1402const UINT WINEDDSCAPS_OVERLAY = 0x00000080;
1403const UINT WINEDDSCAPS_PALETTE = 0x00000100;
1404const UINT WINEDDSCAPS_PRIMARYSURFACE = 0x00000200;
1405const UINT WINEDDSCAPS_PRIMARYSURFACELEFT = 0x00000400;
1406const UINT WINEDDSCAPS_SYSTEMMEMORY = 0x00000800;
1407const UINT WINEDDSCAPS_TEXTURE = 0x00001000;
1408const UINT WINEDDSCAPS_3DDEVICE = 0x00002000;
1409const UINT WINEDDSCAPS_VIDEOMEMORY = 0x00004000;
1410const UINT WINEDDSCAPS_VISIBLE = 0x00008000;
1411const UINT WINEDDSCAPS_WRITEONLY = 0x00010000;
1412const UINT WINEDDSCAPS_ZBUFFER = 0x00020000;
1413const UINT WINEDDSCAPS_OWNDC = 0x00040000;
1414const UINT WINEDDSCAPS_LIVEVIDEO = 0x00080000;
1415const UINT WINEDDSCAPS_HWCODEC = 0x00100000;
1416const UINT WINEDDSCAPS_MODEX = 0x00200000;
1417const UINT WINEDDSCAPS_MIPMAP = 0x00400000;
1418const UINT WINEDDSCAPS_RESERVED2 = 0x00800000;
1419const UINT WINEDDSCAPS_ALLOCONLOAD = 0x04000000;
1420const UINT WINEDDSCAPS_VIDEOPORT = 0x08000000;
1421const UINT WINEDDSCAPS_LOCALVIDMEM = 0x10000000;
1422const UINT WINEDDSCAPS_NONLOCALVIDMEM = 0x20000000;
1423const UINT WINEDDSCAPS_STANDARDVGAMODE = 0x40000000;
1424const UINT WINEDDSCAPS_OPTIMIZED = 0x80000000;
1425
1426const UINT WINEDDCKEYCAPS_DESTBLT = 0x00000001;
1427const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACE = 0x00000002;
1428const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV = 0x00000004;
1429const UINT WINEDDCKEYCAPS_DESTBLTYUV = 0x00000008;
1430const UINT WINEDDCKEYCAPS_DESTOVERLAY = 0x00000010;
1431const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE = 0x00000020;
1432const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV = 0x00000040;
1433const UINT WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE = 0x00000080;
1434const UINT WINEDDCKEYCAPS_DESTOVERLAYYUV = 0x00000100;
1435const UINT WINEDDCKEYCAPS_SRCBLT = 0x00000200;
1436const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACE = 0x00000400;
1437const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV = 0x00000800;
1438const UINT WINEDDCKEYCAPS_SRCBLTYUV = 0x00001000;
1439const UINT WINEDDCKEYCAPS_SRCOVERLAY = 0x00002000;
1440const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE = 0x00004000;
1441const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV = 0x00008000;
1442const UINT WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE = 0x00010000;
1443const UINT WINEDDCKEYCAPS_SRCOVERLAYYUV = 0x00020000;
1444const UINT WINEDDCKEYCAPS_NOCOSTOVERLAY = 0x00040000;
1445
1446const UINT WINEDDFXCAPS_BLTALPHA = 0x00000001;
1447const UINT WINEDDFXCAPS_OVERLAYALPHA = 0x00000004;
1448const UINT WINEDDFXCAPS_BLTARITHSTRETCHYN = 0x00000010;
1449const UINT WINEDDFXCAPS_BLTARITHSTRETCHY = 0x00000020;
1450const UINT WINEDDFXCAPS_BLTMIRRORLEFTRIGHT = 0x00000040;
1451const UINT WINEDDFXCAPS_BLTMIRRORUPDOWN = 0x00000080;
1452const UINT WINEDDFXCAPS_BLTROTATION = 0x00000100;
1453const UINT WINEDDFXCAPS_BLTROTATION90 = 0x00000200;
1454const UINT WINEDDFXCAPS_BLTSHRINKX = 0x00000400;
1455const UINT WINEDDFXCAPS_BLTSHRINKXN = 0x00000800;
1456const UINT WINEDDFXCAPS_BLTSHRINKY = 0x00001000;
1457const UINT WINEDDFXCAPS_BLTSHRINKYN = 0x00002000;
1458const UINT WINEDDFXCAPS_BLTSTRETCHX = 0x00004000;
1459const UINT WINEDDFXCAPS_BLTSTRETCHXN = 0x00008000;
1460const UINT WINEDDFXCAPS_BLTSTRETCHY = 0x00010000;
1461const UINT WINEDDFXCAPS_BLTSTRETCHYN = 0x00020000;
1462const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHY = 0x00040000;
1463const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHYN = 0x00000008;
1464const UINT WINEDDFXCAPS_OVERLAYSHRINKX = 0x00080000;
1465const UINT WINEDDFXCAPS_OVERLAYSHRINKXN = 0x00100000;
1466const UINT WINEDDFXCAPS_OVERLAYSHRINKY = 0x00200000;
1467const UINT WINEDDFXCAPS_OVERLAYSHRINKYN = 0x00400000;
1468const UINT WINEDDFXCAPS_OVERLAYSTRETCHX = 0x00800000;
1469const UINT WINEDDFXCAPS_OVERLAYSTRETCHXN = 0x01000000;
1470const UINT WINEDDFXCAPS_OVERLAYSTRETCHY = 0x02000000;
1471const UINT WINEDDFXCAPS_OVERLAYSTRETCHYN = 0x04000000;
1472const UINT WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT = 0x08000000;
1473const UINT WINEDDFXCAPS_OVERLAYMIRRORUPDOWN = 0x10000000;
1474
1475const UINT WINEDDCAPS_3D = 0x00000001;
1476const UINT WINEDDCAPS_ALIGNBOUNDARYDEST = 0x00000002;
1477const UINT WINEDDCAPS_ALIGNSIZEDEST = 0x00000004;
1478const UINT WINEDDCAPS_ALIGNBOUNDARYSRC = 0x00000008;
1479const UINT WINEDDCAPS_ALIGNSIZESRC = 0x00000010;
1480const UINT WINEDDCAPS_ALIGNSTRIDE = 0x00000020;
1481const UINT WINEDDCAPS_BLT = 0x00000040;
1482const UINT WINEDDCAPS_BLTQUEUE = 0x00000080;
1483const UINT WINEDDCAPS_BLTFOURCC = 0x00000100;
1484const UINT WINEDDCAPS_BLTSTRETCH = 0x00000200;
1485const UINT WINEDDCAPS_GDI = 0x00000400;
1486const UINT WINEDDCAPS_OVERLAY = 0x00000800;
1487const UINT WINEDDCAPS_OVERLAYCANTCLIP = 0x00001000;
1488const UINT WINEDDCAPS_OVERLAYFOURCC = 0x00002000;
1489const UINT WINEDDCAPS_OVERLAYSTRETCH = 0x00004000;
1490const UINT WINEDDCAPS_PALETTE = 0x00008000;
1491const UINT WINEDDCAPS_PALETTEVSYNC = 0x00010000;
1492const UINT WINEDDCAPS_READSCANLINE = 0x00020000;
1493const UINT WINEDDCAPS_STEREOVIEW = 0x00040000;
1494const UINT WINEDDCAPS_VBI = 0x00080000;
1495const UINT WINEDDCAPS_ZBLTS = 0x00100000;
1496const UINT WINEDDCAPS_ZOVERLAYS = 0x00200000;
1497const UINT WINEDDCAPS_COLORKEY = 0x00400000;
1498const UINT WINEDDCAPS_ALPHA = 0x00800000;
1499const UINT WINEDDCAPS_COLORKEYHWASSIST = 0x01000000;
1500const UINT WINEDDCAPS_NOHARDWARE = 0x02000000;
1501const UINT WINEDDCAPS_BLTCOLORFILL = 0x04000000;
1502const UINT WINEDDCAPS_BANKSWITCHED = 0x08000000;
1503const UINT WINEDDCAPS_BLTDEPTHFILL = 0x10000000;
1504const UINT WINEDDCAPS_CANCLIP = 0x20000000;
1505const UINT WINEDDCAPS_CANCLIPSTRETCHED = 0x40000000;
1506const UINT WINEDDCAPS_CANBLTSYSMEM = 0x80000000;
1507
1508const UINT WINEDDCAPS2_CERTIFIED = 0x00000001;
1509const UINT WINEDDCAPS2_NO2DDURING3DSCENE = 0x00000002;
1510const UINT WINEDDCAPS2_VIDEOPORT = 0x00000004;
1511const UINT WINEDDCAPS2_AUTOFLIPOVERLAY = 0x00000008;
1512const UINT WINEDDCAPS2_CANBOBINTERLEAVED = 0x00000010;
1513const UINT WINEDDCAPS2_CANBOBNONINTERLEAVED = 0x00000020;
1514const UINT WINEDDCAPS2_COLORCONTROLOVERLAY = 0x00000040;
1515const UINT WINEDDCAPS2_COLORCONTROLPRIMARY = 0x00000080;
1516const UINT WINEDDCAPS2_CANDROPZ16BIT = 0x00000100;
1517const UINT WINEDDCAPS2_NONLOCALVIDMEM = 0x00000200;
1518const UINT WINEDDCAPS2_NONLOCALVIDMEMCAPS = 0x00000400;
1519const UINT WINEDDCAPS2_NOPAGELOCKREQUIRED = 0x00000800;
1520const UINT WINEDDCAPS2_WIDESURFACES = 0x00001000;
1521const UINT WINEDDCAPS2_CANFLIPODDEVEN = 0x00002000;
1522const UINT WINEDDCAPS2_CANBOBHARDWARE = 0x00004000;
1523const UINT WINEDDCAPS2_COPYFOURCC = 0x00008000;
1524const UINT WINEDDCAPS2_PRIMARYGAMMA = 0x00020000;
1525const UINT WINEDDCAPS2_CANRENDERWINDOWED = 0x00080000;
1526const UINT WINEDDCAPS2_CANCALIBRATEGAMMA = 0x00100000;
1527const UINT WINEDDCAPS2_FLIPINTERVAL = 0x00200000;
1528const UINT WINEDDCAPS2_FLIPNOVSYNC = 0x00400000;
1529const UINT WINEDDCAPS2_CANMANAGETEXTURE = 0x00800000;
1530const UINT WINEDDCAPS2_TEXMANINNONLOCALVIDMEM = 0x01000000;
1531const UINT WINEDDCAPS2_STEREO = 0x02000000;
1532const UINT WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL = 0x04000000;
1533
1534/* DDCAPS.d */
1535const UINT WINEDDPCAPS_4BIT = 0x00000001;
1536const UINT WINEDDPCAPS_8BITENTRIES = 0x00000002;
1537const UINT WINEDDPCAPS_8BIT = 0x00000004;
1538const UINT WINEDDPCAPS_INITIALIZE = 0x00000008;
1539const UINT WINEDDPCAPS_PRIMARYSURFACE = 0x00000010;
1540const UINT WINEDDPCAPS_PRIMARYSURFACELEFT = 0x00000020;
1541const UINT WINEDDPCAPS_ALLOW256 = 0x00000040;
1542const UINT WINEDDPCAPS_VSYNC = 0x00000080;
1543const UINT WINEDDPCAPS_1BIT = 0x00000100;
1544const UINT WINEDDPCAPS_2BIT = 0x00000200;
1545const UINT WINEDDPCAPS_ALPHA = 0x00000400;
1546
1547typedef struct _WINED3DDISPLAYMODE
1548{
1549 UINT Width;
1550 UINT Height;
1551 UINT RefreshRate;
1552 WINED3DFORMAT Format;
1553} WINED3DDISPLAYMODE;
1554
1555typedef struct _WINED3DCOLORVALUE
1556{
1557 float r;
1558 float g;
1559 float b;
1560 float a;
1561} WINED3DCOLORVALUE;
1562
1563typedef struct _WINED3DVECTOR
1564{
1565 float x;
1566 float y;
1567 float z;
1568} WINED3DVECTOR;
1569
1570typedef struct _WINED3DMATRIX
1571{
1572 union
1573 {
1574 struct
1575 {
1576 float _11, _12, _13, _14;
1577 float _21, _22, _23, _24;
1578 float _31, _32, _33, _34;
1579 float _41, _42, _43, _44;
1580 } DUMMYSTRUCTNAME;
1581 float m[4][4];
1582 } DUMMYUNIONNAME;
1583} WINED3DMATRIX;
1584
1585typedef struct _WINED3DRECT
1586{
1587 LONG x1;
1588 LONG y1;
1589 LONG x2;
1590 LONG y2;
1591} WINED3DRECT;
1592
1593typedef struct _WINED3DLIGHT
1594{
1595 WINED3DLIGHTTYPE Type;
1596 WINED3DCOLORVALUE Diffuse;
1597 WINED3DCOLORVALUE Specular;
1598 WINED3DCOLORVALUE Ambient;
1599 WINED3DVECTOR Position;
1600 WINED3DVECTOR Direction;
1601 float Range;
1602 float Falloff;
1603 float Attenuation0;
1604 float Attenuation1;
1605 float Attenuation2;
1606 float Theta;
1607 float Phi;
1608} WINED3DLIGHT;
1609
1610typedef struct _WINED3DMATERIAL
1611{
1612 WINED3DCOLORVALUE Diffuse;
1613 WINED3DCOLORVALUE Ambient;
1614 WINED3DCOLORVALUE Specular;
1615 WINED3DCOLORVALUE Emissive;
1616 float Power;
1617} WINED3DMATERIAL;
1618
1619typedef struct _WINED3DVIEWPORT
1620{
1621 DWORD X;
1622 DWORD Y;
1623 DWORD Width;
1624 DWORD Height;
1625 float MinZ;
1626 float MaxZ;
1627} WINED3DVIEWPORT;
1628
1629typedef struct _WINED3DGAMMARAMP
1630{
1631 WORD red[256];
1632 WORD green[256];
1633 WORD blue[256];
1634} WINED3DGAMMARAMP;
1635
1636typedef struct _WINED3DLINEPATTERN
1637{
1638 WORD wRepeatFactor;
1639 WORD wLinePattern;
1640} WINED3DLINEPATTERN;
1641
1642typedef struct _WINEDD3DRECTPATCH_INFO
1643{
1644 UINT StartVertexOffsetWidth;
1645 UINT StartVertexOffsetHeight;
1646 UINT Width;
1647 UINT Height;
1648 UINT Stride;
1649 WINED3DBASISTYPE Basis;
1650 WINED3DDEGREETYPE Degree;
1651} WINED3DRECTPATCH_INFO;
1652
1653typedef struct _WINED3DTRIPATCH_INFO
1654{
1655 UINT StartVertexOffset;
1656 UINT NumVertices;
1657 WINED3DBASISTYPE Basis;
1658 WINED3DDEGREETYPE Degree;
1659} WINED3DTRIPATCH_INFO;
1660
1661typedef struct _WINED3DADAPTER_IDENTIFIER
1662{
1663 char *driver;
1664 UINT driver_size;
1665 char *description;
1666 UINT description_size;
1667 char *device_name;
1668 UINT device_name_size;
1669 LARGE_INTEGER driver_version;
1670 DWORD vendor_id;
1671 DWORD device_id;
1672 DWORD subsystem_id;
1673 DWORD revision;
1674 GUID device_identifier;
1675 DWORD whql_level;
1676 LUID adapter_luid;
1677 SIZE_T video_memory;
1678} WINED3DADAPTER_IDENTIFIER;
1679
1680typedef struct _WINED3DPRESENT_PARAMETERS
1681{
1682 UINT BackBufferWidth;
1683 UINT BackBufferHeight;
1684 WINED3DFORMAT BackBufferFormat;
1685 UINT BackBufferCount;
1686 WINED3DMULTISAMPLE_TYPE MultiSampleType;
1687 DWORD MultiSampleQuality;
1688 WINED3DSWAPEFFECT SwapEffect;
1689 HWND hDeviceWindow;
1690 BOOL Windowed;
1691 BOOL EnableAutoDepthStencil;
1692 WINED3DFORMAT AutoDepthStencilFormat;
1693 DWORD Flags;
1694 UINT FullScreen_RefreshRateInHz;
1695 UINT PresentationInterval;
1696 BOOL AutoRestoreDisplayMode;
1697} WINED3DPRESENT_PARAMETERS;
1698
1699typedef struct _WINED3DSURFACE_DESC
1700{
1701 WINED3DFORMAT format;
1702 WINED3DRESOURCETYPE resource_type;
1703 DWORD usage;
1704 WINED3DPOOL pool;
1705 UINT size;
1706 WINED3DMULTISAMPLE_TYPE multisample_type;
1707 DWORD multisample_quality;
1708 UINT width;
1709 UINT height;
1710} WINED3DSURFACE_DESC;
1711
1712typedef struct _WINED3DVOLUME_DESC
1713{
1714 WINED3DFORMAT Format;
1715 WINED3DRESOURCETYPE Type;
1716 DWORD Usage;
1717 WINED3DPOOL Pool;
1718 UINT Size;
1719 UINT Width;
1720 UINT Height;
1721 UINT Depth;
1722} WINED3DVOLUME_DESC;
1723
1724typedef struct _WINED3DCLIPSTATUS
1725{
1726 DWORD ClipUnion;
1727 DWORD ClipIntersection;
1728} WINED3DCLIPSTATUS;
1729
1730typedef struct _WINED3DVERTEXELEMENT
1731{
1732 WINED3DFORMAT format;
1733 WORD input_slot;
1734 WORD offset;
1735 UINT output_slot; /* D3D 8 & 10 */
1736 BYTE method;
1737 BYTE usage;
1738 BYTE usage_idx;
1739} WINED3DVERTEXELEMENT;
1740
1741typedef struct _WINED3DDEVICE_CREATION_PARAMETERS
1742{
1743 UINT AdapterOrdinal;
1744 WINED3DDEVTYPE DeviceType;
1745 HWND hFocusWindow;
1746 DWORD BehaviorFlags;
1747} WINED3DDEVICE_CREATION_PARAMETERS;
1748
1749typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS
1750{
1751 float MaxBandwidthUtilized;
1752 float FrontEndUploadMemoryUtilizedPercent;
1753 float VertexRateUtilizedPercent;
1754 float TriangleSetupRateUtilizedPercent;
1755 float FillRateUtilizedPercent;
1756} WINED3DDEVINFO_BANDWIDTHTIMINGS;
1757
1758typedef struct _WINED3DDEVINFO_CACHEUTILIZATION
1759{
1760 float TextureCacheHitRate;
1761 float PostTransformVertexCacheHitRate;
1762} WINED3DDEVINFO_CACHEUTILIZATION;
1763
1764typedef struct _WINED3DDEVINFO_INTERFACETIMINGS
1765{
1766 float WaitingForGPUToUseApplicationResourceTimePercent;
1767 float WaitingForGPUToAcceptMoreCommandsTimePercent;
1768 float WaitingForGPUToStayWithinLatencyTimePercent;
1769 float WaitingForGPUExclusiveResourceTimePercent;
1770 float WaitingForGPUOtherTimePercent;
1771} WINED3DDEVINFO_INTERFACETIMINGS;
1772
1773typedef struct _WINED3DDEVINFO_PIPELINETIMINGS
1774{
1775 float VertexProcessingTimePercent;
1776 float PixelProcessingTimePercent;
1777 float OtherGPUProcessingTimePercent;
1778 float GPUIdleTimePercent;
1779} WINED3DDEVINFO_PIPELINETIMINGS;
1780
1781typedef struct _WINED3DDEVINFO_STAGETIMINGS
1782{
1783 float MemoryProcessingPercent;
1784 float ComputationProcessingPercent;
1785} WINED3DDEVINFO_STAGETIMINGS;
1786
1787typedef struct _WINED3DRASTER_STATUS
1788{
1789 BOOL InVBlank;
1790 UINT ScanLine;
1791} WINED3DRASTER_STATUS;
1792
1793typedef struct WINED3DRESOURCESTATS
1794{
1795 BOOL bThrashing;
1796 DWORD ApproxBytesDownloaded;
1797 DWORD NumEvicts;
1798 DWORD NumVidCreates;
1799 DWORD LastPri;
1800 DWORD NumUsed;
1801 DWORD NumUsedInVidMem;
1802 DWORD WorkingSet;
1803 DWORD WorkingSetBytes;
1804 DWORD TotalManaged;
1805 DWORD TotalBytes;
1806} WINED3DRESOURCESTATS;
1807
1808typedef struct _WINED3DDEVINFO_RESOURCEMANAGER
1809{
1810 WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
1811} WINED3DDEVINFO_RESOURCEMANAGER;
1812
1813typedef struct _WINED3DDEVINFO_VERTEXSTATS
1814{
1815 DWORD NumRenderedTriangles;
1816 DWORD NumExtraClippingTriangles;
1817} WINED3DDEVINFO_VERTEXSTATS;
1818
1819typedef struct _WINED3DLOCKED_RECT
1820{
1821 INT Pitch;
1822 void *pBits;
1823} WINED3DLOCKED_RECT;
1824
1825typedef struct _WINED3DLOCKED_BOX
1826{
1827 INT RowPitch;
1828 INT SlicePitch;
1829 void *pBits;
1830} WINED3DLOCKED_BOX;
1831
1832typedef struct _WINED3DBOX
1833{
1834 UINT Left;
1835 UINT Top;
1836 UINT Right;
1837 UINT Bottom;
1838 UINT Front;
1839 UINT Back;
1840} WINED3DBOX;
1841
1842/*Vertex cache optimization hints.*/
1843typedef struct WINED3DDEVINFO_VCACHE
1844{
1845 DWORD Pattern; /* Must be a 4 char code FOURCC (e.g. CACH) */
1846 DWORD OptMethod; /* 0 to get the longest strips, 1 vertex cache */
1847 DWORD CacheSize; /* Cache size to use (only valid if OptMethod==1) */
1848 DWORD MagicNumber; /* Internal for deciding when to restart strips,
1849 non user modifiable (only valid if OptMethod==1) */
1850} WINED3DDEVINFO_VCACHE;
1851
1852typedef struct _WINED3DBUFFER_DESC
1853{
1854 WINED3DRESOURCETYPE Type;
1855 DWORD Usage;
1856 WINED3DPOOL Pool;
1857 UINT Size;
1858} WINED3DBUFFER_DESC;
1859
1860typedef struct WineDirect3DStridedData
1861{
1862 WINED3DFORMAT format; /* Format of the data */
1863 const BYTE *lpData; /* Pointer to start of data */
1864 DWORD dwStride; /* Stride between occurrences of this data */
1865} WineDirect3DStridedData;
1866
1867typedef struct WineDirect3DVertexStridedData
1868{
1869 WineDirect3DStridedData position;
1870 WineDirect3DStridedData normal;
1871 WineDirect3DStridedData diffuse;
1872 WineDirect3DStridedData specular;
1873 WineDirect3DStridedData texCoords[WINED3DDP_MAXTEXCOORD];
1874 BOOL position_transformed;
1875} WineDirect3DVertexStridedData;
1876
1877typedef struct _WINED3DVSHADERCAPS2_0
1878{
1879 DWORD Caps;
1880 INT DynamicFlowControlDepth;
1881 INT NumTemps;
1882 INT StaticFlowControlDepth;
1883} WINED3DVSHADERCAPS2_0;
1884
1885typedef struct _WINED3DPSHADERCAPS2_0
1886{
1887 DWORD Caps;
1888 INT DynamicFlowControlDepth;
1889 INT NumTemps;
1890 INT StaticFlowControlDepth;
1891 INT NumInstructionSlots;
1892} WINED3DPSHADERCAPS2_0;
1893
1894typedef struct _WINEDDCAPS
1895{
1896 DWORD Caps;
1897 DWORD Caps2;
1898 DWORD CKeyCaps;
1899 DWORD FXCaps;
1900 DWORD FXAlphaCaps;
1901 DWORD PalCaps;
1902 DWORD SVCaps;
1903 DWORD SVBCaps;
1904 DWORD SVBCKeyCaps;
1905 DWORD SVBFXCaps;
1906 DWORD VSBCaps;
1907 DWORD VSBCKeyCaps;
1908 DWORD VSBFXCaps;
1909 DWORD SSBCaps;
1910 DWORD SSBCKeyCaps;
1911 DWORD SSBFXCaps;
1912 DWORD ddsCaps;
1913 DWORD StrideAlign;
1914} WINEDDCAPS;
1915
1916typedef struct _WINED3DCAPS
1917{
1918 WINED3DDEVTYPE DeviceType;
1919 UINT AdapterOrdinal;
1920
1921 DWORD Caps;
1922 DWORD Caps2;
1923 DWORD Caps3;
1924 DWORD PresentationIntervals;
1925
1926 DWORD CursorCaps;
1927 DWORD DevCaps;
1928 DWORD PrimitiveMiscCaps;
1929 DWORD RasterCaps;
1930 DWORD ZCmpCaps;
1931 DWORD SrcBlendCaps;
1932 DWORD DestBlendCaps;
1933 DWORD AlphaCmpCaps;
1934 DWORD ShadeCaps;
1935 DWORD TextureCaps;
1936 DWORD TextureFilterCaps;
1937 DWORD CubeTextureFilterCaps;
1938 DWORD VolumeTextureFilterCaps;
1939 DWORD TextureAddressCaps;
1940 DWORD VolumeTextureAddressCaps;
1941 DWORD LineCaps;
1942
1943 DWORD MaxTextureWidth;
1944 DWORD MaxTextureHeight;
1945 DWORD MaxVolumeExtent;
1946 DWORD MaxTextureRepeat;
1947 DWORD MaxTextureAspectRatio;
1948 DWORD MaxAnisotropy;
1949 float MaxVertexW;
1950
1951 float GuardBandLeft;
1952 float GuardBandTop;
1953 float GuardBandRight;
1954 float GuardBandBottom;
1955
1956 float ExtentsAdjust;
1957 DWORD StencilCaps;
1958
1959 DWORD FVFCaps;
1960 DWORD TextureOpCaps;
1961 DWORD MaxTextureBlendStages;
1962 DWORD MaxSimultaneousTextures;
1963
1964 DWORD VertexProcessingCaps;
1965 DWORD MaxActiveLights;
1966 DWORD MaxUserClipPlanes;
1967 DWORD MaxVertexBlendMatrices;
1968 DWORD MaxVertexBlendMatrixIndex;
1969
1970 float MaxPointSize;
1971
1972 DWORD MaxPrimitiveCount;
1973 DWORD MaxVertexIndex;
1974 DWORD MaxStreams;
1975 DWORD MaxStreamStride;
1976
1977 DWORD VertexShaderVersion;
1978 DWORD MaxVertexShaderConst;
1979
1980 DWORD PixelShaderVersion;
1981 float PixelShader1xMaxValue;
1982
1983 /* DX 9 */
1984 DWORD DevCaps2;
1985
1986 float MaxNpatchTessellationLevel;
1987 DWORD Reserved5; /* undocumented */
1988
1989 UINT MasterAdapterOrdinal;
1990 UINT AdapterOrdinalInGroup;
1991 UINT NumberOfAdaptersInGroup;
1992 DWORD DeclTypes;
1993 DWORD NumSimultaneousRTs;
1994 DWORD StretchRectFilterCaps;
1995 WINED3DVSHADERCAPS2_0 VS20Caps;
1996 WINED3DPSHADERCAPS2_0 PS20Caps;
1997 DWORD VertexTextureFilterCaps;
1998 DWORD MaxVShaderInstructionsExecuted;
1999 DWORD MaxPShaderInstructionsExecuted;
2000 DWORD MaxVertexShader30InstructionSlots;
2001 DWORD MaxPixelShader30InstructionSlots;
2002 DWORD Reserved2; /* Not in the microsoft headers but documented */
2003 DWORD Reserved3;
2004
2005 WINEDDCAPS DirectDrawCaps;
2006} WINED3DCAPS;
2007
2008/* DirectDraw types */
2009
2010typedef struct _WINEDDCOLORKEY
2011{
2012 DWORD dwColorSpaceLowValue; /* low boundary of color space that is to
2013 * be treated as Color Key, inclusive */
2014 DWORD dwColorSpaceHighValue; /* high boundary of color space that is
2015 * to be treated as Color Key, inclusive */
2016} WINEDDCOLORKEY,*LPWINEDDCOLORKEY;
2017
2018typedef struct _WINEDDBLTFX
2019{
2020 DWORD dwSize; /* size of structure */
2021 DWORD dwDDFX; /* FX operations */
2022 DWORD dwROP; /* Win32 raster operations */
2023 DWORD dwDDROP; /* Raster operations new for DirectDraw */
2024 DWORD dwRotationAngle; /* Rotation angle for blt */
2025 DWORD dwZBufferOpCode; /* ZBuffer compares */
2026 DWORD dwZBufferLow; /* Low limit of Z buffer */
2027 DWORD dwZBufferHigh; /* High limit of Z buffer */
2028 DWORD dwZBufferBaseDest; /* Destination base value */
2029 DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */
2030 union
2031 {
2032 DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
2033 struct IWineD3DSurface *lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
2034 } DUMMYUNIONNAME1;
2035 DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
2036 union
2037 {
2038 DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
2039 struct IWineD3DSurface *lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
2040 } DUMMYUNIONNAME2;
2041 DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
2042 DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
2043 DWORD dwReserved;
2044 DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
2045 union
2046 {
2047 DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
2048 struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as Alpha Channel */
2049 } DUMMYUNIONNAME3;
2050 DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
2051 union
2052 {
2053 DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
2054 struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
2055 } DUMMYUNIONNAME4;
2056 union
2057 {
2058 DWORD dwFillColor; /* color in RGB or Palettized */
2059 DWORD dwFillDepth; /* depth value for z-buffer */
2060 DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
2061 struct IWineD3DSurface *lpDDSPattern; /* Surface to use as pattern */
2062 } DUMMYUNIONNAME5;
2063 WINEDDCOLORKEY ddckDestColorkey; /* DestColorkey override */
2064 WINEDDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
2065} WINEDDBLTFX,*LPWINEDDBLTFX;
2066
2067typedef struct _WINEDDOVERLAYFX
2068{
2069 DWORD dwSize; /* size of structure */
2070 DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
2071 DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */
2072 DWORD dwReserved;
2073 DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
2074 union
2075 {
2076 DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
2077 struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
2078 } DUMMYUNIONNAME1;
2079 DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
2080 union
2081 {
2082 DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
2083 struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
2084 } DUMMYUNIONNAME2;
2085 WINEDDCOLORKEY dckDestColorkey; /* DestColorkey override */
2086 WINEDDCOLORKEY dckSrcColorkey; /* SrcColorkey override */
2087 DWORD dwDDFX; /* Overlay FX */
2088 DWORD dwFlags; /* flags */
2089} WINEDDOVERLAYFX;
2090
2091struct wined3d_buffer_desc
2092{
2093 UINT byte_width;
2094 DWORD usage;
2095 UINT bind_flags;
2096 UINT cpu_access_flags;
2097 UINT misc_flags;
2098};
2099
2100struct wined3d_shader_signature_element
2101{
2102 const char *semantic_name;
2103 UINT semantic_idx;
2104 enum wined3d_sysval_semantic sysval_semantic;
2105 DWORD component_type;
2106 UINT register_idx;
2107 DWORD mask;
2108};
2109
2110struct wined3d_shader_signature
2111{
2112 UINT element_count;
2113 struct wined3d_shader_signature_element *elements;
2114 char *string_data;
2115};
2116
2117struct wined3d_parent_ops
2118{
2119 void (*wined3d_object_destroyed)(void *parent);
2120};
2121
2122interface IWineD3DResource;
2123interface IWineD3DSurface;
2124interface IWineD3DVolume;
2125interface IWineD3DSwapChain;
2126interface IWineD3DDevice;
2127
2128[
2129 object,
2130 local,
2131 uuid(aeb62dfc-bdcb-4f02-9519-1eeea00c15cd)
2132]
2133interface IWineD3DDeviceParent : IUnknown
2134{
2135 void WineD3DDeviceCreated(
2136 [in] IWineD3DDevice *device
2137 );
2138
2139 HRESULT CreateSurface(
2140 [in] IUnknown *superior,
2141 [in] UINT width,
2142 [in] UINT height,
2143 [in] WINED3DFORMAT format,
2144 [in] DWORD usage,
2145 [in] WINED3DPOOL pool,
2146 [in] UINT level,
2147 [in] WINED3DCUBEMAP_FACES face,
2148 [out] IWineD3DSurface **surface
2149 );
2150
2151 HRESULT CreateRenderTarget(
2152 [in] IUnknown *superior,
2153 [in] UINT width,
2154 [in] UINT height,
2155 [in] WINED3DFORMAT format,
2156 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2157 [in] DWORD multisample_quality,
2158 [in] BOOL lockable,
2159 [out] IWineD3DSurface **surface
2160 );
2161
2162 HRESULT CreateDepthStencilSurface(
2163 [in] IUnknown *superior,
2164 [in] UINT width,
2165 [in] UINT height,
2166 [in] WINED3DFORMAT format,
2167 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2168 [in] DWORD multisample_quality,
2169 [in] BOOL discard,
2170 [out] IWineD3DSurface **surface
2171 );
2172
2173 HRESULT CreateVolume(
2174 [in] IUnknown *superior,
2175 [in] UINT width,
2176 [in] UINT height,
2177 [in] UINT depth,
2178 [in] WINED3DFORMAT format,
2179 [in] WINED3DPOOL pool,
2180 [in] DWORD usage,
2181 [out] IWineD3DVolume **volume
2182 );
2183
2184 HRESULT CreateSwapChain(
2185 [in, out] WINED3DPRESENT_PARAMETERS *present_parameters,
2186 [out] IWineD3DSwapChain **swapchain
2187 );
2188}
2189typedef ULONG (*D3DCB_DESTROYSWAPCHAINFN)(IWineD3DSwapChain *pSwapChain);
2190typedef HRESULT (*D3DCB_ENUMRESOURCES)(IWineD3DResource *resource, void *pData);
2191
2192[
2193 object,
2194 local,
2195 uuid(46799311-8e0e-40ce-b2ec-ddb99f18fcb4)
2196]
2197interface IWineD3DBase : IUnknown
2198{
2199 HRESULT GetParent(
2200 [out] IUnknown **parent
2201 );
2202}
2203
2204[
2205 object,
2206 local,
2207 uuid(108f9c44-6f30-11d9-c687-00046142c14f)
2208]
2209interface IWineD3D : IWineD3DBase
2210{
2211 UINT GetAdapterCount(
2212 );
2213 HRESULT RegisterSoftwareDevice(
2214 [in] void *pInitializeFunction
2215 );
2216 HMONITOR GetAdapterMonitor(
2217 [in] UINT adapter_idx
2218 );
2219 UINT GetAdapterModeCount(
2220 [in] UINT adapter_idx,
2221 [in] WINED3DFORMAT format
2222 );
2223 HRESULT EnumAdapterModes(
2224 [in] UINT adapter_idx,
2225 [in] WINED3DFORMAT format,
2226 [in] UINT mode_idx,
2227 [out] WINED3DDISPLAYMODE *mode
2228 );
2229 HRESULT GetAdapterDisplayMode(
2230 [in] UINT adapter_idx,
2231 [out] WINED3DDISPLAYMODE *mode
2232 );
2233 HRESULT GetAdapterIdentifier(
2234 [in] UINT adapter_idx,
2235 [in] DWORD flags,
2236 [out] WINED3DADAPTER_IDENTIFIER *identifier
2237 );
2238 HRESULT CheckDeviceMultiSampleType(
2239 [in] UINT adapter_idx,
2240 [in] WINED3DDEVTYPE device_type,
2241 [in] WINED3DFORMAT surface_format,
2242 [in] BOOL windowed,
2243 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2244 [out] DWORD *quality_levels
2245 );
2246 HRESULT CheckDepthStencilMatch(
2247 [in] UINT adapter_idx,
2248 [in] WINED3DDEVTYPE device_type,
2249 [in] WINED3DFORMAT adapter_format,
2250 [in] WINED3DFORMAT render_target_format,
2251 [in] WINED3DFORMAT depth_stencil_format
2252 );
2253 HRESULT CheckDeviceType(
2254 [in] UINT adapter_idx,
2255 [in] WINED3DDEVTYPE device_type,
2256 [in] WINED3DFORMAT display_format,
2257 [in] WINED3DFORMAT backbuffer_format,
2258 [in] BOOL windowed
2259 );
2260 HRESULT CheckDeviceFormat(
2261 [in] UINT adaper_idx,
2262 [in] WINED3DDEVTYPE device_type,
2263 [in] WINED3DFORMAT adapter_format,
2264 [in] DWORD usage,
2265 [in] WINED3DRESOURCETYPE resource_type,
2266 [in] WINED3DFORMAT check_format,
2267 [in] WINED3DSURFTYPE surface_type
2268 );
2269 HRESULT CheckDeviceFormatConversion(
2270 [in] UINT adapter_idx,
2271 [in] WINED3DDEVTYPE device_type,
2272 [in] WINED3DFORMAT source_format,
2273 [in] WINED3DFORMAT target_format
2274 );
2275 HRESULT GetDeviceCaps(
2276 [in] UINT adapter_idx,
2277 [in] WINED3DDEVTYPE device_type,
2278 [out] WINED3DCAPS *caps
2279 );
2280 HRESULT CreateDevice(
2281 [in] UINT adapter_idx,
2282 [in] WINED3DDEVTYPE device_type,
2283 [in] HWND focus_window,
2284 [in] DWORD behaviour_flags,
2285 [in] IUnknown *parent,
2286 [in] IWineD3DDeviceParent *device_parent,
2287 [out] IWineD3DDevice **device
2288 );
2289}
2290
2291[
2292 object,
2293 local,
2294 uuid(1f3bfb34-6f30-11d9-c687-00046142c14f)
2295]
2296interface IWineD3DResource : IWineD3DBase
2297{
2298 HRESULT SetPrivateData(
2299 [in] REFGUID guid,
2300 [in] const void *data,
2301 [in] DWORD data_size,
2302 [in] DWORD flags
2303 );
2304 HRESULT GetPrivateData(
2305 [in] REFGUID guid,
2306 [out] void *data,
2307 [in, out] DWORD *data_size
2308 );
2309 HRESULT FreePrivateData(
2310 [in] REFGUID guid
2311 );
2312 DWORD SetPriority(
2313 [in] DWORD new_priority
2314 );
2315 DWORD GetPriority(
2316 );
2317 void PreLoad(
2318 );
2319 void UnLoad(
2320 );
2321 WINED3DRESOURCETYPE GetType(
2322 );
2323}
2324
2325[
2326 object,
2327 local,
2328 uuid(f7d8abf4-fb93-43e4-9c96-4618cf9b3cbc)
2329]
2330interface IWineD3DRendertargetView : IWineD3DBase
2331{
2332 HRESULT GetResource(
2333 [out] IWineD3DResource **resource
2334 );
2335}
2336
2337[
2338 object,
2339 local,
2340 uuid(f756720c-32b9-4439-b5a3-1d6c97037d9e)
2341]
2342interface IWineD3DPalette : IWineD3DBase
2343{
2344 HRESULT GetEntries(
2345 [in] DWORD flags,
2346 [in] DWORD start,
2347 [in] DWORD count,
2348 [out] PALETTEENTRY *entries
2349 );
2350 HRESULT GetCaps(
2351 [out] DWORD *caps
2352 );
2353 HRESULT SetEntries(
2354 [in] DWORD flags,
2355 [in] DWORD start,
2356 [in] DWORD count,
2357 [in] const PALETTEENTRY *entries
2358 );
2359}
2360
2361[
2362 object,
2363 local,
2364 uuid(8f2bceb1-d338-488c-ab7f-0ec980bf5d2d)
2365]
2366interface IWineD3DClipper : IWineD3DBase
2367{
2368 HRESULT GetClipList(
2369 [in] const RECT *rect,
2370 [out] RGNDATA *clip_list,
2371 [in, out] DWORD *clip_list_size
2372 );
2373 HRESULT GetHWnd(
2374 [out] HWND *hwnd
2375 );
2376 HRESULT IsClipListChanged(
2377 [out] BOOL *changed
2378 );
2379 HRESULT SetClipList(
2380 [in] const RGNDATA *clip_list,
2381 [in] DWORD flags
2382 );
2383 HRESULT SetHWnd(
2384 [in] DWORD flags,
2385 [in] HWND hwnd
2386 );
2387}
2388
2389[
2390 object,
2391 local,
2392 uuid(37cd5526-6f30-11d9-c687-00046142c14f)
2393]
2394interface IWineD3DSurface : IWineD3DResource
2395{
2396 HRESULT GetContainer(
2397 [in] REFIID riid,
2398 [out] void **container
2399 );
2400 HRESULT GetDesc(
2401 [out] WINED3DSURFACE_DESC *desc
2402 );
2403 HRESULT LockRect(
2404 [out] WINED3DLOCKED_RECT *locked_rect,
2405 [in] const RECT *rect,
2406 [in] DWORD flags
2407 );
2408 HRESULT UnlockRect(
2409 );
2410 HRESULT GetDC(
2411 [out] HDC *dc
2412 );
2413 HRESULT ReleaseDC(
2414 [in] HDC dc
2415 );
2416 HRESULT Flip(
2417 [in] IWineD3DSurface *override,
2418 [in] DWORD flags
2419 );
2420 HRESULT Blt(
2421 [in] const RECT *dst_rect,
2422 [in] IWineD3DSurface *src_surface,
2423 [in] const RECT *src_rect,
2424 [in] DWORD flags,
2425 [in] const WINEDDBLTFX *blt_fx,
2426 [in] WINED3DTEXTUREFILTERTYPE filter
2427 );
2428 HRESULT GetBltStatus(
2429 [in] DWORD flags
2430 );
2431 HRESULT GetFlipStatus(
2432 [in] DWORD flags
2433 );
2434 HRESULT IsLost(
2435 );
2436 HRESULT Restore(
2437 );
2438 HRESULT BltFast(
2439 [in] DWORD dst_x,
2440 [in] DWORD dst_y,
2441 [in] IWineD3DSurface *src_surface,
2442 [in] const RECT *src_rect,
2443 [in] DWORD trans
2444 );
2445 HRESULT GetPalette(
2446 [out] IWineD3DPalette **palette
2447 );
2448 HRESULT SetPalette(
2449 [in] IWineD3DPalette *palette
2450 );
2451 HRESULT RealizePalette(
2452 );
2453 HRESULT SetColorKey(
2454 [in] DWORD flags,
2455 [in] const WINEDDCOLORKEY *color_key
2456 );
2457 DWORD GetPitch(
2458 );
2459 HRESULT SetMem(
2460 [in] void *mem
2461 );
2462 HRESULT SetOverlayPosition(
2463 [in] LONG x,
2464 [in] LONG y
2465 );
2466 HRESULT GetOverlayPosition(
2467 [out] LONG *x,
2468 [out] LONG *y
2469 );
2470 HRESULT UpdateOverlayZOrder(
2471 [in] DWORD flags,
2472 [in] IWineD3DSurface *ref
2473 );
2474 HRESULT UpdateOverlay(
2475 [in] const RECT *src_rect,
2476 [in] IWineD3DSurface *dst_surface,
2477 [in] const RECT *dst_rect,
2478 [in] DWORD flags,
2479 [in] const WINEDDOVERLAYFX *fx
2480 );
2481 HRESULT SetClipper(
2482 [in] IWineD3DClipper *clipper
2483 );
2484 HRESULT GetClipper(
2485 [out] IWineD3DClipper **clipper
2486 );
2487 HRESULT LoadTexture(
2488 [in] BOOL srgb_mode
2489 );
2490 void BindTexture(
2491 [in] BOOL srgb
2492 );
2493 HRESULT SaveSnapshot(
2494 [in] const char *filename
2495 );
2496 HRESULT SetContainer(
2497 [in] IWineD3DBase *container
2498 );
2499 const void *GetData(
2500 );
2501 HRESULT SetFormat(
2502 [in] WINED3DFORMAT format
2503 );
2504 HRESULT PrivateSetup(
2505 );
2506 void ModifyLocation(
2507 [in] DWORD location,
2508 [in] BOOL persistent
2509 );
2510 HRESULT LoadLocation(
2511 [in] DWORD location,
2512 [in] const RECT *rect
2513 );
2514 WINED3DSURFTYPE GetImplType(
2515 );
2516 HRESULT DrawOverlay(
2517 );
2518}
2519
2520[
2521 object,
2522 local,
2523 uuid(24769ed8-6f30-11d9-c687-00046142c14f)
2524]
2525interface IWineD3DVolume : IWineD3DResource
2526{
2527 HRESULT GetContainer(
2528 [in] REFIID riid,
2529 [out] void **container
2530 );
2531 HRESULT GetDesc(
2532 [out] WINED3DVOLUME_DESC *desc
2533 );
2534 HRESULT LockBox(
2535 [out] WINED3DLOCKED_BOX *locked_box,
2536 [in] const WINED3DBOX *box,
2537 [in] DWORD flags
2538 );
2539 HRESULT UnlockBox(
2540 );
2541 HRESULT LoadTexture(
2542 [in] int gl_level,
2543 [in] BOOL srgb_mode
2544 );
2545 HRESULT SetContainer(
2546 [in] IWineD3DBase *container
2547 );
2548}
2549
2550[
2551 object,
2552 local,
2553 uuid(3c2aebf6-6f30-11d9-c687-00046142c14f)
2554]
2555interface IWineD3DBaseTexture : IWineD3DResource
2556{
2557 DWORD SetLOD(
2558 [in] DWORD new_lod
2559 );
2560 DWORD GetLOD(
2561 );
2562 DWORD GetLevelCount(
2563 );
2564 HRESULT SetAutoGenFilterType(
2565 WINED3DTEXTUREFILTERTYPE filter_type
2566 );
2567 WINED3DTEXTUREFILTERTYPE GetAutoGenFilterType(
2568 );
2569 void GenerateMipSubLevels(
2570 );
2571 BOOL SetDirty(
2572 BOOL dirty
2573 );
2574 BOOL GetDirty(
2575 );
2576 HRESULT BindTexture(
2577 [in] BOOL srgb
2578 );
2579 UINT GetTextureDimensions(
2580 );
2581 BOOL IsCondNP2(
2582 );
2583}
2584
2585[
2586 object,
2587 local,
2588 uuid(3e72cc1c-6f30-11d9-c687-00046142c14f)
2589]
2590interface IWineD3DTexture : IWineD3DBaseTexture
2591{
2592 HRESULT GetLevelDesc(
2593 [in] UINT level,
2594 [out] WINED3DSURFACE_DESC *desc
2595 );
2596 HRESULT GetSurfaceLevel(
2597 [in] UINT level,
2598 [out] IWineD3DSurface **surface
2599 );
2600 HRESULT LockRect(
2601 [in] UINT level,
2602 [out] WINED3DLOCKED_RECT *locked_rect,
2603 [in] const RECT *rect,
2604 [in] DWORD flags
2605 );
2606 HRESULT UnlockRect(
2607 [in] UINT level
2608 );
2609 HRESULT AddDirtyRect(
2610 [in] const RECT *dirty_rect
2611 );
2612}
2613
2614[
2615 object,
2616 local,
2617 uuid(41752900-6f30-11d9-c687-00046142c14f)
2618]
2619interface IWineD3DCubeTexture : IWineD3DBaseTexture
2620{
2621 HRESULT GetLevelDesc(
2622 [in] UINT level,
2623 [out] WINED3DSURFACE_DESC *desc
2624 );
2625 HRESULT GetCubeMapSurface(
2626 [in] WINED3DCUBEMAP_FACES face,
2627 [in] UINT level,
2628 [out] IWineD3DSurface **surface
2629 );
2630 HRESULT LockRect(
2631 [in] WINED3DCUBEMAP_FACES face,
2632 [in] UINT level,
2633 [out] WINED3DLOCKED_RECT *locked_rect,
2634 [in] const RECT *rect,
2635 [in] DWORD flags
2636 );
2637 HRESULT UnlockRect(
2638 [in] WINED3DCUBEMAP_FACES face,
2639 [in] UINT level
2640 );
2641 HRESULT AddDirtyRect(
2642 [in] WINED3DCUBEMAP_FACES face,
2643 [in] const RECT *dirty_rect
2644 );
2645}
2646
2647[
2648 object,
2649 local,
2650 uuid(7b39470c-6f30-11d9-c687-00046142c14f)
2651]
2652interface IWineD3DVolumeTexture : IWineD3DBaseTexture
2653{
2654 HRESULT GetLevelDesc(
2655 [in] UINT level,
2656 [out] WINED3DVOLUME_DESC *desc
2657 );
2658 HRESULT GetVolumeLevel(
2659 [in] UINT level,
2660 [out] IWineD3DVolume **volume
2661 );
2662 HRESULT LockBox(
2663 [in] UINT level,
2664 [out] WINED3DLOCKED_BOX *locked_box,
2665 [in] const WINED3DBOX *box,
2666 [in] DWORD flags
2667 );
2668 HRESULT UnlockBox(
2669 [in] UINT level
2670 );
2671 HRESULT AddDirtyBox(
2672 [in] const WINED3DBOX *dirty_box
2673 );
2674}
2675
2676[
2677 object,
2678 local,
2679 uuid(7cd55be6-6f30-11d9-c687-00046142c14f)
2680]
2681interface IWineD3DVertexDeclaration : IWineD3DBase
2682{
2683}
2684
2685[
2686 object,
2687 local,
2688 uuid(83b073ce-6f30-11d9-c687-00046142c14f)
2689]
2690interface IWineD3DStateBlock : IUnknown
2691{
2692 HRESULT Capture(
2693 );
2694 HRESULT Apply(
2695 );
2696 HRESULT InitStartupStateBlock(
2697 );
2698}
2699
2700[
2701 object,
2702 local,
2703 uuid(905ddbac-6f30-11d9-c687-00046142c14f)
2704]
2705interface IWineD3DQuery : IWineD3DBase
2706{
2707 HRESULT GetData(
2708 [out] void *data,
2709 [in] DWORD data_size,
2710 [in] DWORD flags
2711 );
2712 DWORD GetDataSize(
2713 );
2714 WINED3DQUERYTYPE GetType(
2715 );
2716 HRESULT Issue(
2717 DWORD flags
2718 );
2719}
2720
2721[
2722 object,
2723 local,
2724 uuid(34d01b10-6f30-11d9-c687-00046142c14f)
2725]
2726interface IWineD3DSwapChain : IWineD3DBase
2727{
2728 void Destroy(
2729 );
2730 HRESULT GetDevice(
2731 [out] IWineD3DDevice **device
2732 );
2733 HRESULT Present(
2734 [in] const RECT *src_rect,
2735 [in] const RECT *dst_rect,
2736 [in] HWND dst_window_override,
2737 [in] const RGNDATA *dirty_region,
2738 [in] DWORD flags
2739 );
2740 HRESULT SetDestWindowOverride(
2741 [in] HWND window
2742 );
2743 HRESULT GetFrontBufferData(
2744 [in] IWineD3DSurface *dst_surface
2745 );
2746 HRESULT GetBackBuffer(
2747 [in] UINT backbuffer_idx,
2748 [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
2749 [out] IWineD3DSurface **backbuffer
2750 );
2751 HRESULT GetRasterStatus(
2752 [out] WINED3DRASTER_STATUS *raster_status
2753 );
2754 HRESULT GetDisplayMode(
2755 [out] WINED3DDISPLAYMODE *mode
2756 );
2757 HRESULT GetPresentParameters(
2758 [out] WINED3DPRESENT_PARAMETERS *present_parameters
2759 );
2760 HRESULT SetGammaRamp(
2761 [in] DWORD flags,
2762 [in] const WINED3DGAMMARAMP *ramp
2763 );
2764 HRESULT GetGammaRamp(
2765 [out] WINED3DGAMMARAMP *ramp
2766 );
2767}
2768
2769[
2770 object,
2771 local,
2772 uuid(b3f028e8-1a40-4ab3-9292-5bf6cfd80209)
2773]
2774interface IWineD3DBuffer : IWineD3DResource
2775{
2776 HRESULT Map(
2777 [in] UINT offset,
2778 [in] UINT size,
2779 [out] BYTE **data,
2780 [in] DWORD flags
2781 );
2782 HRESULT Unmap(
2783 );
2784 HRESULT GetDesc(
2785 [out] WINED3DBUFFER_DESC *desc
2786 );
2787}
2788
2789[
2790 object,
2791 local,
2792 uuid(eac93065-a4df-446f-86a1-9ef2bca40a3c)
2793]
2794interface IWineD3DBaseShader : IWineD3DBase
2795{
2796 HRESULT GetFunction(
2797 [out] void *data,
2798 [in, out] UINT *data_size
2799 );
2800}
2801
2802[
2803 object,
2804 local,
2805 uuid(7f7a2b60-6f30-11d9-c687-00046142c14f)
2806]
2807interface IWineD3DVertexShader : IWineD3DBaseShader
2808{
2809 HRESULT SetLocalConstantsF(
2810 [in] UINT start_idx,
2811 [in] const float *src_data,
2812 [in] UINT vector4f_count
2813 );
2814}
2815
2816[
2817 object,
2818 local,
2819 uuid(8276c113-388b-49d1-ad8b-c9dd8bcbabcd)
2820]
2821interface IWineD3DGeometryShader : IWineD3DBaseShader
2822{
2823}
2824
2825[
2826 object,
2827 local,
2828 uuid(818503da-6f30-11d9-c687-00046142c14f)
2829]
2830interface IWineD3DPixelShader : IWineD3DBaseShader
2831{
2832}
2833
2834[
2835 object,
2836 local,
2837 uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5)
2838]
2839interface IWineD3DDevice : IWineD3DBase
2840{
2841 HRESULT CreateBuffer(
2842 [in] struct wined3d_buffer_desc *desc,
2843 [in] const void *data,
2844 [in] IUnknown *parent,
2845 [in] const struct wined3d_parent_ops *parent_ops,
2846 [out] IWineD3DBuffer **buffer
2847 );
2848 HRESULT CreateVertexBuffer(
2849 [in] UINT length,
2850 [in] DWORD usage,
2851 [in] WINED3DPOOL pool,
2852 [out] IWineD3DBuffer **vertex_buffer,
2853 [in] IUnknown *parent,
2854 [in] const struct wined3d_parent_ops *parent_ops
2855 );
2856 HRESULT CreateIndexBuffer(
2857 [in] UINT length,
2858 [in] DWORD usage,
2859 [in] WINED3DPOOL pool,
2860 [out] IWineD3DBuffer **index_buffer,
2861 [in] IUnknown *parent,
2862 [in] const struct wined3d_parent_ops *parent_ops
2863 );
2864 HRESULT CreateStateBlock(
2865 [in] WINED3DSTATEBLOCKTYPE type,
2866 [out] IWineD3DStateBlock **stateblock,
2867 [in] IUnknown *parent
2868 );
2869 HRESULT CreateSurface(
2870 [in] UINT width,
2871 [in] UINT height,
2872 [in] WINED3DFORMAT format,
2873 [in] BOOL lockable,
2874 [in] BOOL discard,
2875 [in] UINT level,
2876 [out] IWineD3DSurface **surface,
2877 [in] DWORD usage,
2878 [in] WINED3DPOOL pool,
2879 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2880 [in] DWORD multisample_quality,
2881 [in] WINED3DSURFTYPE surface_type,
2882 [in] IUnknown *parent,
2883 [in] const struct wined3d_parent_ops *parent_ops
2884 );
2885 HRESULT CreateRendertargetView(
2886 [in] IWineD3DResource *resource,
2887 [in] IUnknown *parent,
2888 [out] IWineD3DRendertargetView **rendertarget_view
2889 );
2890 HRESULT CreateTexture(
2891 [in] UINT width,
2892 [in] UINT height,
2893 [in] UINT levels,
2894 [in] DWORD usage,
2895 [in] WINED3DFORMAT format,
2896 [in] WINED3DPOOL pool,
2897 [out] IWineD3DTexture **texture,
2898 [in] IUnknown *parent,
2899 [in] const struct wined3d_parent_ops *parent_ops
2900 );
2901 HRESULT CreateVolumeTexture(
2902 [in] UINT width,
2903 [in] UINT height,
2904 [in] UINT depth,
2905 [in] UINT levels,
2906 [in] DWORD usage,
2907 [in] WINED3DFORMAT format,
2908 [in] WINED3DPOOL pool,
2909 [out] IWineD3DVolumeTexture **texture,
2910 [in] IUnknown *parent,
2911 [in] const struct wined3d_parent_ops *parent_ops
2912 );
2913 HRESULT CreateVolume(
2914 [in] UINT width,
2915 [in] UINT height,
2916 [in] UINT depth,
2917 [in] DWORD usage,
2918 [in] WINED3DFORMAT format,
2919 [in] WINED3DPOOL pool,
2920 [out] IWineD3DVolume **volume,
2921 [in] IUnknown *parent,
2922 [in] const struct wined3d_parent_ops *parent_ops
2923 );
2924 HRESULT CreateCubeTexture(
2925 [in] UINT edge_length,
2926 [in] UINT levels,
2927 [in] DWORD usage,
2928 [in] WINED3DFORMAT format,
2929 [in] WINED3DPOOL pool,
2930 [out] IWineD3DCubeTexture **texture,
2931 [in] IUnknown *parent,
2932 [in] const struct wined3d_parent_ops *parent_ops
2933 );
2934 HRESULT CreateQuery(
2935 [in] WINED3DQUERYTYPE type,
2936 [out] IWineD3DQuery **query,
2937 [in] IUnknown *parent
2938 );
2939 HRESULT CreateSwapChain(
2940 [in] WINED3DPRESENT_PARAMETERS *present_parameters,
2941 [out] IWineD3DSwapChain **swapchain,
2942 [in] IUnknown *parent,
2943 [in] WINED3DSURFTYPE surface_type
2944 );
2945 HRESULT CreateVertexDeclaration(
2946 [out] IWineD3DVertexDeclaration **declaration,
2947 [in] IUnknown *parent,
2948 [in] const struct wined3d_parent_ops *parent_ops,
2949 [in] const WINED3DVERTEXELEMENT *elements,
2950 [in] UINT element_count
2951 );
2952 HRESULT CreateVertexDeclarationFromFVF(
2953 [out] IWineD3DVertexDeclaration **declaration,
2954 [in] IUnknown *parent,
2955 [in] const struct wined3d_parent_ops *parent_ops,
2956 [in] DWORD fvf
2957 );
2958 HRESULT CreateVertexShader(
2959 [in] const DWORD *function,
2960 [in] const struct wined3d_shader_signature *output_signature,
2961 [out] IWineD3DVertexShader **shader,
2962 [in] IUnknown *parent,
2963 [in] const struct wined3d_parent_ops *parent_ops
2964 );
2965 HRESULT CreateGeometryShader(
2966 [in] const DWORD *byte_code,
2967 [in] const struct wined3d_shader_signature *output_signature,
2968 [out] IWineD3DGeometryShader **shader,
2969 [in] IUnknown *parent,
2970 [in] const struct wined3d_parent_ops *parent_ops
2971 );
2972 HRESULT CreatePixelShader(
2973 [in] const DWORD *function,
2974 [in] const struct wined3d_shader_signature *output_signature,
2975 [out] IWineD3DPixelShader **shader,
2976 [in] IUnknown *parent,
2977 [in] const struct wined3d_parent_ops *parent_ops
2978 );
2979 HRESULT CreatePalette(
2980 [in] DWORD flags,
2981 [in] const PALETTEENTRY *palette_entry,
2982 [out] IWineD3DPalette **palette,
2983 [in] IUnknown *parent
2984 );
2985 HRESULT Init3D(
2986 [in] WINED3DPRESENT_PARAMETERS *present_parameters
2987 );
2988 HRESULT InitGDI(
2989 [in] WINED3DPRESENT_PARAMETERS *present_parameters
2990 );
2991 HRESULT Uninit3D(
2992 [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2993 );
2994 HRESULT UninitGDI(
2995 [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2996 );
2997 void SetMultithreaded(
2998 );
2999 HRESULT EvictManagedResources(
3000 );
3001 UINT GetAvailableTextureMem(
3002 );
3003 HRESULT GetBackBuffer(
3004 [in] UINT swapchain_idx,
3005 [in] UINT backbuffer_idx,
3006 [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
3007 [out] IWineD3DSurface **backbuffer
3008 );
3009 HRESULT GetCreationParameters(
3010 [out] WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters
3011 );
3012 HRESULT GetDeviceCaps(
3013 [out] WINED3DCAPS *caps
3014 );
3015 HRESULT GetDirect3D(
3016 [out] IWineD3D** d3d
3017 );
3018 HRESULT GetDisplayMode(
3019 [in] UINT swapchain_idx,
3020 [out] WINED3DDISPLAYMODE *mode
3021 );
3022 HRESULT SetDisplayMode(
3023 [in] UINT swapchain_idx,
3024 [in] const WINED3DDISPLAYMODE *mode
3025 );
3026 UINT GetNumberOfSwapChains(
3027 );
3028 HRESULT GetRasterStatus(
3029 [in] UINT swapchain_idx,
3030 [out] WINED3DRASTER_STATUS *raster_status
3031 );
3032 HRESULT GetSwapChain(
3033 [in] UINT swapchain_idx,
3034 [out] IWineD3DSwapChain **swapchain
3035 );
3036 HRESULT Reset(
3037 [in] WINED3DPRESENT_PARAMETERS *present_parameters
3038 );
3039 HRESULT SetDialogBoxMode(
3040 [in] BOOL enable_dialogs
3041 );
3042 HRESULT SetCursorProperties(
3043 [in] UINT x_hotspot,
3044 [in] UINT y_hotspot,
3045 [in] IWineD3DSurface *cursor_surface
3046 );
3047 void SetCursorPosition(
3048 [in] int x_screen_space,
3049 [in] int y_screen_space,
3050 [in] DWORD flags
3051 );
3052 BOOL ShowCursor(
3053 [in] BOOL show
3054 );
3055 HRESULT SetClipPlane(
3056 [in] DWORD plane_idx,
3057 [in] const float *plane
3058 );
3059 HRESULT GetClipPlane(
3060 [in] DWORD plane_idx,
3061 [out] float *plane
3062 );
3063 HRESULT SetClipStatus(
3064 [in] const WINED3DCLIPSTATUS *clip_status
3065 );
3066 HRESULT GetClipStatus(
3067 [out] WINED3DCLIPSTATUS *clip_status
3068 );
3069 HRESULT SetCurrentTexturePalette(
3070 [in] UINT palette_number
3071 );
3072 HRESULT GetCurrentTexturePalette(
3073 [out] UINT *palette_number
3074 );
3075 HRESULT SetDepthStencilSurface(
3076 [in] IWineD3DSurface *depth_stencil
3077 );
3078 HRESULT GetDepthStencilSurface(
3079 [out] IWineD3DSurface **depth_stencil
3080 );
3081 void SetGammaRamp(
3082 [in] UINT swapchain_idx,
3083 [in] DWORD flags,
3084 [in] const WINED3DGAMMARAMP *ramp
3085 );
3086 void GetGammaRamp(
3087 [in] UINT swapchain_idx,
3088 [out] WINED3DGAMMARAMP *ramp
3089 );
3090 HRESULT SetIndexBuffer(
3091 [in] IWineD3DBuffer *index_buffer,
3092 [in] WINED3DFORMAT format
3093 );
3094 HRESULT GetIndexBuffer(
3095 [out] IWineD3DBuffer **index_buffer
3096 );
3097 HRESULT SetBaseVertexIndex(
3098 [in] INT base_index
3099 );
3100 HRESULT GetBaseVertexIndex(
3101 [out] INT *base_index
3102 );
3103 HRESULT SetLight(
3104 [in] DWORD light_idx,
3105 [in] const WINED3DLIGHT *light
3106 );
3107 HRESULT GetLight(
3108 [in] DWORD light_idx,
3109 [out] WINED3DLIGHT *light
3110 );
3111 HRESULT SetLightEnable(
3112 [in] DWORD light_idx,
3113 [in] BOOL enable
3114 );
3115 HRESULT GetLightEnable(
3116 [in] DWORD light_idx,
3117 [out] BOOL *enable
3118 );
3119 HRESULT SetMaterial(
3120 [in] const WINED3DMATERIAL *material
3121 );
3122 HRESULT GetMaterial(
3123 [out] WINED3DMATERIAL *material
3124 );
3125 HRESULT SetNPatchMode(
3126 [in] float segments
3127 );
3128 float GetNPatchMode(
3129 );
3130 HRESULT SetPaletteEntries(
3131 [in] UINT palette_number,
3132 [in] const PALETTEENTRY *entries
3133 );
3134 HRESULT GetPaletteEntries(
3135 [in] UINT palette_number,
3136 [out] PALETTEENTRY *entries
3137 );
3138 HRESULT SetPixelShader(
3139 [in] IWineD3DPixelShader *shader
3140 );
3141 HRESULT GetPixelShader(
3142 [out] IWineD3DPixelShader **shader
3143 );
3144 HRESULT SetPixelShaderConstantB(
3145 [in] UINT start_register,
3146 [in] const BOOL *constants,
3147 [in] UINT bool_count
3148 );
3149 HRESULT GetPixelShaderConstantB(
3150 [in] UINT start_register,
3151 [out] BOOL *constants,
3152 [in] UINT bool_count
3153 );
3154 HRESULT SetPixelShaderConstantI(
3155 [in] UINT start_register,
3156 [in] const int *constants,
3157 [in] UINT vector4i_count
3158 );
3159 HRESULT GetPixelShaderConstantI(
3160 [in] UINT start_register,
3161 [out] int *constants,
3162 [in] UINT vector4i_count
3163 );
3164 HRESULT SetPixelShaderConstantF(
3165 [in] UINT start_register,
3166 [in] const float *constants,
3167 [in] UINT vector4f_count
3168 );
3169 HRESULT GetPixelShaderConstantF(
3170 [in] UINT start_register,
3171 [out] float *constants,
3172 [in] UINT vector4f_count
3173 );
3174 HRESULT SetRenderState(
3175 [in] WINED3DRENDERSTATETYPE state,
3176 [in] DWORD value
3177 );
3178 HRESULT GetRenderState(
3179 [in] WINED3DRENDERSTATETYPE state,
3180 [out] DWORD *value
3181 );
3182 HRESULT SetRenderTarget(
3183 [in] DWORD render_target_idx,
3184 [in] IWineD3DSurface *render_target,
3185 [in] BOOL set_viewport
3186 );
3187 HRESULT GetRenderTarget(
3188 [in] DWORD render_target_idx,
3189 [out] IWineD3DSurface **render_target
3190 );
3191 HRESULT SetFrontBackBuffers(
3192 [in] IWineD3DSurface *front,
3193 [in] IWineD3DSurface *back
3194 );
3195 HRESULT SetSamplerState(
3196 [in] DWORD sampler_idx,
3197 [in] WINED3DSAMPLERSTATETYPE state,
3198 [in] DWORD value
3199 );
3200 HRESULT GetSamplerState(
3201 [in] DWORD sampler_idx,
3202 [in] WINED3DSAMPLERSTATETYPE state,
3203 [out] DWORD *value
3204 );
3205 HRESULT SetScissorRect(
3206 [in] const RECT *rect
3207 );
3208 HRESULT GetScissorRect(
3209 [out] RECT *rect
3210 );
3211 HRESULT SetSoftwareVertexProcessing(
3212 [in] BOOL software
3213 );
3214 BOOL GetSoftwareVertexProcessing(
3215 );
3216 HRESULT SetStreamSource(
3217 [in] UINT stream_idx,
3218 [in] IWineD3DBuffer *buffer,
3219 [in] UINT offset,
3220 [in] UINT stride
3221 );
3222 HRESULT GetStreamSource(
3223 [in] UINT stream_idx,
3224 [out] IWineD3DBuffer **buffer,
3225 [out] UINT *offset,
3226 [out] UINT *stride
3227 );
3228 HRESULT SetStreamSourceFreq(
3229 [in] UINT stream_idx,
3230 [in] UINT divider
3231 );
3232 HRESULT GetStreamSourceFreq(
3233 [in] UINT stream_idx,
3234 [out] UINT *divider
3235 );
3236 HRESULT SetTexture(
3237 [in] DWORD stage,
3238 [in] IWineD3DBaseTexture *texture
3239 );
3240 HRESULT GetTexture(
3241 [in] DWORD stage,
3242 [out] IWineD3DBaseTexture **texture
3243 );
3244 HRESULT SetTextureStageState(
3245 [in] DWORD stage,
3246 [in] WINED3DTEXTURESTAGESTATETYPE state,
3247 [in] DWORD value
3248 );
3249 HRESULT GetTextureStageState(
3250 [in] DWORD stage,
3251 [in] WINED3DTEXTURESTAGESTATETYPE state,
3252 [out] DWORD *value
3253 );
3254 HRESULT SetTransform(
3255 [in] WINED3DTRANSFORMSTATETYPE state,
3256 [in] const WINED3DMATRIX *matrix
3257 );
3258 HRESULT GetTransform(
3259 [in] WINED3DTRANSFORMSTATETYPE state,
3260 [out] WINED3DMATRIX *matrix
3261 );
3262 HRESULT SetVertexDeclaration(
3263 [in] IWineD3DVertexDeclaration *declaration
3264 );
3265 HRESULT GetVertexDeclaration(
3266 [out] IWineD3DVertexDeclaration **declaration
3267 );
3268 HRESULT SetVertexShader(
3269 [in] IWineD3DVertexShader *shader
3270 );
3271 HRESULT GetVertexShader(
3272 [out] IWineD3DVertexShader **shader
3273 );
3274 HRESULT SetVertexShaderConstantB(
3275 [in] UINT start_register,
3276 [in] const BOOL *constants,
3277 [in] UINT bool_count
3278 );
3279 HRESULT GetVertexShaderConstantB(
3280 [in] UINT start_register,
3281 [out] BOOL *constants,
3282 [in] UINT bool_count
3283 );
3284 HRESULT SetVertexShaderConstantI(
3285 [in] UINT start_register,
3286 [in] const int *constants,
3287 [in] UINT vector4i_count
3288 );
3289 HRESULT GetVertexShaderConstantI(
3290 [in] UINT start_register,
3291 [out] int *constants,
3292 [in] UINT vector4i_count
3293 );
3294 HRESULT SetVertexShaderConstantF(
3295 [in] UINT start_register,
3296 [in] const float *constants,
3297 [in] UINT vector4f_count
3298 );
3299 HRESULT GetVertexShaderConstantF(
3300 [in] UINT start_register,
3301 [out] float *constants,
3302 [in] UINT vector4f_count
3303 );
3304 HRESULT SetViewport(
3305 [in] const WINED3DVIEWPORT *viewport
3306 );
3307 HRESULT GetViewport(
3308 [out] WINED3DVIEWPORT *viewport
3309 );
3310 HRESULT MultiplyTransform(
3311 [in] WINED3DTRANSFORMSTATETYPE state,
3312 [in] const WINED3DMATRIX *matrix
3313 );
3314 HRESULT ValidateDevice(
3315 [out] DWORD *num_passes
3316 );
3317 HRESULT ProcessVertices(
3318 [in] UINT src_start_idx,
3319 [in] UINT dst_idx,
3320 [in] UINT vertex_count,
3321 [in] IWineD3DBuffer *dest_buffer,
3322 [in] IWineD3DVertexDeclaration *declaration,
3323 [in] DWORD flags,
3324 [in] DWORD DestFVF
3325 );
3326 HRESULT BeginStateBlock(
3327 );
3328 HRESULT EndStateBlock(
3329 [out] IWineD3DStateBlock **stateblock
3330 );
3331 HRESULT BeginScene(
3332 );
3333 HRESULT EndScene(
3334 );
3335 HRESULT Present(
3336 [in] const RECT *src_rect,
3337 [in] const RECT *dst_rect,
3338 [in] HWND dst_window_override,
3339 [in] const RGNDATA *dirty_region
3340 );
3341 HRESULT Clear(
3342 [in] DWORD rect_count,
3343 [in] const WINED3DRECT *rects,
3344 [in] DWORD flags,
3345 [in] WINED3DCOLOR color,
3346 [in] float z,
3347 [in] DWORD stencil
3348 );
3349 void ClearRendertargetView(
3350 [in] IWineD3DRendertargetView *rendertarget_view,
3351 [in] const float color[4]
3352 );
3353 void SetPrimitiveType(
3354 [in] WINED3DPRIMITIVETYPE primitive_topology
3355 );
3356 void GetPrimitiveType(
3357 [out] WINED3DPRIMITIVETYPE *primitive_topology
3358 );
3359 HRESULT DrawPrimitive(
3360 [in] UINT start_vertex,
3361 [in] UINT vertex_count
3362 );
3363 HRESULT DrawIndexedPrimitive(
3364 [in] UINT start_idx,
3365 [in] UINT index_count
3366 );
3367 HRESULT DrawPrimitiveUP(
3368 [in] UINT vertex_count,
3369 [in] const void *stream_data,
3370 [in] UINT stream_stride
3371 );
3372 HRESULT DrawIndexedPrimitiveUP(
3373 [in] UINT index_count,
3374 [in] const void *index_data,
3375 [in] WINED3DFORMAT index_data_format,
3376 [in] const void *stream_data,
3377 [in] UINT stream_stride
3378 );
3379 HRESULT DrawPrimitiveStrided(
3380 [in] UINT vertex_count,
3381 [in] const WineDirect3DVertexStridedData *strided_data
3382 );
3383 HRESULT DrawIndexedPrimitiveStrided(
3384 [in] UINT index_count,
3385 [in] const WineDirect3DVertexStridedData *strided_data,
3386 [in] UINT vertex_count,
3387 [in] const void *index_data,
3388 [in] WINED3DFORMAT index_data_format
3389 );
3390 HRESULT DrawRectPatch(
3391 [in] UINT handle,
3392 [in] const float *num_segs,
3393 [in] const WINED3DRECTPATCH_INFO *rect_patch_info
3394 );
3395 HRESULT DrawTriPatch(
3396 [in] UINT handle,
3397 [in] const float *num_segs,
3398 [in] const WINED3DTRIPATCH_INFO *tri_patch_info
3399 );
3400 HRESULT DeletePatch(
3401 [in] UINT handle
3402 );
3403 HRESULT ColorFill(
3404 [in] IWineD3DSurface *surface,
3405 [in] const WINED3DRECT *rect,
3406 [in] WINED3DCOLOR color
3407 );
3408 HRESULT UpdateTexture(
3409 [in] IWineD3DBaseTexture *src_texture,
3410 [in] IWineD3DBaseTexture *dst_texture
3411 );
3412 HRESULT UpdateSurface(
3413 [in] IWineD3DSurface *src_surface,
3414 [in] const RECT *src_rect,
3415 [in] IWineD3DSurface *dst_surface,
3416 [in] const POINT *dst_point
3417 );
3418 HRESULT GetFrontBufferData(
3419 [in] UINT swapchain_idx,
3420 [in] IWineD3DSurface *dst_surface
3421 );
3422 HRESULT EnumResources(
3423 [in] D3DCB_ENUMRESOURCES callback,
3424 [in] void *data
3425 );
3426 HRESULT GetSurfaceFromDC(
3427 [in] HDC dc,
3428 [out] IWineD3DSurface **surface
3429 );
3430 HRESULT AcquireFocusWindow(
3431 [in] HWND window
3432 );
3433 void ReleaseFocusWindow(
3434 );
3435}
3436
3437IWineD3D *WineDirect3DCreate(UINT dxVersion, IUnknown *parent);
3438IWineD3DClipper *WineDirect3DCreateClipper(IUnknown *parent);
3439void wined3d_mutex_lock(void);
3440void wined3d_mutex_unlock(void);
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette