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