VirtualBox

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

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

export the Wine stuff to OSE

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