VirtualBox

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

Last change on this file since 22496 was 22496, checked in by vboxsync, 16 years ago

crOpenGL: update wine to 1.1.27 and better fix for depthstencil surface refcounting

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

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