push 9d6e510d5bb9560a6aa2e6ec402cb2d2444b5081
[wine/hacks.git] / include / wine / wined3d.idl
blob324f5a2dbcdba0798586767d88c22919e4e4bde9
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
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.
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.
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
26 import "unknwn.idl";
28 cpp_quote("#if 0")
29 typedef HANDLE HMONITOR;
31 typedef struct _RGNDATAHEADER
33 DWORD dwSize;
34 DWORD iType;
35 DWORD nCount;
36 DWORD nRgnSize;
37 RECT rcBound;
38 } RGNDATAHEADER;
40 typedef struct _RGNDATA
42 RGNDATAHEADER rdh;
43 char Buffer[1];
44 } RGNDATA;
45 cpp_quote("#endif")
47 cpp_quote("#define WINED3D_OK S_OK")
49 const UINT _FACWINED3D = 0x876;
50 cpp_quote("#define MAKE_WINED3DSTATUS(code) MAKE_HRESULT(0, _FACWINED3D, code)")
51 cpp_quote("#define WINED3DOK_NOAUTOGEN MAKE_WINED3DSTATUS(2159)")
53 cpp_quote("#define MAKE_WINED3DHRESULT(code) MAKE_HRESULT(1, _FACWINED3D, code)")
54 cpp_quote("#define WINED3DERR_WRONGTEXTUREFORMAT MAKE_WINED3DHRESULT(2072)")
55 cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLOROPERATION MAKE_WINED3DHRESULT(2073)")
56 cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLORARG MAKE_WINED3DHRESULT(2074)")
57 cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAOPERATION MAKE_WINED3DHRESULT(2075)")
58 cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAARG MAKE_WINED3DHRESULT(2076)")
59 cpp_quote("#define WINED3DERR_TOOMANYOPERATIONS MAKE_WINED3DHRESULT(2077)")
60 cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREFILTER MAKE_WINED3DHRESULT(2078)")
61 cpp_quote("#define WINED3DERR_UNSUPPORTEDFACTORVALUE MAKE_WINED3DHRESULT(2079)")
62 cpp_quote("#define WINED3DERR_CONFLICTINGRENDERSTATE MAKE_WINED3DHRESULT(2081)")
63 cpp_quote("#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_WINED3DHRESULT(2082)")
64 cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREPALETTE MAKE_WINED3DHRESULT(2086)")
65 cpp_quote("#define WINED3DERR_DRIVERINTERNALERROR MAKE_WINED3DHRESULT(2087)")
66 cpp_quote("#define WINED3DERR_NOTFOUND MAKE_WINED3DHRESULT(2150)")
67 cpp_quote("#define WINED3DERR_MOREDATA MAKE_WINED3DHRESULT(2151)")
68 cpp_quote("#define WINED3DERR_DEVICELOST MAKE_WINED3DHRESULT(2152)")
69 cpp_quote("#define WINED3DERR_DEVICENOTRESET MAKE_WINED3DHRESULT(2153)")
70 cpp_quote("#define WINED3DERR_NOTAVAILABLE MAKE_WINED3DHRESULT(2154)")
71 cpp_quote("#define WINED3DERR_OUTOFVIDEOMEMORY MAKE_WINED3DHRESULT(380)")
72 cpp_quote("#define WINED3DERR_INVALIDDEVICE MAKE_WINED3DHRESULT(2155)")
73 cpp_quote("#define WINED3DERR_INVALIDCALL MAKE_WINED3DHRESULT(2156)")
74 cpp_quote("#define WINED3DERR_DRIVERINVALIDCALL MAKE_WINED3DHRESULT(2157)")
75 cpp_quote("#define WINED3DERR_WASSTILLDRAWING MAKE_WINED3DHRESULT(540)")
76 cpp_quote("#define WINEDDERR_NOTAOVERLAYSURFACE MAKE_WINED3DHRESULT(580)")
77 cpp_quote("#define WINEDDERR_NODC MAKE_WINED3DHRESULT(586)")
78 cpp_quote("#define WINEDDERR_DCALREADYCREATED MAKE_WINED3DHRESULT(620)")
79 cpp_quote("#define WINEDDERR_NOTFLIPPABLE MAKE_WINED3DHRESULT(582)")
80 cpp_quote("#define WINEDDERR_SURFACEBUSY MAKE_WINED3DHRESULT(430)")
81 cpp_quote("#define WINEDDERR_INVALIDRECT MAKE_WINED3DHRESULT(150)")
82 cpp_quote("#define WINEDDERR_NOCLIPLIST MAKE_WINED3DHRESULT(205)")
83 cpp_quote("#define WINEDDERR_OVERLAYNOTVISIBLE MAKE_WINED3DHRESULT(577)")
85 typedef DWORD WINED3DCOLOR;
87 typedef enum _WINED3DLIGHTTYPE
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;
97 typedef enum _WINED3DPRIMITIVETYPE
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;
108 typedef enum _WINED3DDEVTYPE
110 WINED3DDEVTYPE_HAL = 1,
111 WINED3DDEVTYPE_REF = 2,
112 WINED3DDEVTYPE_SW = 3,
113 WINED3DDEVTYPE_NULLREF = 4,
114 WINED3DDEVTYPE_FORCE_DWORD = 0xffffffff
115 } WINED3DDEVTYPE;
117 typedef enum _WINED3DDEGREETYPE
119 WINED3DDEGREE_LINEAR = 1,
120 WINED3DDEGREE_QUADRATIC = 2,
121 WINED3DDEGREE_CUBIC = 3,
122 WINED3DDEGREE_QUINTIC = 5,
123 WINED3DDEGREE_FORCE_DWORD = 0x7fffffff
124 } WINED3DDEGREETYPE;
126 typedef enum _WINED3DFORMAT
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;
181 cpp_quote("#define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \\")
182 cpp_quote(" ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \\")
183 cpp_quote(" ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24 ))")
184 cpp_quote("#define WINED3DFMT_UYVY WINEMAKEFOURCC('U', 'Y', 'V', 'Y')")
185 cpp_quote("#define WINED3DFMT_YUY2 WINEMAKEFOURCC('Y', 'U', 'Y', '2')")
186 cpp_quote("#define WINED3DFMT_YV12 WINEMAKEFOURCC('Y', 'V', '1', '2')")
187 cpp_quote("#define WINED3DFMT_DXT1 WINEMAKEFOURCC('D', 'X', 'T', '1')")
188 cpp_quote("#define WINED3DFMT_DXT2 WINEMAKEFOURCC('D', 'X', 'T', '2')")
189 cpp_quote("#define WINED3DFMT_DXT3 WINEMAKEFOURCC('D', 'X', 'T', '3')")
190 cpp_quote("#define WINED3DFMT_DXT4 WINEMAKEFOURCC('D', 'X', 'T', '4')")
191 cpp_quote("#define WINED3DFMT_DXT5 WINEMAKEFOURCC('D', 'X', 'T', '5')")
192 cpp_quote("#define WINED3DFMT_MULTI2_ARGB8 WINEMAKEFOURCC('M', 'E', 'T', '1')")
193 cpp_quote("#define WINED3DFMT_G8R8_G8B8 WINEMAKEFOURCC('G', 'R', 'G', 'B')")
194 cpp_quote("#define WINED3DFMT_R8G8_B8G8 WINEMAKEFOURCC('R', 'G', 'B', 'G')")
195 /* Vendor specific formats */
196 cpp_quote("#define WINED3DFMT_ATI2N WINEMAKEFOURCC('A', 'T', 'I', '2')")
197 cpp_quote("#define WINED3DFMT_NVHU WINEMAKEFOURCC('N', 'V', 'H', 'U')")
198 cpp_quote("#define WINED3DFMT_NVHS WINEMAKEFOURCC('N', 'V', 'H', 'S')")
200 typedef enum _WINED3DRENDERSTATETYPE
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;
373 const UINT WINEHIGHEST_RENDER_STATE = WINED3DRS_BLENDOPALPHA;
375 typedef enum _WINED3DBLEND
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;
395 typedef enum _WINED3DBLENDOP
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;
405 typedef enum _WINED3DVERTEXBLENDFLAGS
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;
415 typedef enum _WINED3DCMPFUNC
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;
428 typedef enum _WINED3DZBUFFERTYPE
430 WINED3DZB_FALSE = 0,
431 WINED3DZB_TRUE = 1,
432 WINED3DZB_USEW = 2,
433 WINED3DZB_FORCE_DWORD = 0x7fffffff
434 } WINED3DZBUFFERTYPE;
436 typedef enum _WINED3DFOGMODE
438 WINED3DFOG_NONE = 0,
439 WINED3DFOG_EXP = 1,
440 WINED3DFOG_EXP2 = 2,
441 WINED3DFOG_LINEAR = 3,
442 WINED3DFOG_FORCE_DWORD = 0x7fffffff
443 } WINED3DFOGMODE;
445 typedef enum _WINED3DSHADEMODE
447 WINED3DSHADE_FLAT = 1,
448 WINED3DSHADE_GOURAUD = 2,
449 WINED3DSHADE_PHONG = 3,
450 WINED3DSHADE_FORCE_DWORD = 0x7fffffff
451 } WINED3DSHADEMODE;
453 typedef enum _WINED3DFILLMODE
455 WINED3DFILL_POINT = 1,
456 WINED3DFILL_WIREFRAME = 2,
457 WINED3DFILL_SOLID = 3,
458 WINED3DFILL_FORCE_DWORD = 0x7fffffff
459 } WINED3DFILLMODE;
461 typedef enum _WINED3DCULL
463 WINED3DCULL_NONE = 1,
464 WINED3DCULL_CW = 2,
465 WINED3DCULL_CCW = 3,
466 WINED3DCULL_FORCE_DWORD = 0x7fffffff
467 } WINED3DCULL;
469 typedef enum _WINED3DSTENCILOP
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;
482 typedef enum _WINED3DMATERIALCOLORSOURCE
484 WINED3DMCS_MATERIAL = 0,
485 WINED3DMCS_COLOR1 = 1,
486 WINED3DMCS_COLOR2 = 2,
487 WINED3DMCS_FORCE_DWORD = 0x7fffffff
488 } WINED3DMATERIALCOLORSOURCE;
490 typedef enum _WINED3DPATCHEDGESTYLE
492 WINED3DPATCHEDGE_DISCRETE = 0,
493 WINED3DPATCHEDGE_CONTINUOUS = 1,
494 WINED3DPATCHEDGE_FORCE_DWORD = 0x7fffffff
495 } WINED3DPATCHEDGESTYLE;
497 typedef enum _WINED3DBACKBUFFER_TYPE
499 WINED3DBACKBUFFER_TYPE_MONO = 0,
500 WINED3DBACKBUFFER_TYPE_LEFT = 1,
501 WINED3DBACKBUFFER_TYPE_RIGHT = 2,
502 WINED3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
503 } WINED3DBACKBUFFER_TYPE;
505 typedef enum _WINED3DSWAPEFFECT
507 WINED3DSWAPEFFECT_DISCARD = 1,
508 WINED3DSWAPEFFECT_FLIP = 2,
509 WINED3DSWAPEFFECT_COPY = 3,
510 WINED3DSWAPEFFECT_COPY_VSYNC = 4,
511 WINED3DSWAPEFFECT_FORCE_DWORD = 0xffffffff
512 } WINED3DSWAPEFFECT;
514 typedef enum _WINED3DSAMPLERSTATETYPE
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;
531 const UINT WINED3D_HIGHEST_SAMPLER_STATE = WINED3DSAMP_DMAPOFFSET;
533 typedef enum _WINED3DMULTISAMPLE_TYPE
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;
555 typedef enum _WINED3DTEXTURESTAGESTATETYPE
557 WINED3DTSS_COLOROP = 0,
558 WINED3DTSS_COLORARG1 = 1,
559 WINED3DTSS_COLORARG2 = 2,
560 WINED3DTSS_ALPHAOP = 3,
561 WINED3DTSS_ALPHAARG1 = 4,
562 WINED3DTSS_ALPHAARG2 = 5,
563 WINED3DTSS_BUMPENVMAT00 = 6,
564 WINED3DTSS_BUMPENVMAT01 = 7,
565 WINED3DTSS_BUMPENVMAT10 = 8,
566 WINED3DTSS_BUMPENVMAT11 = 9,
567 WINED3DTSS_TEXCOORDINDEX = 10,
568 WINED3DTSS_BUMPENVLSCALE = 11,
569 WINED3DTSS_BUMPENVLOFFSET = 12,
570 WINED3DTSS_TEXTURETRANSFORMFLAGS = 13,
571 WINED3DTSS_COLORARG0 = 14,
572 WINED3DTSS_ALPHAARG0 = 15,
573 WINED3DTSS_RESULTARG = 16,
574 WINED3DTSS_CONSTANT = 17,
575 WINED3DTSS_FORCE_DWORD = 0x7fffffff
576 } WINED3DTEXTURESTAGESTATETYPE;
577 const UINT WINED3D_HIGHEST_TEXTURE_STATE = WINED3DTSS_CONSTANT;
579 typedef enum _WINED3DTEXTURETRANSFORMFLAGS
581 WINED3DTTFF_DISABLE = 0,
582 WINED3DTTFF_COUNT1 = 1,
583 WINED3DTTFF_COUNT2 = 2,
584 WINED3DTTFF_COUNT3 = 3,
585 WINED3DTTFF_COUNT4 = 4,
586 WINED3DTTFF_PROJECTED = 256,
587 WINED3DTTFF_FORCE_DWORD = 0x7fffffff
588 } WINED3DTEXTURETRANSFORMFLAGS;
590 typedef enum _WINED3DTEXTUREOP
592 WINED3DTOP_DISABLE = 1,
593 WINED3DTOP_SELECTARG1 = 2,
594 WINED3DTOP_SELECTARG2 = 3,
595 WINED3DTOP_MODULATE = 4,
596 WINED3DTOP_MODULATE2X = 5,
597 WINED3DTOP_MODULATE4X = 6,
598 WINED3DTOP_ADD = 7,
599 WINED3DTOP_ADDSIGNED = 8,
600 WINED3DTOP_ADDSIGNED2X = 9,
601 WINED3DTOP_SUBTRACT = 10,
602 WINED3DTOP_ADDSMOOTH = 11,
603 WINED3DTOP_BLENDDIFFUSEALPHA = 12,
604 WINED3DTOP_BLENDTEXTUREALPHA = 13,
605 WINED3DTOP_BLENDFACTORALPHA = 14,
606 WINED3DTOP_BLENDTEXTUREALPHAPM = 15,
607 WINED3DTOP_BLENDCURRENTALPHA = 16,
608 WINED3DTOP_PREMODULATE = 17,
609 WINED3DTOP_MODULATEALPHA_ADDCOLOR = 18,
610 WINED3DTOP_MODULATECOLOR_ADDALPHA = 19,
611 WINED3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
612 WINED3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
613 WINED3DTOP_BUMPENVMAP = 22,
614 WINED3DTOP_BUMPENVMAPLUMINANCE = 23,
615 WINED3DTOP_DOTPRODUCT3 = 24,
616 WINED3DTOP_MULTIPLYADD = 25,
617 WINED3DTOP_LERP = 26,
618 WINED3DTOP_FORCE_DWORD = 0x7fffffff,
619 } WINED3DTEXTUREOP;
621 typedef enum _WINED3DTEXTUREADDRESS
623 WINED3DTADDRESS_WRAP = 1,
624 WINED3DTADDRESS_MIRROR = 2,
625 WINED3DTADDRESS_CLAMP = 3,
626 WINED3DTADDRESS_BORDER = 4,
627 WINED3DTADDRESS_MIRRORONCE = 5,
628 WINED3DTADDRESS_FORCE_DWORD = 0x7fffffff
629 } WINED3DTEXTUREADDRESS;
631 typedef enum _WINED3DTRANSFORMSTATETYPE
633 WINED3DTS_VIEW = 2,
634 WINED3DTS_PROJECTION = 3,
635 WINED3DTS_TEXTURE0 = 16,
636 WINED3DTS_TEXTURE1 = 17,
637 WINED3DTS_TEXTURE2 = 18,
638 WINED3DTS_TEXTURE3 = 19,
639 WINED3DTS_TEXTURE4 = 20,
640 WINED3DTS_TEXTURE5 = 21,
641 WINED3DTS_TEXTURE6 = 22,
642 WINED3DTS_TEXTURE7 = 23,
643 WINED3DTS_FORCE_DWORD = 0x7fffffff
644 } WINED3DTRANSFORMSTATETYPE;
645 cpp_quote("#define WINED3DTS_WORLD WINED3DTS_WORLDMATRIX(0)")
646 cpp_quote("#define WINED3DTS_WORLD1 WINED3DTS_WORLDMATRIX(1)")
647 cpp_quote("#define WINED3DTS_WORLD2 WINED3DTS_WORLDMATRIX(2)")
648 cpp_quote("#define WINED3DTS_WORLD3 WINED3DTS_WORLDMATRIX(3)")
649 cpp_quote("#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)")
651 typedef enum _WINED3DBASISTYPE
653 WINED3DBASIS_BEZIER = 0,
654 WINED3DBASIS_BSPLINE = 1,
655 WINED3DBASIS_INTERPOLATE = 2,
656 WINED3DBASIS_FORCE_DWORD = 0x7fffffff
657 } WINED3DBASISTYPE;
659 typedef enum _WINED3DCUBEMAP_FACES
661 WINED3DCUBEMAP_FACE_POSITIVE_X = 0,
662 WINED3DCUBEMAP_FACE_NEGATIVE_X = 1,
663 WINED3DCUBEMAP_FACE_POSITIVE_Y = 2,
664 WINED3DCUBEMAP_FACE_NEGATIVE_Y = 3,
665 WINED3DCUBEMAP_FACE_POSITIVE_Z = 4,
666 WINED3DCUBEMAP_FACE_NEGATIVE_Z = 5,
667 WINED3DCUBEMAP_FACE_FORCE_DWORD = 0xffffffff
668 } WINED3DCUBEMAP_FACES;
670 typedef enum _WINED3DTEXTUREFILTERTYPE
672 WINED3DTEXF_NONE = 0,
673 WINED3DTEXF_POINT = 1,
674 WINED3DTEXF_LINEAR = 2,
675 WINED3DTEXF_ANISOTROPIC = 3,
676 WINED3DTEXF_FLATCUBIC = 4,
677 WINED3DTEXF_GAUSSIANCUBIC = 5,
678 WINED3DTEXF_PYRAMIDALQUAD = 6,
679 WINED3DTEXF_GAUSSIANQUAD = 7,
680 WINED3DTEXF_FORCE_DWORD = 0x7fffffff
681 } WINED3DTEXTUREFILTERTYPE;
683 typedef enum _WINED3DRESOURCETYPE
685 WINED3DRTYPE_SURFACE = 1,
686 WINED3DRTYPE_VOLUME = 2,
687 WINED3DRTYPE_TEXTURE = 3,
688 WINED3DRTYPE_VOLUMETEXTURE = 4,
689 WINED3DRTYPE_CUBETEXTURE = 5,
690 WINED3DRTYPE_VERTEXBUFFER = 6,
691 WINED3DRTYPE_INDEXBUFFER = 7,
692 WINED3DRTYPE_FORCE_DWORD = 0x7fffffff
693 } WINED3DRESOURCETYPE;
694 const UINT WINED3DRTYPECOUNT = WINED3DRTYPE_INDEXBUFFER + 1;
696 typedef enum _WINED3DPOOL
698 WINED3DPOOL_DEFAULT = 0,
699 WINED3DPOOL_MANAGED = 1,
700 WINED3DPOOL_SYSTEMMEM = 2,
701 WINED3DPOOL_SCRATCH = 3,
702 WINED3DPOOL_FORCE_DWORD = 0x7fffffff
703 } WINED3DPOOL;
705 typedef enum _WINED3DQUERYTYPE
707 WINED3DQUERYTYPE_VCACHE = 4,
708 WINED3DQUERYTYPE_RESOURCEMANAGER = 5,
709 WINED3DQUERYTYPE_VERTEXSTATS = 6,
710 WINED3DQUERYTYPE_EVENT = 8,
711 WINED3DQUERYTYPE_OCCLUSION = 9,
712 WINED3DQUERYTYPE_TIMESTAMP = 10,
713 WINED3DQUERYTYPE_TIMESTAMPDISJOINT = 11,
714 WINED3DQUERYTYPE_TIMESTAMPFREQ = 12,
715 WINED3DQUERYTYPE_PIPELINETIMINGS = 13,
716 WINED3DQUERYTYPE_INTERFACETIMINGS = 14,
717 WINED3DQUERYTYPE_VERTEXTIMINGS = 15,
718 WINED3DQUERYTYPE_PIXELTIMINGS = 16,
719 WINED3DQUERYTYPE_BANDWIDTHTIMINGS = 17,
720 WINED3DQUERYTYPE_CACHEUTILIZATION = 18
721 } WINED3DQUERYTYPE;
723 const UINT WINED3DISSUE_BEGIN = (1 << 1);
724 const UINT WINED3DISSUE_END = (1 << 0);
725 const UINT WINED3DGETDATA_FLUSH = (1 << 0);
727 typedef enum _WINED3DSTATEBLOCKTYPE
729 WINED3DSBT_INIT = 0,
730 WINED3DSBT_ALL = 1,
731 WINED3DSBT_PIXELSTATE = 2,
732 WINED3DSBT_VERTEXSTATE = 3,
733 WINED3DSBT_RECORDED = 4, /* WineD3D private */
734 WINED3DSBT_FORCE_DWORD = 0xffffffff
735 } WINED3DSTATEBLOCKTYPE;
737 typedef enum _WINED3DDECLMETHOD
739 WINED3DDECLMETHOD_DEFAULT = 0,
740 WINED3DDECLMETHOD_PARTIALU = 1,
741 WINED3DDECLMETHOD_PARTIALV = 2,
742 WINED3DDECLMETHOD_CROSSUV = 3,
743 WINED3DDECLMETHOD_UV = 4,
744 WINED3DDECLMETHOD_LOOKUP = 5,
745 WINED3DDECLMETHOD_LOOKUPPRESAMPLED = 6
746 } WINED3DDECLMETHOD;
748 typedef enum _WINED3DDECLTYPE
750 WINED3DDECLTYPE_FLOAT1 = 0,
751 WINED3DDECLTYPE_FLOAT2 = 1,
752 WINED3DDECLTYPE_FLOAT3 = 2,
753 WINED3DDECLTYPE_FLOAT4 = 3,
754 WINED3DDECLTYPE_D3DCOLOR = 4,
755 WINED3DDECLTYPE_UBYTE4 = 5,
756 WINED3DDECLTYPE_SHORT2 = 6,
757 WINED3DDECLTYPE_SHORT4 = 7,
758 /* VS 2.0 */
759 WINED3DDECLTYPE_UBYTE4N = 8,
760 WINED3DDECLTYPE_SHORT2N = 9,
761 WINED3DDECLTYPE_SHORT4N = 10,
762 WINED3DDECLTYPE_USHORT2N = 11,
763 WINED3DDECLTYPE_USHORT4N = 12,
764 WINED3DDECLTYPE_UDEC3 = 13,
765 WINED3DDECLTYPE_DEC3N = 14,
766 WINED3DDECLTYPE_FLOAT16_2 = 15,
767 WINED3DDECLTYPE_FLOAT16_4 = 16,
768 WINED3DDECLTYPE_UNUSED = 17,
769 } WINED3DDECLTYPE;
770 cpp_quote("#define WINED3DDECL_END() {0xFF, 0, WINED3DDECLTYPE_UNUSED, 0, 0, 0, -1}")
772 typedef enum _WINED3DDECLUSAGE
774 WINED3DDECLUSAGE_POSITION = 0,
775 WINED3DDECLUSAGE_BLENDWEIGHT = 1,
776 WINED3DDECLUSAGE_BLENDINDICES = 2,
777 WINED3DDECLUSAGE_NORMAL = 3,
778 WINED3DDECLUSAGE_PSIZE = 4,
779 WINED3DDECLUSAGE_TEXCOORD = 5,
780 WINED3DDECLUSAGE_TANGENT = 6,
781 WINED3DDECLUSAGE_BINORMAL = 7,
782 WINED3DDECLUSAGE_TESSFACTOR = 8,
783 WINED3DDECLUSAGE_POSITIONT = 9,
784 WINED3DDECLUSAGE_COLOR = 10,
785 WINED3DDECLUSAGE_FOG = 11,
786 WINED3DDECLUSAGE_DEPTH = 12,
787 WINED3DDECLUSAGE_SAMPLE = 13
788 } WINED3DDECLUSAGE;
790 typedef enum _WINED3DSURFTYPE
792 SURFACE_UNKNOWN = 0, /* Default / Unknown surface type */
793 SURFACE_OPENGL, /* OpenGL surface: Renders using libGL, needed for 3D */
794 SURFACE_GDI, /* User surface. No 3D, DirectDraw rendering with GDI */
795 } WINED3DSURFTYPE;
797 const UINT WINED3DCOLORWRITEENABLE_RED = (1<<0);
798 const UINT WINED3DCOLORWRITEENABLE_GREEN = (1<<1);
799 const UINT WINED3DCOLORWRITEENABLE_BLUE = (1<<2);
800 const UINT WINED3DCOLORWRITEENABLE_ALPHA = (1<<3);
802 const UINT WINED3DADAPTER_DEFAULT = 0;
803 const UINT WINED3DENUM_NO_WHQL_LEVEL = 2;
804 const UINT WINED3DPRESENT_BACK_BUFFER_MAX = 3;
806 const UINT WINED3DTSS_TCI_PASSTHRU = 0x00000;
807 const UINT WINED3DTSS_TCI_CAMERASPACENORMAL = 0x10000;
808 const UINT WINED3DTSS_TCI_CAMERASPACEPOSITION = 0x20000;
809 const UINT WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR = 0x30000;
810 const UINT WINED3DTSS_TCI_SPHEREMAP = 0x40000;
812 const UINT WINED3DTA_SELECTMASK = 0x0000000f;
813 const UINT WINED3DTA_DIFFUSE = 0x00000000;
814 const UINT WINED3DTA_CURRENT = 0x00000001;
815 const UINT WINED3DTA_TEXTURE = 0x00000002;
816 const UINT WINED3DTA_TFACTOR = 0x00000003;
817 const UINT WINED3DTA_SPECULAR = 0x00000004;
818 const UINT WINED3DTA_TEMP = 0x00000005;
819 const UINT WINED3DTA_CONSTANT = 0x00000006;
820 const UINT WINED3DTA_COMPLEMENT = 0x00000010;
821 const UINT WINED3DTA_ALPHAREPLICATE = 0x00000020;
823 const UINT WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER = 0x00000001;
824 const UINT WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL = 0x00000002;
825 const UINT WINED3DPRESENTFLAG_DEVICECLIP = 0x00000004;
826 const UINT WINED3DPRESENTFLAG_VIDEO = 0x00000010;
827 const UINT WINED3DPRESENTFLAG_NOAUTOROTATE = 0x00000020;
828 const UINT WINED3DPRESENTFLAG_UNPRUNEDMODE = 0x00000040;
830 const UINT WINED3DDP_MAXTEXCOORD = 8;
832 const UINT WINED3DUSAGE_RENDERTARGET = 0x00000001;
833 const UINT WINED3DUSAGE_DEPTHSTENCIL = 0x00000002;
834 const UINT WINED3DUSAGE_WRITEONLY = 0x00000008;
835 const UINT WINED3DUSAGE_SOFTWAREPROCESSING = 0x00000010;
836 const UINT WINED3DUSAGE_DONOTCLIP = 0x00000020;
837 const UINT WINED3DUSAGE_POINTS = 0x00000040;
838 const UINT WINED3DUSAGE_RTPATCHES = 0x00000080;
839 const UINT WINED3DUSAGE_NPATCHES = 0x00000100;
840 const UINT WINED3DUSAGE_DYNAMIC = 0x00000200;
841 const UINT WINED3DUSAGE_AUTOGENMIPMAP = 0x00000400;
842 const UINT WINED3DUSAGE_DMAP = 0x00004000;
843 const UINT WINED3DUSAGE_MASK = 0x00004fff;
844 const UINT WINED3DUSAGE_OVERLAY = 0x80000000;
846 const UINT WINED3DUSAGE_QUERY_LEGACYBUMPMAP = 0x00008000;
847 const UINT WINED3DUSAGE_QUERY_FILTER = 0x00020000;
848 const UINT WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING = 0x00080000;
849 const UINT WINED3DUSAGE_QUERY_SRGBREAD = 0x00010000;
850 const UINT WINED3DUSAGE_QUERY_SRGBWRITE = 0x00040000;
851 const UINT WINED3DUSAGE_QUERY_VERTEXTEXTURE = 0x00100000;
852 const UINT WINED3DUSAGE_QUERY_WRAPANDMIP = 0x00200000;
853 const UINT WINED3DUSAGE_QUERY_MASK = 0x003f8000;
855 const UINT WINED3DLOCK_READONLY = 0x0010;
856 const UINT WINED3DLOCK_NOSYSLOCK = 0x0800;
857 const UINT WINED3DLOCK_NOOVERWRITE = 0x1000;
858 const UINT WINED3DLOCK_DISCARD = 0x2000;
859 const UINT WINED3DLOCK_DONOTWAIT = 0x4000;
860 const UINT WINED3DLOCK_NO_DIRTY_UPDATE = 0x8000;
862 const UINT WINED3DPRESENT_RATE_DEFAULT = 0x000000000;
864 const UINT WINED3DPRESENT_INTERVAL_DEFAULT = 0x00000000;
865 const UINT WINED3DPRESENT_INTERVAL_ONE = 0x00000001;
866 const UINT WINED3DPRESENT_INTERVAL_TWO = 0x00000002;
867 const UINT WINED3DPRESENT_INTERVAL_THREE = 0x00000004;
868 const UINT WINED3DPRESENT_INTERVAL_FOUR = 0x00000008;
869 const UINT WINED3DPRESENT_INTERVAL_IMMEDIATE = 0x80000000;
871 const UINT WINED3DMAXUSERCLIPPLANES = 32;
872 const UINT WINED3DCLIPPLANE0 = (1 << 0);
873 const UINT WINED3DCLIPPLANE1 = (1 << 1);
874 const UINT WINED3DCLIPPLANE2 = (1 << 2);
875 const UINT WINED3DCLIPPLANE3 = (1 << 3);
876 const UINT WINED3DCLIPPLANE4 = (1 << 4);
877 const UINT WINED3DCLIPPLANE5 = (1 << 5);
879 /* FVF (Flexible Vertex Format) codes */
880 const UINT WINED3DFVF_RESERVED0 = 0x0001;
881 const UINT WINED3DFVF_POSITION_MASK = 0x400e;
882 const UINT WINED3DFVF_XYZ = 0x0002;
883 const UINT WINED3DFVF_XYZRHW = 0x0004;
884 const UINT WINED3DFVF_XYZB1 = 0x0006;
885 const UINT WINED3DFVF_XYZB2 = 0x0008;
886 const UINT WINED3DFVF_XYZB3 = 0x000a;
887 const UINT WINED3DFVF_XYZB4 = 0x000c;
888 const UINT WINED3DFVF_XYZB5 = 0x000e;
889 const UINT WINED3DFVF_XYZW = 0x4002;
890 const UINT WINED3DFVF_NORMAL = 0x0010;
891 const UINT WINED3DFVF_PSIZE = 0x0020;
892 const UINT WINED3DFVF_DIFFUSE = 0x0040;
893 const UINT WINED3DFVF_SPECULAR = 0x0080;
894 const UINT WINED3DFVF_TEXCOUNT_MASK = 0x0f00;
895 const UINT WINED3DFVF_TEXCOUNT_SHIFT = 8;
896 const UINT WINED3DFVF_TEX0 = 0x0000;
897 const UINT WINED3DFVF_TEX1 = 0x0100;
898 const UINT WINED3DFVF_TEX2 = 0x0200;
899 const UINT WINED3DFVF_TEX3 = 0x0300;
900 const UINT WINED3DFVF_TEX4 = 0x0400;
901 const UINT WINED3DFVF_TEX5 = 0x0500;
902 const UINT WINED3DFVF_TEX6 = 0x0600;
903 const UINT WINED3DFVF_TEX7 = 0x0700;
904 const UINT WINED3DFVF_TEX8 = 0x0800;
905 const UINT WINED3DFVF_LASTBETA_UBYTE4 = 0x1000;
906 const UINT WINED3DFVF_LASTBETA_D3DCOLOR = 0x8000;
907 const UINT WINED3DFVF_RESERVED2 = 0x6000;
909 const UINT WINED3DFVF_TEXTUREFORMAT1 = 3;
910 const UINT WINED3DFVF_TEXTUREFORMAT2 = 0;
911 const UINT WINED3DFVF_TEXTUREFORMAT3 = 1;
912 const UINT WINED3DFVF_TEXTUREFORMAT4 = 2;
913 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))")
914 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2)")
915 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))")
916 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))")
918 /* Clear flags */
919 const UINT WINED3DCLEAR_TARGET = 0x00000001;
920 const UINT WINED3DCLEAR_ZBUFFER = 0x00000002;
921 const UINT WINED3DCLEAR_STENCIL = 0x00000004;
923 /* Stream source flags */
924 const UINT WINED3DSTREAMSOURCE_INDEXEDDATA = (1 << 30);
925 const UINT WINED3DSTREAMSOURCE_INSTANCEDATA = (2 << 30);
927 /* SetPrivateData flags */
928 const UINT WINED3DSPD_IUNKNOWN = 0x00000001;
930 /* IWineD3D::CreateDevice behaviour flags */
931 const UINT WINED3DCREATE_FPU_PRESERVE = 0x00000002;
932 const UINT WINED3DCREATE_PUREDEVICE = 0x00000010;
933 const UINT WINED3DCREATE_SOFTWARE_VERTEXPROCESSING = 0x00000020;
934 const UINT WINED3DCREATE_HARDWARE_VERTEXPROCESSING = 0x00000040;
935 const UINT WINED3DCREATE_MIXED_VERTEXPROCESSING = 0x00000080;
936 const UINT WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT = 0x00000100;
937 const UINT WINED3DCREATE_ADAPTERGROUP_DEVICE = 0x00000200;
939 /* VTF defines */
940 const UINT WINED3DDMAPSAMPLER = 0x100;
941 const UINT WINED3DVERTEXTEXTURESAMPLER0 = (WINED3DDMAPSAMPLER + 1);
942 const UINT WINED3DVERTEXTEXTURESAMPLER1 = (WINED3DDMAPSAMPLER + 2);
943 const UINT WINED3DVERTEXTEXTURESAMPLER2 = (WINED3DDMAPSAMPLER + 3);
944 const UINT WINED3DVERTEXTEXTURESAMPLER3 = (WINED3DDMAPSAMPLER + 4);
946 const UINT WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD = 0x00000020;
947 const UINT WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION = 0x00000080;
948 const UINT WINED3DCAPS3_COPY_TO_VIDMEM = 0x00000100;
949 const UINT WINED3DCAPS3_COPY_TO_SYSTEMMEM = 0x00000200;
950 const UINT WINED3DCAPS3_RESERVED = 0x8000001f;
952 const UINT WINED3DDEVCAPS2_STREAMOFFSET = 0x00000001;
953 const UINT WINED3DDEVCAPS2_DMAPNPATCH = 0x00000002;
954 const UINT WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH = 0x00000004;
955 const UINT WINED3DDEVCAPS2_ADAPTIVETESSNPATCH = 0x00000008;
956 const UINT WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES = 0x00000010;
957 const UINT WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH = 0x00000020;
958 const UINT WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET = 0x00000040;
960 const UINT WINED3DDTCAPS_UBYTE4 = 0x00000001;
961 const UINT WINED3DDTCAPS_UBYTE4N = 0x00000002;
962 const UINT WINED3DDTCAPS_SHORT2N = 0x00000004;
963 const UINT WINED3DDTCAPS_SHORT4N = 0x00000008;
964 const UINT WINED3DDTCAPS_USHORT2N = 0x00000010;
965 const UINT WINED3DDTCAPS_USHORT4N = 0x00000020;
966 const UINT WINED3DDTCAPS_UDEC3 = 0x00000040;
967 const UINT WINED3DDTCAPS_DEC3N = 0x00000080;
968 const UINT WINED3DDTCAPS_FLOAT16_2 = 0x00000100;
969 const UINT WINED3DDTCAPS_FLOAT16_4 = 0x00000200;
971 const UINT WINED3DFVFCAPS_TEXCOORDCOUNTMASK = 0x0000ffff;
972 const UINT WINED3DFVFCAPS_DONOTSTRIPELEMENTS = 0x00080000;
973 const UINT WINED3DFVFCAPS_PSIZE = 0x00100000;
975 const UINT WINED3DLINECAPS_TEXTURE = 0x00000001;
976 const UINT WINED3DLINECAPS_ZTEST = 0x00000002;
977 const UINT WINED3DLINECAPS_BLEND = 0x00000004;
978 const UINT WINED3DLINECAPS_ALPHACMP = 0x00000008;
979 const UINT WINED3DLINECAPS_FOG = 0x00000010;
980 const UINT WINED3DLINECAPS_ANTIALIAS = 0x00000020;
982 const UINT WINED3DMAX30SHADERINSTRUCTIONS = 32768;
983 const UINT WINED3DMIN30SHADERINSTRUCTIONS = 512;
985 const UINT WINED3DPBLENDCAPS_ZERO = 0x00000001;
986 const UINT WINED3DPBLENDCAPS_ONE = 0x00000002;
987 const UINT WINED3DPBLENDCAPS_SRCCOLOR = 0x00000004;
988 const UINT WINED3DPBLENDCAPS_INVSRCCOLOR = 0x00000008;
989 const UINT WINED3DPBLENDCAPS_SRCALPHA = 0x00000010;
990 const UINT WINED3DPBLENDCAPS_INVSRCALPHA = 0x00000020;
991 const UINT WINED3DPBLENDCAPS_DESTALPHA = 0x00000040;
992 const UINT WINED3DPBLENDCAPS_INVDESTALPHA = 0x00000080;
993 const UINT WINED3DPBLENDCAPS_DESTCOLOR = 0x00000100;
994 const UINT WINED3DPBLENDCAPS_INVDESTCOLOR = 0x00000200;
995 const UINT WINED3DPBLENDCAPS_SRCALPHASAT = 0x00000400;
996 const UINT WINED3DPBLENDCAPS_BOTHSRCALPHA = 0x00000800;
997 const UINT WINED3DPBLENDCAPS_BOTHINVSRCALPHA = 0x00001000;
998 const UINT WINED3DPBLENDCAPS_BLENDFACTOR = 0x00002000;
1000 const UINT WINED3DPCMPCAPS_NEVER = 0x00000001;
1001 const UINT WINED3DPCMPCAPS_LESS = 0x00000002;
1002 const UINT WINED3DPCMPCAPS_EQUAL = 0x00000004;
1003 const UINT WINED3DPCMPCAPS_LESSEQUAL = 0x00000008;
1004 const UINT WINED3DPCMPCAPS_GREATER = 0x00000010;
1005 const UINT WINED3DPCMPCAPS_NOTEQUAL = 0x00000020;
1006 const UINT WINED3DPCMPCAPS_GREATEREQUAL = 0x00000040;
1007 const UINT WINED3DPCMPCAPS_ALWAYS = 0x00000080;
1009 const UINT WINED3DPMISCCAPS_MASKZ = 0x00000002;
1010 const UINT WINED3DPMISCCAPS_LINEPATTERNREP = 0x00000004;
1011 const UINT WINED3DPMISCCAPS_CULLNONE = 0x00000010;
1012 const UINT WINED3DPMISCCAPS_CULLCW = 0x00000020;
1013 const UINT WINED3DPMISCCAPS_CULLCCW = 0x00000040;
1014 const UINT WINED3DPMISCCAPS_COLORWRITEENABLE = 0x00000080;
1015 const UINT WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS = 0x00000100;
1016 const UINT WINED3DPMISCCAPS_CLIPTLVERTS = 0x00000200;
1017 const UINT WINED3DPMISCCAPS_TSSARGTEMP = 0x00000400;
1018 const UINT WINED3DPMISCCAPS_BLENDOP = 0x00000800;
1019 const UINT WINED3DPMISCCAPS_NULLREFERENCE = 0x00001000;
1020 const UINT WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS = 0x00004000;
1021 const UINT WINED3DPMISCCAPS_PERSTAGECONSTANT = 0x00008000;
1022 const UINT WINED3DPMISCCAPS_FOGANDSPECULARALPHA = 0x00010000;
1023 const UINT WINED3DPMISCCAPS_SEPARATEALPHABLEND = 0x00020000;
1024 const UINT WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS = 0x00040000;
1025 const UINT WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING = 0x00080000;
1026 const UINT WINED3DPMISCCAPS_FOGVERTEXCLAMPED = 0x00100000;
1028 const UINT WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24;
1029 const UINT WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0;
1030 const UINT WINED3DPS20_MAX_NUMTEMPS = 32;
1031 const UINT WINED3DPS20_MIN_NUMTEMPS = 12;
1032 const UINT WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH = 4;
1033 const UINT WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH = 0;
1034 const UINT WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS = 512;
1035 const UINT WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS = 96;
1037 const UINT WINED3DPS20CAPS_ARBITRARYSWIZZLE = 0x00000001;
1038 const UINT WINED3DPS20CAPS_GRADIENTINSTRUCTIONS = 0x00000002;
1039 const UINT WINED3DPS20CAPS_PREDICATION = 0x00000004;
1040 const UINT WINED3DPS20CAPS_NODEPENDENTREADLIMIT = 0x00000008;
1041 const UINT WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT = 0x00000010;
1043 const UINT WINED3DPTADDRESSCAPS_WRAP = 0x00000001;
1044 const UINT WINED3DPTADDRESSCAPS_MIRROR = 0x00000002;
1045 const UINT WINED3DPTADDRESSCAPS_CLAMP = 0x00000004;
1046 const UINT WINED3DPTADDRESSCAPS_BORDER = 0x00000008;
1047 const UINT WINED3DPTADDRESSCAPS_INDEPENDENTUV = 0x00000010;
1048 const UINT WINED3DPTADDRESSCAPS_MIRRORONCE = 0x00000020;
1050 const UINT WINED3DSTENCILCAPS_KEEP = 0x00000001;
1051 const UINT WINED3DSTENCILCAPS_ZERO = 0x00000002;
1052 const UINT WINED3DSTENCILCAPS_REPLACE = 0x00000004;
1053 const UINT WINED3DSTENCILCAPS_INCRSAT = 0x00000008;
1054 const UINT WINED3DSTENCILCAPS_DECRSAT = 0x00000010;
1055 const UINT WINED3DSTENCILCAPS_INVERT = 0x00000020;
1056 const UINT WINED3DSTENCILCAPS_INCR = 0x00000040;
1057 const UINT WINED3DSTENCILCAPS_DECR = 0x00000080;
1058 const UINT WINED3DSTENCILCAPS_TWOSIDED = 0x00000100;
1060 const UINT WINED3DTEXOPCAPS_DISABLE = 0x00000001;
1061 const UINT WINED3DTEXOPCAPS_SELECTARG1 = 0x00000002;
1062 const UINT WINED3DTEXOPCAPS_SELECTARG2 = 0x00000004;
1063 const UINT WINED3DTEXOPCAPS_MODULATE = 0x00000008;
1064 const UINT WINED3DTEXOPCAPS_MODULATE2X = 0x00000010;
1065 const UINT WINED3DTEXOPCAPS_MODULATE4X = 0x00000020;
1066 const UINT WINED3DTEXOPCAPS_ADD = 0x00000040;
1067 const UINT WINED3DTEXOPCAPS_ADDSIGNED = 0x00000080;
1068 const UINT WINED3DTEXOPCAPS_ADDSIGNED2X = 0x00000100;
1069 const UINT WINED3DTEXOPCAPS_SUBTRACT = 0x00000200;
1070 const UINT WINED3DTEXOPCAPS_ADDSMOOTH = 0x00000400;
1071 const UINT WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA = 0x00000800;
1072 const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHA = 0x00001000;
1073 const UINT WINED3DTEXOPCAPS_BLENDFACTORALPHA = 0x00002000;
1074 const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM = 0x00004000;
1075 const UINT WINED3DTEXOPCAPS_BLENDCURRENTALPHA = 0x00008000;
1076 const UINT WINED3DTEXOPCAPS_PREMODULATE = 0x00010000;
1077 const UINT WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR = 0x00020000;
1078 const UINT WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA = 0x00040000;
1079 const UINT WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR = 0x00080000;
1080 const UINT WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA = 0x00100000;
1081 const UINT WINED3DTEXOPCAPS_BUMPENVMAP = 0x00200000;
1082 const UINT WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE = 0x00400000;
1083 const UINT WINED3DTEXOPCAPS_DOTPRODUCT3 = 0x00800000;
1084 const UINT WINED3DTEXOPCAPS_MULTIPLYADD = 0x01000000;
1085 const UINT WINED3DTEXOPCAPS_LERP = 0x02000000;
1087 const UINT WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH = 24;
1088 const UINT WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH = 0;
1089 const UINT WINED3DVS20_MAX_NUMTEMPS = 32;
1090 const UINT WINED3DVS20_MIN_NUMTEMPS = 12;
1091 const UINT WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH = 4;
1092 const UINT WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH = 1;
1094 const UINT WINED3DVS20CAPS_PREDICATION = 0x00000001;
1096 const UINT WINED3DCAPS2_NO2DDURING3DSCENE = 0x00000002;
1097 const UINT WINED3DCAPS2_FULLSCREENGAMMA = 0x00020000;
1098 const UINT WINED3DCAPS2_CANRENDERWINDOWED = 0x00080000;
1099 const UINT WINED3DCAPS2_CANCALIBRATEGAMMA = 0x00100000;
1100 const UINT WINED3DCAPS2_RESERVED = 0x02000000;
1101 const UINT WINED3DCAPS2_CANMANAGERESOURCE = 0x10000000;
1102 const UINT WINED3DCAPS2_DYNAMICTEXTURES = 0x20000000;
1103 const UINT WINED3DCAPS2_CANAUTOGENMIPMAP = 0x40000000;
1105 const UINT WINED3DPRASTERCAPS_DITHER = 0x00000001;
1106 const UINT WINED3DPRASTERCAPS_ROP2 = 0x00000002;
1107 const UINT WINED3DPRASTERCAPS_XOR = 0x00000004;
1108 const UINT WINED3DPRASTERCAPS_PAT = 0x00000008;
1109 const UINT WINED3DPRASTERCAPS_ZTEST = 0x00000010;
1110 const UINT WINED3DPRASTERCAPS_SUBPIXEL = 0x00000020;
1111 const UINT WINED3DPRASTERCAPS_SUBPIXELX = 0x00000040;
1112 const UINT WINED3DPRASTERCAPS_FOGVERTEX = 0x00000080;
1113 const UINT WINED3DPRASTERCAPS_FOGTABLE = 0x00000100;
1114 const UINT WINED3DPRASTERCAPS_STIPPLE = 0x00000200;
1115 const UINT WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT = 0x00000400;
1116 const UINT WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT = 0x00000800;
1117 const UINT WINED3DPRASTERCAPS_ANTIALIASEDGES = 0x00001000;
1118 const UINT WINED3DPRASTERCAPS_MIPMAPLODBIAS = 0x00002000;
1119 const UINT WINED3DPRASTERCAPS_ZBIAS = 0x00004000;
1120 const UINT WINED3DPRASTERCAPS_ZBUFFERLESSHSR = 0x00008000;
1121 const UINT WINED3DPRASTERCAPS_FOGRANGE = 0x00010000;
1122 const UINT WINED3DPRASTERCAPS_ANISOTROPY = 0x00020000;
1123 const UINT WINED3DPRASTERCAPS_WBUFFER = 0x00040000;
1124 const UINT WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT = 0x00080000;
1125 const UINT WINED3DPRASTERCAPS_WFOG = 0x00100000;
1126 const UINT WINED3DPRASTERCAPS_ZFOG = 0x00200000;
1127 const UINT WINED3DPRASTERCAPS_COLORPERSPECTIVE = 0x00400000;
1128 const UINT WINED3DPRASTERCAPS_SCISSORTEST = 0x01000000;
1129 const UINT WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS = 0x02000000;
1130 const UINT WINED3DPRASTERCAPS_DEPTHBIAS = 0x04000000;
1131 const UINT WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE = 0x08000000;
1133 const UINT WINED3DPSHADECAPS_COLORFLATMONO = 0x00000001;
1134 const UINT WINED3DPSHADECAPS_COLORFLATRGB = 0x00000002;
1135 const UINT WINED3DPSHADECAPS_COLORGOURAUDMONO = 0x00000004;
1136 const UINT WINED3DPSHADECAPS_COLORGOURAUDRGB = 0x00000008;
1137 const UINT WINED3DPSHADECAPS_COLORPHONGMONO = 0x00000010;
1138 const UINT WINED3DPSHADECAPS_COLORPHONGRGB = 0x00000020;
1139 const UINT WINED3DPSHADECAPS_SPECULARFLATMONO = 0x00000040;
1140 const UINT WINED3DPSHADECAPS_SPECULARFLATRGB = 0x00000080;
1141 const UINT WINED3DPSHADECAPS_SPECULARGOURAUDMONO = 0x00000100;
1142 const UINT WINED3DPSHADECAPS_SPECULARGOURAUDRGB = 0x00000200;
1143 const UINT WINED3DPSHADECAPS_SPECULARPHONGMONO = 0x00000400;
1144 const UINT WINED3DPSHADECAPS_SPECULARPHONGRGB = 0x00000800;
1145 const UINT WINED3DPSHADECAPS_ALPHAFLATBLEND = 0x00001000;
1146 const UINT WINED3DPSHADECAPS_ALPHAFLATSTIPPLED = 0x00002000;
1147 const UINT WINED3DPSHADECAPS_ALPHAGOURAUDBLEND = 0x00004000;
1148 const UINT WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED = 0x00008000;
1149 const UINT WINED3DPSHADECAPS_ALPHAPHONGBLEND = 0x00010000;
1150 const UINT WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED = 0x00020000;
1151 const UINT WINED3DPSHADECAPS_FOGFLAT = 0x00040000;
1152 const UINT WINED3DPSHADECAPS_FOGGOURAUD = 0x00080000;
1153 const UINT WINED3DPSHADECAPS_FOGPHONG = 0x00100000;
1155 const UINT WINED3DPTEXTURECAPS_PERSPECTIVE = 0x00000001;
1156 const UINT WINED3DPTEXTURECAPS_POW2 = 0x00000002;
1157 const UINT WINED3DPTEXTURECAPS_ALPHA = 0x00000004;
1158 const UINT WINED3DPTEXTURECAPS_TRANSPARENCY = 0x00000008;
1159 const UINT WINED3DPTEXTURECAPS_BORDER = 0x00000010;
1160 const UINT WINED3DPTEXTURECAPS_SQUAREONLY = 0x00000020;
1161 const UINT WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE = 0x00000040;
1162 const UINT WINED3DPTEXTURECAPS_ALPHAPALETTE = 0x00000080;
1163 const UINT WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL = 0x00000100;
1164 const UINT WINED3DPTEXTURECAPS_PROJECTED = 0x00000400;
1165 const UINT WINED3DPTEXTURECAPS_CUBEMAP = 0x00000800;
1166 const UINT WINED3DPTEXTURECAPS_COLORKEYBLEND = 0x00001000;
1167 const UINT WINED3DPTEXTURECAPS_VOLUMEMAP = 0x00002000;
1168 const UINT WINED3DPTEXTURECAPS_MIPMAP = 0x00004000;
1169 const UINT WINED3DPTEXTURECAPS_MIPVOLUMEMAP = 0x00008000;
1170 const UINT WINED3DPTEXTURECAPS_MIPCUBEMAP = 0x00010000;
1171 const UINT WINED3DPTEXTURECAPS_CUBEMAP_POW2 = 0x00020000;
1172 const UINT WINED3DPTEXTURECAPS_VOLUMEMAP_POW2 = 0x00040000;
1173 const UINT WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV = 0x00200000;
1175 const UINT WINED3DPTFILTERCAPS_NEAREST = 0x00000001;
1176 const UINT WINED3DPTFILTERCAPS_LINEAR = 0x00000002;
1177 const UINT WINED3DPTFILTERCAPS_MIPNEAREST = 0x00000004;
1178 const UINT WINED3DPTFILTERCAPS_MIPLINEAR = 0x00000008;
1179 const UINT WINED3DPTFILTERCAPS_LINEARMIPNEAREST = 0x00000010;
1180 const UINT WINED3DPTFILTERCAPS_LINEARMIPLINEAR = 0x00000020;
1181 const UINT WINED3DPTFILTERCAPS_MINFPOINT = 0x00000100;
1182 const UINT WINED3DPTFILTERCAPS_MINFLINEAR = 0x00000200;
1183 const UINT WINED3DPTFILTERCAPS_MINFANISOTROPIC = 0x00000400;
1184 const UINT WINED3DPTFILTERCAPS_MIPFPOINT = 0x00010000;
1185 const UINT WINED3DPTFILTERCAPS_MIPFLINEAR = 0x00020000;
1186 const UINT WINED3DPTFILTERCAPS_MAGFPOINT = 0x01000000;
1187 const UINT WINED3DPTFILTERCAPS_MAGFLINEAR = 0x02000000;
1188 const UINT WINED3DPTFILTERCAPS_MAGFANISOTROPIC = 0x04000000;
1189 const UINT WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD = 0x08000000;
1190 const UINT WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD = 0x10000000;
1192 const UINT WINED3DVTXPCAPS_TEXGEN = 0x00000001;
1193 const UINT WINED3DVTXPCAPS_MATERIALSOURCE7 = 0x00000002;
1194 const UINT WINED3DVTXPCAPS_VERTEXFOG = 0x00000004;
1195 const UINT WINED3DVTXPCAPS_DIRECTIONALLIGHTS = 0x00000008;
1196 const UINT WINED3DVTXPCAPS_POSITIONALLIGHTS = 0x00000010;
1197 const UINT WINED3DVTXPCAPS_LOCALVIEWER = 0x00000020;
1198 const UINT WINED3DVTXPCAPS_TWEENING = 0x00000040;
1199 const UINT WINED3DVTXPCAPS_TEXGEN_SPHEREMAP = 0x00000100;
1200 const UINT WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER = 0x00000200;
1202 const UINT WINED3DCURSORCAPS_COLOR = 0x00000001;
1203 const UINT WINED3DCURSORCAPS_LOWRES = 0x00000002;
1205 const UINT WINED3DDEVCAPS_FLOATTLVERTEX = 0x00000001;
1206 const UINT WINED3DDEVCAPS_SORTINCREASINGZ = 0x00000002;
1207 const UINT WINED3DDEVCAPS_SORTDECREASINGZ = 0X00000004;
1208 const UINT WINED3DDEVCAPS_SORTEXACT = 0x00000008;
1209 const UINT WINED3DDEVCAPS_EXECUTESYSTEMMEMORY = 0x00000010;
1210 const UINT WINED3DDEVCAPS_EXECUTEVIDEOMEMORY = 0x00000020;
1211 const UINT WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY = 0x00000040;
1212 const UINT WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY = 0x00000080;
1213 const UINT WINED3DDEVCAPS_TEXTURESYSTEMMEMORY = 0x00000100;
1214 const UINT WINED3DDEVCAPS_TEXTUREVIDEOMEMORY = 0x00000200;
1215 const UINT WINED3DDEVCAPS_DRAWPRIMTLVERTEX = 0x00000400;
1216 const UINT WINED3DDEVCAPS_CANRENDERAFTERFLIP = 0x00000800;
1217 const UINT WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM = 0x00001000;
1218 const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2 = 0x00002000;
1219 const UINT WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES = 0x00004000;
1220 const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2EX = 0x00008000;
1221 const UINT WINED3DDEVCAPS_HWTRANSFORMANDLIGHT = 0x00010000;
1222 const UINT WINED3DDEVCAPS_CANBLTSYSTONONLOCAL = 0x00020000;
1223 const UINT WINED3DDEVCAPS_HWRASTERIZATION = 0x00080000;
1224 const UINT WINED3DDEVCAPS_PUREDEVICE = 0x00100000;
1225 const UINT WINED3DDEVCAPS_QUINTICRTPATCHES = 0x00200000;
1226 const UINT WINED3DDEVCAPS_RTPATCHES = 0x00400000;
1227 const UINT WINED3DDEVCAPS_RTPATCHHANDLEZERO = 0x00800000;
1228 const UINT WINED3DDEVCAPS_NPATCHES = 0x01000000;
1230 /* dwDDFX */
1231 /* arithmetic stretching along y axis */
1232 const UINT WINEDDBLTFX_ARITHSTRETCHY = 0x00000001;
1233 /* mirror on y axis */
1234 const UINT WINEDDBLTFX_MIRRORLEFTRIGHT = 0x00000002;
1235 /* mirror on x axis */
1236 const UINT WINEDDBLTFX_MIRRORUPDOWN = 0x00000004;
1237 /* do not tear */
1238 const UINT WINEDDBLTFX_NOTEARING = 0x00000008;
1239 /* 180 degrees clockwise rotation */
1240 const UINT WINEDDBLTFX_ROTATE180 = 0x00000010;
1241 /* 270 degrees clockwise rotation */
1242 const UINT WINEDDBLTFX_ROTATE270 = 0x00000020;
1243 /* 90 degrees clockwise rotation */
1244 const UINT WINEDDBLTFX_ROTATE90 = 0x00000040;
1245 /* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
1246 const UINT WINEDDBLTFX_ZBUFFERRANGE = 0x00000080;
1247 /* add dwZBufferBaseDest to every source z value before compare */
1248 const UINT WINEDDBLTFX_ZBUFFERBASEDEST = 0x00000100;
1250 /* dwFlags for Blt* */
1251 const UINT WINEDDBLT_ALPHADEST = 0x00000001;
1252 const UINT WINEDDBLT_ALPHADESTCONSTOVERRIDE = 0x00000002;
1253 const UINT WINEDDBLT_ALPHADESTNEG = 0x00000004;
1254 const UINT WINEDDBLT_ALPHADESTSURFACEOVERRIDE = 0x00000008;
1255 const UINT WINEDDBLT_ALPHAEDGEBLEND = 0x00000010;
1256 const UINT WINEDDBLT_ALPHASRC = 0x00000020;
1257 const UINT WINEDDBLT_ALPHASRCCONSTOVERRIDE = 0x00000040;
1258 const UINT WINEDDBLT_ALPHASRCNEG = 0x00000080;
1259 const UINT WINEDDBLT_ALPHASRCSURFACEOVERRIDE = 0x00000100;
1260 const UINT WINEDDBLT_ASYNC = 0x00000200;
1261 const UINT WINEDDBLT_COLORFILL = 0x00000400;
1262 const UINT WINEDDBLT_DDFX = 0x00000800;
1263 const UINT WINEDDBLT_DDROPS = 0x00001000;
1264 const UINT WINEDDBLT_KEYDEST = 0x00002000;
1265 const UINT WINEDDBLT_KEYDESTOVERRIDE = 0x00004000;
1266 const UINT WINEDDBLT_KEYSRC = 0x00008000;
1267 const UINT WINEDDBLT_KEYSRCOVERRIDE = 0x00010000;
1268 const UINT WINEDDBLT_ROP = 0x00020000;
1269 const UINT WINEDDBLT_ROTATIONANGLE = 0x00040000;
1270 const UINT WINEDDBLT_ZBUFFER = 0x00080000;
1271 const UINT WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE = 0x00100000;
1272 const UINT WINEDDBLT_ZBUFFERDESTOVERRIDE = 0x00200000;
1273 const UINT WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE = 0x00400000;
1274 const UINT WINEDDBLT_ZBUFFERSRCOVERRIDE = 0x00800000;
1275 const UINT WINEDDBLT_WAIT = 0x01000000;
1276 const UINT WINEDDBLT_DEPTHFILL = 0x02000000;
1277 const UINT WINEDDBLT_DONOTWAIT = 0x08000000;
1279 /* dwTrans for BltFast */
1280 const UINT WINEDDBLTFAST_NOCOLORKEY = 0x00000000;
1281 const UINT WINEDDBLTFAST_SRCCOLORKEY = 0x00000001;
1282 const UINT WINEDDBLTFAST_DESTCOLORKEY = 0x00000002;
1283 const UINT WINEDDBLTFAST_WAIT = 0x00000010;
1284 const UINT WINEDDBLTFAST_DONOTWAIT = 0x00000020;
1286 /* DDSURFACEDESC.dwFlags */
1287 const UINT WINEDDSD_CAPS = 0x00000001;
1288 const UINT WINEDDSD_HEIGHT = 0x00000002;
1289 const UINT WINEDDSD_WIDTH = 0x00000004;
1290 const UINT WINEDDSD_PITCH = 0x00000008;
1291 const UINT WINEDDSD_BACKBUFFERCOUNT = 0x00000020;
1292 const UINT WINEDDSD_ZBUFFERBITDEPTH = 0x00000040;
1293 const UINT WINEDDSD_ALPHABITDEPTH = 0x00000080;
1294 const UINT WINEDDSD_LPSURFACE = 0x00000800;
1295 const UINT WINEDDSD_PIXELFORMAT = 0x00001000;
1296 const UINT WINEDDSD_CKDESTOVERLAY = 0x00002000;
1297 const UINT WINEDDSD_CKDESTBLT = 0x00004000;
1298 const UINT WINEDDSD_CKSRCOVERLAY = 0x00008000;
1299 const UINT WINEDDSD_CKSRCBLT = 0x00010000;
1300 const UINT WINEDDSD_MIPMAPCOUNT = 0x00020000;
1301 const UINT WINEDDSD_REFRESHRATE = 0x00040000;
1302 const UINT WINEDDSD_LINEARSIZE = 0x00080000;
1303 const UINT WINEDDSD_TEXTURESTAGE = 0x00100000;
1304 const UINT WINEDDSD_FVF = 0x00200000;
1305 const UINT WINEDDSD_SRCVBHANDLE = 0x00400000;
1306 const UINT WINEDDSD_ALL = 0x007ff9ee;
1308 /* Set/Get Colour Key Flags */
1309 const UINT WINEDDCKEY_COLORSPACE = 0x00000001; /* Struct is single colour space */
1310 const UINT WINEDDCKEY_DESTBLT = 0x00000002; /* To be used as dest for blt */
1311 const UINT WINEDDCKEY_DESTOVERLAY = 0x00000004; /* To be used as dest for CK overlays */
1312 const UINT WINEDDCKEY_SRCBLT = 0x00000008; /* To be used as src for blt */
1313 const UINT WINEDDCKEY_SRCOVERLAY = 0x00000010; /* To be used as src for CK overlays */
1315 /* dwFlags for GetBltStatus */
1316 const UINT WINEDDGBS_CANBLT = 0x00000001;
1317 const UINT WINEDDGBS_ISBLTDONE = 0x00000002;
1319 /* dwFlags for GetFlipStatus */
1320 const UINT WINEDDGFS_CANFLIP = 0x00000001;
1321 const UINT WINEDDGFS_ISFLIPDONE = 0x00000002;
1323 /* dwFlags for Flip */
1324 const UINT WINEDDFLIP_WAIT = 0x00000001;
1325 const UINT WINEDDFLIP_EVEN = 0x00000002; /* only valid for overlay */
1326 const UINT WINEDDFLIP_ODD = 0x00000004; /* only valid for overlay */
1327 const UINT WINEDDFLIP_NOVSYNC = 0x00000008;
1328 const UINT WINEDDFLIP_STEREO = 0x00000010;
1329 const UINT WINEDDFLIP_DONOTWAIT = 0x00000020;
1330 const UINT WINEDDFLIP_INTERVAL2 = 0x02000000;
1331 const UINT WINEDDFLIP_INTERVAL3 = 0x03000000;
1332 const UINT WINEDDFLIP_INTERVAL4 = 0x04000000;
1334 const UINT WINEDDOVER_ALPHADEST = 0x00000001;
1335 const UINT WINEDDOVER_ALPHADESTCONSTOVERRIDE = 0x00000002;
1336 const UINT WINEDDOVER_ALPHADESTNEG = 0x00000004;
1337 const UINT WINEDDOVER_ALPHADESTSURFACEOVERRIDE = 0x00000008;
1338 const UINT WINEDDOVER_ALPHAEDGEBLEND = 0x00000010;
1339 const UINT WINEDDOVER_ALPHASRC = 0x00000020;
1340 const UINT WINEDDOVER_ALPHASRCCONSTOVERRIDE = 0x00000040;
1341 const UINT WINEDDOVER_ALPHASRCNEG = 0x00000080;
1342 const UINT WINEDDOVER_ALPHASRCSURFACEOVERRIDE = 0x00000100;
1343 const UINT WINEDDOVER_HIDE = 0x00000200;
1344 const UINT WINEDDOVER_KEYDEST = 0x00000400;
1345 const UINT WINEDDOVER_KEYDESTOVERRIDE = 0x00000800;
1346 const UINT WINEDDOVER_KEYSRC = 0x00001000;
1347 const UINT WINEDDOVER_KEYSRCOVERRIDE = 0x00002000;
1348 const UINT WINEDDOVER_SHOW = 0x00004000;
1349 const UINT WINEDDOVER_ADDDIRTYRECT = 0x00008000;
1350 const UINT WINEDDOVER_REFRESHDIRTYRECTS = 0x00010000;
1351 const UINT WINEDDOVER_REFRESHALL = 0x00020000;
1352 const UINT WINEDDOVER_DDFX = 0x00080000;
1353 const UINT WINEDDOVER_AUTOFLIP = 0x00100000;
1354 const UINT WINEDDOVER_BOB = 0x00200000;
1355 const UINT WINEDDOVER_OVERRIDEBOBWEAVE = 0x00400000;
1356 const UINT WINEDDOVER_INTERLEAVED = 0x00800000;
1358 /* DirectDraw Caps */
1359 const UINT WINEDDSCAPS_RESERVED1 = 0x00000001;
1360 const UINT WINEDDSCAPS_ALPHA = 0x00000002;
1361 const UINT WINEDDSCAPS_BACKBUFFER = 0x00000004;
1362 const UINT WINEDDSCAPS_COMPLEX = 0x00000008;
1363 const UINT WINEDDSCAPS_FLIP = 0x00000010;
1364 const UINT WINEDDSCAPS_FRONTBUFFER = 0x00000020;
1365 const UINT WINEDDSCAPS_OFFSCREENPLAIN = 0x00000040;
1366 const UINT WINEDDSCAPS_OVERLAY = 0x00000080;
1367 const UINT WINEDDSCAPS_PALETTE = 0x00000100;
1368 const UINT WINEDDSCAPS_PRIMARYSURFACE = 0x00000200;
1369 const UINT WINEDDSCAPS_PRIMARYSURFACELEFT = 0x00000400;
1370 const UINT WINEDDSCAPS_SYSTEMMEMORY = 0x00000800;
1371 const UINT WINEDDSCAPS_TEXTURE = 0x00001000;
1372 const UINT WINEDDSCAPS_3DDEVICE = 0x00002000;
1373 const UINT WINEDDSCAPS_VIDEOMEMORY = 0x00004000;
1374 const UINT WINEDDSCAPS_VISIBLE = 0x00008000;
1375 const UINT WINEDDSCAPS_WRITEONLY = 0x00010000;
1376 const UINT WINEDDSCAPS_ZBUFFER = 0x00020000;
1377 const UINT WINEDDSCAPS_OWNDC = 0x00040000;
1378 const UINT WINEDDSCAPS_LIVEVIDEO = 0x00080000;
1379 const UINT WINEDDSCAPS_HWCODEC = 0x00100000;
1380 const UINT WINEDDSCAPS_MODEX = 0x00200000;
1381 const UINT WINEDDSCAPS_MIPMAP = 0x00400000;
1382 const UINT WINEDDSCAPS_RESERVED2 = 0x00800000;
1383 const UINT WINEDDSCAPS_ALLOCONLOAD = 0x04000000;
1384 const UINT WINEDDSCAPS_VIDEOPORT = 0x08000000;
1385 const UINT WINEDDSCAPS_LOCALVIDMEM = 0x10000000;
1386 const UINT WINEDDSCAPS_NONLOCALVIDMEM = 0x20000000;
1387 const UINT WINEDDSCAPS_STANDARDVGAMODE = 0x40000000;
1388 const UINT WINEDDSCAPS_OPTIMIZED = 0x80000000;
1390 const UINT WINEDDCKEYCAPS_DESTBLT = 0x00000001;
1391 const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACE = 0x00000002;
1392 const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV = 0x00000004;
1393 const UINT WINEDDCKEYCAPS_DESTBLTYUV = 0x00000008;
1394 const UINT WINEDDCKEYCAPS_DESTOVERLAY = 0x00000010;
1395 const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE = 0x00000020;
1396 const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV = 0x00000040;
1397 const UINT WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE = 0x00000080;
1398 const UINT WINEDDCKEYCAPS_DESTOVERLAYYUV = 0x00000100;
1399 const UINT WINEDDCKEYCAPS_SRCBLT = 0x00000200;
1400 const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACE = 0x00000400;
1401 const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV = 0x00000800;
1402 const UINT WINEDDCKEYCAPS_SRCBLTYUV = 0x00001000;
1403 const UINT WINEDDCKEYCAPS_SRCOVERLAY = 0x00002000;
1404 const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE = 0x00004000;
1405 const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV = 0x00008000;
1406 const UINT WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE = 0x00010000;
1407 const UINT WINEDDCKEYCAPS_SRCOVERLAYYUV = 0x00020000;
1408 const UINT WINEDDCKEYCAPS_NOCOSTOVERLAY = 0x00040000;
1410 const UINT WINEDDFXCAPS_BLTALPHA = 0x00000001;
1411 const UINT WINEDDFXCAPS_OVERLAYALPHA = 0x00000004;
1412 const UINT WINEDDFXCAPS_BLTARITHSTRETCHYN = 0x00000010;
1413 const UINT WINEDDFXCAPS_BLTARITHSTRETCHY = 0x00000020;
1414 const UINT WINEDDFXCAPS_BLTMIRRORLEFTRIGHT = 0x00000040;
1415 const UINT WINEDDFXCAPS_BLTMIRRORUPDOWN = 0x00000080;
1416 const UINT WINEDDFXCAPS_BLTROTATION = 0x00000100;
1417 const UINT WINEDDFXCAPS_BLTROTATION90 = 0x00000200;
1418 const UINT WINEDDFXCAPS_BLTSHRINKX = 0x00000400;
1419 const UINT WINEDDFXCAPS_BLTSHRINKXN = 0x00000800;
1420 const UINT WINEDDFXCAPS_BLTSHRINKY = 0x00001000;
1421 const UINT WINEDDFXCAPS_BLTSHRINKYN = 0x00002000;
1422 const UINT WINEDDFXCAPS_BLTSTRETCHX = 0x00004000;
1423 const UINT WINEDDFXCAPS_BLTSTRETCHXN = 0x00008000;
1424 const UINT WINEDDFXCAPS_BLTSTRETCHY = 0x00010000;
1425 const UINT WINEDDFXCAPS_BLTSTRETCHYN = 0x00020000;
1426 const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHY = 0x00040000;
1427 const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHYN = 0x00000008;
1428 const UINT WINEDDFXCAPS_OVERLAYSHRINKX = 0x00080000;
1429 const UINT WINEDDFXCAPS_OVERLAYSHRINKXN = 0x00100000;
1430 const UINT WINEDDFXCAPS_OVERLAYSHRINKY = 0x00200000;
1431 const UINT WINEDDFXCAPS_OVERLAYSHRINKYN = 0x00400000;
1432 const UINT WINEDDFXCAPS_OVERLAYSTRETCHX = 0x00800000;
1433 const UINT WINEDDFXCAPS_OVERLAYSTRETCHXN = 0x01000000;
1434 const UINT WINEDDFXCAPS_OVERLAYSTRETCHY = 0x02000000;
1435 const UINT WINEDDFXCAPS_OVERLAYSTRETCHYN = 0x04000000;
1436 const UINT WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT = 0x08000000;
1437 const UINT WINEDDFXCAPS_OVERLAYMIRRORUPDOWN = 0x10000000;
1439 const UINT WINEDDCAPS_3D = 0x00000001;
1440 const UINT WINEDDCAPS_ALIGNBOUNDARYDEST = 0x00000002;
1441 const UINT WINEDDCAPS_ALIGNSIZEDEST = 0x00000004;
1442 const UINT WINEDDCAPS_ALIGNBOUNDARYSRC = 0x00000008;
1443 const UINT WINEDDCAPS_ALIGNSIZESRC = 0x00000010;
1444 const UINT WINEDDCAPS_ALIGNSTRIDE = 0x00000020;
1445 const UINT WINEDDCAPS_BLT = 0x00000040;
1446 const UINT WINEDDCAPS_BLTQUEUE = 0x00000080;
1447 const UINT WINEDDCAPS_BLTFOURCC = 0x00000100;
1448 const UINT WINEDDCAPS_BLTSTRETCH = 0x00000200;
1449 const UINT WINEDDCAPS_GDI = 0x00000400;
1450 const UINT WINEDDCAPS_OVERLAY = 0x00000800;
1451 const UINT WINEDDCAPS_OVERLAYCANTCLIP = 0x00001000;
1452 const UINT WINEDDCAPS_OVERLAYFOURCC = 0x00002000;
1453 const UINT WINEDDCAPS_OVERLAYSTRETCH = 0x00004000;
1454 const UINT WINEDDCAPS_PALETTE = 0x00008000;
1455 const UINT WINEDDCAPS_PALETTEVSYNC = 0x00010000;
1456 const UINT WINEDDCAPS_READSCANLINE = 0x00020000;
1457 const UINT WINEDDCAPS_STEREOVIEW = 0x00040000;
1458 const UINT WINEDDCAPS_VBI = 0x00080000;
1459 const UINT WINEDDCAPS_ZBLTS = 0x00100000;
1460 const UINT WINEDDCAPS_ZOVERLAYS = 0x00200000;
1461 const UINT WINEDDCAPS_COLORKEY = 0x00400000;
1462 const UINT WINEDDCAPS_ALPHA = 0x00800000;
1463 const UINT WINEDDCAPS_COLORKEYHWASSIST = 0x01000000;
1464 const UINT WINEDDCAPS_NOHARDWARE = 0x02000000;
1465 const UINT WINEDDCAPS_BLTCOLORFILL = 0x04000000;
1466 const UINT WINEDDCAPS_BANKSWITCHED = 0x08000000;
1467 const UINT WINEDDCAPS_BLTDEPTHFILL = 0x10000000;
1468 const UINT WINEDDCAPS_CANCLIP = 0x20000000;
1469 const UINT WINEDDCAPS_CANCLIPSTRETCHED = 0x40000000;
1470 const UINT WINEDDCAPS_CANBLTSYSMEM = 0x80000000;
1472 const UINT WINEDDCAPS2_CERTIFIED = 0x00000001;
1473 const UINT WINEDDCAPS2_NO2DDURING3DSCENE = 0x00000002;
1474 const UINT WINEDDCAPS2_VIDEOPORT = 0x00000004;
1475 const UINT WINEDDCAPS2_AUTOFLIPOVERLAY = 0x00000008;
1476 const UINT WINEDDCAPS2_CANBOBINTERLEAVED = 0x00000010;
1477 const UINT WINEDDCAPS2_CANBOBNONINTERLEAVED = 0x00000020;
1478 const UINT WINEDDCAPS2_COLORCONTROLOVERLAY = 0x00000040;
1479 const UINT WINEDDCAPS2_COLORCONTROLPRIMARY = 0x00000080;
1480 const UINT WINEDDCAPS2_CANDROPZ16BIT = 0x00000100;
1481 const UINT WINEDDCAPS2_NONLOCALVIDMEM = 0x00000200;
1482 const UINT WINEDDCAPS2_NONLOCALVIDMEMCAPS = 0x00000400;
1483 const UINT WINEDDCAPS2_NOPAGELOCKREQUIRED = 0x00000800;
1484 const UINT WINEDDCAPS2_WIDESURFACES = 0x00001000;
1485 const UINT WINEDDCAPS2_CANFLIPODDEVEN = 0x00002000;
1486 const UINT WINEDDCAPS2_CANBOBHARDWARE = 0x00004000;
1487 const UINT WINEDDCAPS2_COPYFOURCC = 0x00008000;
1488 const UINT WINEDDCAPS2_PRIMARYGAMMA = 0x00020000;
1489 const UINT WINEDDCAPS2_CANRENDERWINDOWED = 0x00080000;
1490 const UINT WINEDDCAPS2_CANCALIBRATEGAMMA = 0x00100000;
1491 const UINT WINEDDCAPS2_FLIPINTERVAL = 0x00200000;
1492 const UINT WINEDDCAPS2_FLIPNOVSYNC = 0x00400000;
1493 const UINT WINEDDCAPS2_CANMANAGETEXTURE = 0x00800000;
1494 const UINT WINEDDCAPS2_TEXMANINNONLOCALVIDMEM = 0x01000000;
1495 const UINT WINEDDCAPS2_STEREO = 0x02000000;
1496 const UINT WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL = 0x04000000;
1498 /* DDCAPS.d */
1499 const UINT WINEDDPCAPS_4BIT = 0x00000001;
1500 const UINT WINEDDPCAPS_8BITENTRIES = 0x00000002;
1501 const UINT WINEDDPCAPS_8BIT = 0x00000004;
1502 const UINT WINEDDPCAPS_INITIALIZE = 0x00000008;
1503 const UINT WINEDDPCAPS_PRIMARYSURFACE = 0x00000010;
1504 const UINT WINEDDPCAPS_PRIMARYSURFACELEFT = 0x00000020;
1505 const UINT WINEDDPCAPS_ALLOW256 = 0x00000040;
1506 const UINT WINEDDPCAPS_VSYNC = 0x00000080;
1507 const UINT WINEDDPCAPS_1BIT = 0x00000100;
1508 const UINT WINEDDPCAPS_2BIT = 0x00000200;
1509 const UINT WINEDDPCAPS_ALPHA = 0x00000400;
1511 typedef struct _WINED3DDISPLAYMODE
1513 UINT Width;
1514 UINT Height;
1515 UINT RefreshRate;
1516 WINED3DFORMAT Format;
1517 } WINED3DDISPLAYMODE;
1519 typedef struct _WINED3DCOLORVALUE
1521 float r;
1522 float g;
1523 float b;
1524 float a;
1525 } WINED3DCOLORVALUE;
1527 typedef struct _WINED3DVECTOR
1529 float x;
1530 float y;
1531 float z;
1532 } WINED3DVECTOR;
1534 typedef struct _WINED3DMATRIX
1536 union
1538 struct
1540 float _11, _12, _13, _14;
1541 float _21, _22, _23, _24;
1542 float _31, _32, _33, _34;
1543 float _41, _42, _43, _44;
1544 } DUMMYSTRUCTNAME;
1545 float m[4][4];
1546 } DUMMYUNIONNAME;
1547 } WINED3DMATRIX;
1549 typedef struct _WINED3DRECT
1551 LONG x1;
1552 LONG y1;
1553 LONG x2;
1554 LONG y2;
1555 } WINED3DRECT;
1557 typedef struct _WINED3DLIGHT
1559 WINED3DLIGHTTYPE Type;
1560 WINED3DCOLORVALUE Diffuse;
1561 WINED3DCOLORVALUE Specular;
1562 WINED3DCOLORVALUE Ambient;
1563 WINED3DVECTOR Position;
1564 WINED3DVECTOR Direction;
1565 float Range;
1566 float Falloff;
1567 float Attenuation0;
1568 float Attenuation1;
1569 float Attenuation2;
1570 float Theta;
1571 float Phi;
1572 } WINED3DLIGHT;
1574 typedef struct _WINED3DMATERIAL
1576 WINED3DCOLORVALUE Diffuse;
1577 WINED3DCOLORVALUE Ambient;
1578 WINED3DCOLORVALUE Specular;
1579 WINED3DCOLORVALUE Emissive;
1580 float Power;
1581 } WINED3DMATERIAL;
1583 typedef struct _WINED3DVIEWPORT
1585 DWORD X;
1586 DWORD Y;
1587 DWORD Width;
1588 DWORD Height;
1589 float MinZ;
1590 float MaxZ;
1591 } WINED3DVIEWPORT;
1593 typedef struct _WINED3DGAMMARAMP
1595 WORD red[256];
1596 WORD green[256];
1597 WORD blue[256];
1598 } WINED3DGAMMARAMP;
1600 typedef struct _WINED3DLINEPATTERN
1602 WORD wRepeatFactor;
1603 WORD wLinePattern;
1604 } WINED3DLINEPATTERN;
1606 typedef struct _WINEDD3DRECTPATCH_INFO
1608 UINT StartVertexOffsetWidth;
1609 UINT StartVertexOffsetHeight;
1610 UINT Width;
1611 UINT Height;
1612 UINT Stride;
1613 WINED3DBASISTYPE Basis;
1614 WINED3DDEGREETYPE Degree;
1615 } WINED3DRECTPATCH_INFO;
1617 typedef struct _WINED3DTRIPATCH_INFO
1619 UINT StartVertexOffset;
1620 UINT NumVertices;
1621 WINED3DBASISTYPE Basis;
1622 WINED3DDEGREETYPE Degree;
1623 } WINED3DTRIPATCH_INFO;
1625 typedef struct _WINED3DADAPTER_IDENTIFIER
1627 char *Driver;
1628 char *Description;
1629 char *DeviceName;
1630 LARGE_INTEGER *DriverVersion;
1631 DWORD *VendorId;
1632 DWORD *DeviceId;
1633 DWORD *SubSysId;
1634 DWORD *Revision;
1635 GUID *DeviceIdentifier;
1636 DWORD *WHQLLevel;
1637 } WINED3DADAPTER_IDENTIFIER;
1639 typedef struct _WINED3DPRESENT_PARAMETERS
1641 UINT BackBufferWidth;
1642 UINT BackBufferHeight;
1643 WINED3DFORMAT BackBufferFormat;
1644 UINT BackBufferCount;
1645 WINED3DMULTISAMPLE_TYPE MultiSampleType;
1646 DWORD MultiSampleQuality;
1647 WINED3DSWAPEFFECT SwapEffect;
1648 HWND hDeviceWindow;
1649 BOOL Windowed;
1650 BOOL EnableAutoDepthStencil;
1651 WINED3DFORMAT AutoDepthStencilFormat;
1652 DWORD Flags;
1653 UINT FullScreen_RefreshRateInHz;
1654 UINT PresentationInterval;
1655 BOOL AutoRestoreDisplayMode;
1656 } WINED3DPRESENT_PARAMETERS;
1658 typedef struct _WINED3DSURFACE_DESC
1660 WINED3DFORMAT *Format;
1661 WINED3DRESOURCETYPE *Type;
1662 DWORD *Usage;
1663 WINED3DPOOL *Pool;
1664 UINT *Size;
1665 WINED3DMULTISAMPLE_TYPE *MultiSampleType;
1666 DWORD *MultiSampleQuality;
1667 UINT *Width;
1668 UINT *Height;
1669 } WINED3DSURFACE_DESC;
1671 typedef struct _WINED3DVOLUME_DESC
1673 WINED3DFORMAT *Format;
1674 WINED3DRESOURCETYPE *Type;
1675 DWORD *Usage;
1676 WINED3DPOOL *Pool;
1677 UINT *Size;
1678 UINT *Width;
1679 UINT *Height;
1680 UINT *Depth;
1681 } WINED3DVOLUME_DESC;
1683 typedef struct _WINED3DCLIPSTATUS
1685 DWORD ClipUnion;
1686 DWORD ClipIntersection;
1687 } WINED3DCLIPSTATUS;
1689 typedef struct _WINED3DVERTEXELEMENT
1691 WORD Stream;
1692 WORD Offset;
1693 BYTE Type;
1694 BYTE Method;
1695 BYTE Usage;
1696 BYTE UsageIndex;
1697 int Reg; /* DirectX 8 */
1698 } WINED3DVERTEXELEMENT, *LPWINED3DVERTEXELEMENT;
1700 typedef struct _WINED3DDEVICE_CREATION_PARAMETERS
1702 UINT AdapterOrdinal;
1703 WINED3DDEVTYPE DeviceType;
1704 HWND hFocusWindow;
1705 DWORD BehaviorFlags;
1706 } WINED3DDEVICE_CREATION_PARAMETERS;
1708 typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS
1710 float MaxBandwidthUtilized;
1711 float FrontEndUploadMemoryUtilizedPercent;
1712 float VertexRateUtilizedPercent;
1713 float TriangleSetupRateUtilizedPercent;
1714 float FillRateUtilizedPercent;
1715 } WINED3DDEVINFO_BANDWIDTHTIMINGS;
1717 typedef struct _WINED3DDEVINFO_CACHEUTILIZATION
1719 float TextureCacheHitRate;
1720 float PostTransformVertexCacheHitRate;
1721 } WINED3DDEVINFO_CACHEUTILIZATION;
1723 typedef struct _WINED3DDEVINFO_INTERFACETIMINGS
1725 float WaitingForGPUToUseApplicationResourceTimePercent;
1726 float WaitingForGPUToAcceptMoreCommandsTimePercent;
1727 float WaitingForGPUToStayWithinLatencyTimePercent;
1728 float WaitingForGPUExclusiveResourceTimePercent;
1729 float WaitingForGPUOtherTimePercent;
1730 } WINED3DDEVINFO_INTERFACETIMINGS;
1732 typedef struct _WINED3DDEVINFO_PIPELINETIMINGS
1734 float VertexProcessingTimePercent;
1735 float PixelProcessingTimePercent;
1736 float OtherGPUProcessingTimePercent;
1737 float GPUIdleTimePercent;
1738 } WINED3DDEVINFO_PIPELINETIMINGS;
1740 typedef struct _WINED3DDEVINFO_STAGETIMINGS
1742 float MemoryProcessingPercent;
1743 float ComputationProcessingPercent;
1744 } WINED3DDEVINFO_STAGETIMINGS;
1746 typedef struct _WINED3DRASTER_STATUS
1748 BOOL InVBlank;
1749 UINT ScanLine;
1750 } WINED3DRASTER_STATUS;
1752 typedef struct WINED3DRESOURCESTATS
1754 BOOL bThrashing;
1755 DWORD ApproxBytesDownloaded;
1756 DWORD NumEvicts;
1757 DWORD NumVidCreates;
1758 DWORD LastPri;
1759 DWORD NumUsed;
1760 DWORD NumUsedInVidMem;
1761 DWORD WorkingSet;
1762 DWORD WorkingSetBytes;
1763 DWORD TotalManaged;
1764 DWORD TotalBytes;
1765 } WINED3DRESOURCESTATS;
1767 typedef struct _WINED3DDEVINFO_RESOURCEMANAGER
1769 WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
1770 } WINED3DDEVINFO_RESOURCEMANAGER;
1772 typedef struct _WINED3DDEVINFO_VERTEXSTATS
1774 DWORD NumRenderedTriangles;
1775 DWORD NumExtraClippingTriangles;
1776 } WINED3DDEVINFO_VERTEXSTATS;
1778 typedef struct _WINED3DLOCKED_RECT
1780 INT Pitch;
1781 void *pBits;
1782 } WINED3DLOCKED_RECT;
1784 typedef struct _WINED3DLOCKED_BOX
1786 INT RowPitch;
1787 INT SlicePitch;
1788 void *pBits;
1789 } WINED3DLOCKED_BOX;
1791 typedef struct _WINED3DBOX
1793 UINT Left;
1794 UINT Top;
1795 UINT Right;
1796 UINT Bottom;
1797 UINT Front;
1798 UINT Back;
1799 } WINED3DBOX;
1801 /*Vertex cache optimization hints.*/
1802 typedef struct WINED3DDEVINFO_VCACHE
1804 DWORD Pattern; /* Must be a 4 char code FOURCC (e.g. CACH) */
1805 DWORD OptMethod; /* 0 to get the longest strips, 1 vertex cache */
1806 DWORD CacheSize; /* Cache size to use (only valid if OptMethod==1) */
1807 DWORD MagicNumber; /* Internal for deciding when to restart strips,
1808 non user modifiable (only valid if OptMethod==1) */
1809 } WINED3DDEVINFO_VCACHE;
1811 typedef struct _WINED3DVERTEXBUFFER_DESC
1813 WINED3DFORMAT Format;
1814 WINED3DRESOURCETYPE Type;
1815 DWORD Usage;
1816 WINED3DPOOL Pool;
1817 UINT Size;
1818 DWORD FVF;
1819 } WINED3DVERTEXBUFFER_DESC;
1821 typedef struct _WINED3DINDEXBUFFER_DESC
1823 WINED3DFORMAT Format;
1824 WINED3DRESOURCETYPE Type;
1825 DWORD Usage;
1826 WINED3DPOOL Pool;
1827 UINT Size;
1828 } WINED3DINDEXBUFFER_DESC;
1830 typedef struct glDescriptor
1832 UINT textureName;
1833 int level;
1834 int /*GLenum*/ target;
1835 int /*GLenum*/ glFormat;
1836 int /*GLenum*/ glFormatInternal;
1837 int /*GLenum*/ glType;
1838 } glDescriptor;
1840 typedef struct WineDirect3DStridedData
1842 const BYTE *lpData; /* Pointer to start of data */
1843 DWORD dwStride; /* Stride between occurrences of this data */
1844 DWORD dwType; /* Type (as in D3DVSDT_TYPE) */
1845 int VBO; /* Vertex buffer object this data is in */
1846 UINT streamNo; /* D3D stream number */
1847 } WineDirect3DStridedData;
1849 typedef struct WineDirect3DVertexStridedData
1852 * IMPORTANT:
1853 * This structure can be accessed in two ways: Named access, and array
1854 * access. Please note that named access is only valid with the fixed
1855 * function vertex pipeline, and the arrays are only valid with the
1856 * programmable vertex pipeline(vertex shaders).
1858 union
1860 struct
1862 /* Do not add or reorder fields here,
1863 * so this can be indexed as an array */
1864 WineDirect3DStridedData position;
1865 WineDirect3DStridedData blendWeights;
1866 WineDirect3DStridedData blendMatrixIndices;
1867 WineDirect3DStridedData normal;
1868 WineDirect3DStridedData pSize;
1869 WineDirect3DStridedData diffuse;
1870 WineDirect3DStridedData specular;
1871 WineDirect3DStridedData texCoords[WINED3DDP_MAXTEXCOORD];
1872 WineDirect3DStridedData position2; /* tween data */
1873 WineDirect3DStridedData normal2; /* tween data */
1874 WineDirect3DStridedData tangent;
1875 WineDirect3DStridedData binormal;
1876 WineDirect3DStridedData tessFactor;
1877 WineDirect3DStridedData fog;
1878 WineDirect3DStridedData depth;
1879 WineDirect3DStridedData sample;
1881 /* Add fields here */
1882 BOOL position_transformed;
1883 } s;
1884 WineDirect3DStridedData input[16]; /* Indexed by constants in D3DVSDE_REGISTER */
1885 } u;
1886 } WineDirect3DVertexStridedData;
1888 typedef struct _WINED3DVSHADERCAPS2_0
1890 DWORD Caps;
1891 INT DynamicFlowControlDepth;
1892 INT NumTemps;
1893 INT StaticFlowControlDepth;
1894 } WINED3DVSHADERCAPS2_0;
1896 typedef struct _WINED3DPSHADERCAPS2_0
1898 DWORD Caps;
1899 INT DynamicFlowControlDepth;
1900 INT NumTemps;
1901 INT StaticFlowControlDepth;
1902 INT NumInstructionSlots;
1903 } WINED3DPSHADERCAPS2_0;
1905 typedef struct _WINEDDCAPS
1907 DWORD Caps;
1908 DWORD Caps2;
1909 DWORD CKeyCaps;
1910 DWORD FXCaps;
1911 DWORD FXAlphaCaps;
1912 DWORD PalCaps;
1913 DWORD SVCaps;
1914 DWORD SVBCaps;
1915 DWORD SVBCKeyCaps;
1916 DWORD SVBFXCaps;
1917 DWORD VSBCaps;
1918 DWORD VSBCKeyCaps;
1919 DWORD VSBFXCaps;
1920 DWORD SSBCaps;
1921 DWORD SSBCKeyCaps;
1922 DWORD SSBFXCaps;
1923 DWORD ddsCaps;
1924 DWORD StrideAlign;
1925 } WINEDDCAPS;
1927 typedef struct _WINED3DCAPS
1929 WINED3DDEVTYPE DeviceType;
1930 UINT AdapterOrdinal;
1932 DWORD Caps;
1933 DWORD Caps2;
1934 DWORD Caps3;
1935 DWORD PresentationIntervals;
1937 DWORD CursorCaps;
1938 DWORD DevCaps;
1939 DWORD PrimitiveMiscCaps;
1940 DWORD RasterCaps;
1941 DWORD ZCmpCaps;
1942 DWORD SrcBlendCaps;
1943 DWORD DestBlendCaps;
1944 DWORD AlphaCmpCaps;
1945 DWORD ShadeCaps;
1946 DWORD TextureCaps;
1947 DWORD TextureFilterCaps;
1948 DWORD CubeTextureFilterCaps;
1949 DWORD VolumeTextureFilterCaps;
1950 DWORD TextureAddressCaps;
1951 DWORD VolumeTextureAddressCaps;
1952 DWORD LineCaps;
1954 DWORD MaxTextureWidth;
1955 DWORD MaxTextureHeight;
1956 DWORD MaxVolumeExtent;
1957 DWORD MaxTextureRepeat;
1958 DWORD MaxTextureAspectRatio;
1959 DWORD MaxAnisotropy;
1960 float MaxVertexW;
1962 float GuardBandLeft;
1963 float GuardBandTop;
1964 float GuardBandRight;
1965 float GuardBandBottom;
1967 float ExtentsAdjust;
1968 DWORD StencilCaps;
1970 DWORD FVFCaps;
1971 DWORD TextureOpCaps;
1972 DWORD MaxTextureBlendStages;
1973 DWORD MaxSimultaneousTextures;
1975 DWORD VertexProcessingCaps;
1976 DWORD MaxActiveLights;
1977 DWORD MaxUserClipPlanes;
1978 DWORD MaxVertexBlendMatrices;
1979 DWORD MaxVertexBlendMatrixIndex;
1981 float MaxPointSize;
1983 DWORD MaxPrimitiveCount;
1984 DWORD MaxVertexIndex;
1985 DWORD MaxStreams;
1986 DWORD MaxStreamStride;
1988 DWORD VertexShaderVersion;
1989 DWORD MaxVertexShaderConst;
1991 DWORD PixelShaderVersion;
1992 float PixelShader1xMaxValue;
1994 /* DX 9 */
1995 DWORD DevCaps2;
1997 float MaxNpatchTessellationLevel;
1998 DWORD Reserved5; /* undocumented */
2000 UINT MasterAdapterOrdinal;
2001 UINT AdapterOrdinalInGroup;
2002 UINT NumberOfAdaptersInGroup;
2003 DWORD DeclTypes;
2004 DWORD NumSimultaneousRTs;
2005 DWORD StretchRectFilterCaps;
2006 WINED3DVSHADERCAPS2_0 VS20Caps;
2007 WINED3DPSHADERCAPS2_0 PS20Caps;
2008 DWORD VertexTextureFilterCaps;
2009 DWORD MaxVShaderInstructionsExecuted;
2010 DWORD MaxPShaderInstructionsExecuted;
2011 DWORD MaxVertexShader30InstructionSlots;
2012 DWORD MaxPixelShader30InstructionSlots;
2013 DWORD Reserved2; /* Not in the microsoft headers but documented */
2014 DWORD Reserved3;
2016 WINEDDCAPS DirectDrawCaps;
2017 } WINED3DCAPS;
2019 /* DirectDraw types */
2021 typedef struct _WINEDDCOLORKEY
2023 DWORD dwColorSpaceLowValue; /* low boundary of color space that is to
2024 * be treated as Color Key, inclusive */
2025 DWORD dwColorSpaceHighValue; /* high boundary of color space that is
2026 * to be treated as Color Key, inclusive */
2027 } WINEDDCOLORKEY,*LPWINEDDCOLORKEY;
2029 typedef struct _WINEDDBLTFX
2031 DWORD dwSize; /* size of structure */
2032 DWORD dwDDFX; /* FX operations */
2033 DWORD dwROP; /* Win32 raster operations */
2034 DWORD dwDDROP; /* Raster operations new for DirectDraw */
2035 DWORD dwRotationAngle; /* Rotation angle for blt */
2036 DWORD dwZBufferOpCode; /* ZBuffer compares */
2037 DWORD dwZBufferLow; /* Low limit of Z buffer */
2038 DWORD dwZBufferHigh; /* High limit of Z buffer */
2039 DWORD dwZBufferBaseDest; /* Destination base value */
2040 DWORD dwZDestConstBitDepth; /* Bit depth used to specify Z constant for destination */
2041 union
2043 DWORD dwZDestConst; /* Constant to use as Z buffer for dest */
2044 struct IWineD3DSurface *lpDDSZBufferDest; /* Surface to use as Z buffer for dest */
2045 } DUMMYUNIONNAME1;
2046 DWORD dwZSrcConstBitDepth; /* Bit depth used to specify Z constant for source */
2047 union
2049 DWORD dwZSrcConst; /* Constant to use as Z buffer for src */
2050 struct IWineD3DSurface *lpDDSZBufferSrc; /* Surface to use as Z buffer for src */
2051 } DUMMYUNIONNAME2;
2052 DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
2053 DWORD dwAlphaEdgeBlend; /* Alpha for edge blending */
2054 DWORD dwReserved;
2055 DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
2056 union
2058 DWORD dwAlphaDestConst; /* Constant to use as Alpha Channel */
2059 struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as Alpha Channel */
2060 } DUMMYUNIONNAME3;
2061 DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
2062 union
2064 DWORD dwAlphaSrcConst; /* Constant to use as Alpha Channel */
2065 struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as Alpha Channel */
2066 } DUMMYUNIONNAME4;
2067 union
2069 DWORD dwFillColor; /* color in RGB or Palettized */
2070 DWORD dwFillDepth; /* depth value for z-buffer */
2071 DWORD dwFillPixel; /* pixel val for RGBA or RGBZ */
2072 struct IWineD3DSurface *lpDDSPattern; /* Surface to use as pattern */
2073 } DUMMYUNIONNAME5;
2074 WINEDDCOLORKEY ddckDestColorkey; /* DestColorkey override */
2075 WINEDDCOLORKEY ddckSrcColorkey; /* SrcColorkey override */
2076 } WINEDDBLTFX,*LPWINEDDBLTFX;
2078 typedef struct _WINEDDOVERLAYFX
2080 DWORD dwSize; /* size of structure */
2081 DWORD dwAlphaEdgeBlendBitDepth; /* Bit depth used to specify constant for alpha edge blend */
2082 DWORD dwAlphaEdgeBlend; /* Constant to use as alpha for edge blend */
2083 DWORD dwReserved;
2084 DWORD dwAlphaDestConstBitDepth; /* Bit depth used to specify alpha constant for destination */
2085 union
2087 DWORD dwAlphaDestConst; /* Constant to use as alpha channel for dest */
2088 struct IWineD3DSurface *lpDDSAlphaDest; /* Surface to use as alpha channel for dest */
2089 } DUMMYUNIONNAME1;
2090 DWORD dwAlphaSrcConstBitDepth; /* Bit depth used to specify alpha constant for source */
2091 union
2093 DWORD dwAlphaSrcConst; /* Constant to use as alpha channel for src */
2094 struct IWineD3DSurface *lpDDSAlphaSrc; /* Surface to use as alpha channel for src */
2095 } DUMMYUNIONNAME2;
2096 WINEDDCOLORKEY dckDestColorkey; /* DestColorkey override */
2097 WINEDDCOLORKEY dckSrcColorkey; /* SrcColorkey override */
2098 DWORD dwDDFX; /* Overlay FX */
2099 DWORD dwFlags; /* flags */
2100 } WINEDDOVERLAYFX;
2102 interface IWineD3DResource;
2103 interface IWineD3DSurface;
2104 interface IWineD3DVolume;
2105 interface IWineD3DSwapChain;
2106 interface IWineD3DDevice;
2108 typedef HRESULT (*D3DCB_CREATESURFACEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
2109 UINT Height, WINED3DFORMAT Format, DWORD Usage, WINED3DPOOL Pool, UINT Level, WINED3DCUBEMAP_FACES Face,
2110 IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
2111 typedef HRESULT (*D3DCB_CREATERENDERTARGETFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
2112 UINT Height, WINED3DFORMAT Format, WINED3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality,
2113 BOOL Lockable, IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
2114 typedef HRESULT (*D3DCB_CREATEDEPTHSTENCILSURFACEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
2115 UINT Height, WINED3DFORMAT Format, WINED3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality,
2116 BOOL Discard, IWineD3DSurface **ppSurface, HANDLE *pSharedHandle);
2117 typedef ULONG (*D3DCB_DESTROYSURFACEFN)(IWineD3DSurface *pSurface);
2118 typedef HRESULT (*D3DCB_CREATEVOLUMEFN)(IUnknown *pDevice, IUnknown *pSuperior, UINT Width,
2119 UINT Height, UINT Depth, WINED3DFORMAT Format, WINED3DPOOL Pool, DWORD Usage,
2120 IWineD3DVolume **ppVolume, HANDLE *pSharedHandle);
2121 typedef ULONG (*D3DCB_DESTROYVOLUMEFN)(IWineD3DVolume *pVolume);
2122 typedef HRESULT (*D3DCB_CREATESWAPCHAIN)(IUnknown *pDevice, WINED3DPRESENT_PARAMETERS *pPresentationParameters,
2123 IWineD3DSwapChain **pSwapChain);
2124 typedef ULONG (*D3DCB_DESTROYSWAPCHAINFN)(IWineD3DSwapChain *pSwapChain);
2125 typedef HRESULT (*D3DCB_ENUMRESOURCES)(IWineD3DResource *resource, void *pData);
2128 object,
2129 local,
2130 uuid(46799311-8e0e-40ce-b2ec-ddb99f18fcb4)
2132 interface IWineD3DBase : IUnknown
2134 HRESULT GetParent(
2135 [out] IUnknown **parent
2140 object,
2141 local,
2142 uuid(108f9c44-6f30-11d9-c687-00046142c14f)
2144 interface IWineD3D : IWineD3DBase
2146 UINT GetAdapterCount(
2148 HRESULT RegisterSoftwareDevice(
2149 [in] void *pInitializeFunction
2151 HMONITOR GetAdapterMonitor(
2152 [in] UINT adapter_idx
2154 UINT GetAdapterModeCount(
2155 [in] UINT adapter_idx,
2156 [in] WINED3DFORMAT format
2158 HRESULT EnumAdapterModes(
2159 [in] UINT adapter_idx,
2160 [in] UINT mode_idx,
2161 [in] WINED3DFORMAT format,
2162 [out] WINED3DDISPLAYMODE *mode
2164 HRESULT GetAdapterDisplayMode(
2165 [in] UINT adapter_idx,
2166 [out] WINED3DDISPLAYMODE *mode
2168 HRESULT GetAdapterIdentifier(
2169 [in] UINT adapter_idx,
2170 [in] DWORD flags,
2171 [out] WINED3DADAPTER_IDENTIFIER *identifier
2173 HRESULT CheckDeviceMultiSampleType(
2174 [in] UINT adapter_idx,
2175 [in] WINED3DDEVTYPE device_type,
2176 [in] WINED3DFORMAT surface_format,
2177 [in] BOOL windowed,
2178 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2179 [out] DWORD *quality_levels
2181 HRESULT CheckDepthStencilMatch(
2182 [in] UINT adapter_idx,
2183 [in] WINED3DDEVTYPE device_type,
2184 [in] WINED3DFORMAT adapter_format,
2185 [in] WINED3DFORMAT render_target_format,
2186 [in] WINED3DFORMAT depth_stencil_format
2188 HRESULT CheckDeviceType(
2189 [in] UINT adapter_idx,
2190 [in] WINED3DDEVTYPE device_type,
2191 [in] WINED3DFORMAT display_format,
2192 [in] WINED3DFORMAT backbuffer_format,
2193 [in] BOOL windowed
2195 HRESULT CheckDeviceFormat(
2196 [in] UINT adaper_idx,
2197 [in] WINED3DDEVTYPE device_type,
2198 [in] WINED3DFORMAT adapter_format,
2199 [in] DWORD usage,
2200 [in] WINED3DRESOURCETYPE resource_type,
2201 [in] WINED3DFORMAT check_format,
2202 [in] WINED3DSURFTYPE surface_type
2204 HRESULT CheckDeviceFormatConversion(
2205 [in] UINT adapter_idx,
2206 [in] WINED3DDEVTYPE device_type,
2207 [in] WINED3DFORMAT source_format,
2208 [in] WINED3DFORMAT target_format
2210 HRESULT GetDeviceCaps(
2211 [in] UINT adapter_idx,
2212 [in] WINED3DDEVTYPE device_type,
2213 [out] WINED3DCAPS *caps
2215 HRESULT CreateDevice(
2216 [in] UINT adapter_idx,
2217 [in] WINED3DDEVTYPE device_type,
2218 [in] HWND focus_window,
2219 [in] DWORD behaviour_flags,
2220 [out] IWineD3DDevice **device,
2221 [in] IUnknown *parent
2226 object,
2227 local,
2228 uuid(1f3bfb34-6f30-11d9-c687-00046142c14f)
2230 interface IWineD3DResource : IWineD3DBase
2232 HRESULT GetDevice(
2233 [out] IWineD3DDevice **device
2235 HRESULT SetPrivateData(
2236 [in] REFGUID guid,
2237 [in] const void *data,
2238 [in] DWORD data_size,
2239 [in] DWORD flags
2241 HRESULT GetPrivateData(
2242 [in] REFGUID guid,
2243 [out] void *data,
2244 [in, out] DWORD *data_size
2246 HRESULT FreePrivateData(
2247 [in] REFGUID guid
2249 DWORD SetPriority(
2250 [in] DWORD new_priority
2252 DWORD GetPriority(
2254 void PreLoad(
2256 void UnLoad(
2258 WINED3DRESOURCETYPE GetType(
2263 object,
2264 local,
2265 uuid(217f671e-6f30-11d9-c687-00046142c14f)
2267 interface IWineD3DVertexBuffer : IWineD3DResource
2269 HRESULT Lock(
2270 [in] UINT offset,
2271 [in] UINT size,
2272 [out] BYTE **data,
2273 [in] DWORD flags
2275 HRESULT Unlock(
2277 HRESULT GetDesc(
2278 [out] WINED3DVERTEXBUFFER_DESC *desc
2283 object,
2284 local,
2285 uuid(3a02a54e-6f30-11d9-c687-00046142c14f)
2287 interface IWineD3DIndexBuffer : IWineD3DResource
2289 HRESULT Lock(
2290 [in] UINT offset,
2291 [in] UINT size,
2292 [out] BYTE **data,
2293 [in] DWORD flags
2295 HRESULT Unlock(
2297 HRESULT GetDesc(
2298 [out] WINED3DINDEXBUFFER_DESC *desc
2303 object,
2304 local,
2305 uuid(f756720c-32b9-4439-b5a3-1d6c97037d9e)
2307 interface IWineD3DPalette : IWineD3DBase
2309 HRESULT GetEntries(
2310 [in] DWORD flags,
2311 [in] DWORD start,
2312 [in] DWORD count,
2313 [out] PALETTEENTRY *entries
2315 HRESULT GetCaps(
2316 [out] DWORD *caps
2318 HRESULT SetEntries(
2319 [in] DWORD flags,
2320 [in] DWORD start,
2321 [in] DWORD count,
2322 [in] const PALETTEENTRY *entries
2327 object,
2328 local,
2329 uuid(8f2bceb1-d338-488c-ab7f-0ec980bf5d2d)
2331 interface IWineD3DClipper : IWineD3DBase
2333 HRESULT GetClipList(
2334 [in] const RECT *rect,
2335 [out] RGNDATA *clip_list,
2336 [in, out] DWORD *clip_list_size
2338 HRESULT GetHWnd(
2339 [out] HWND *hwnd
2341 HRESULT IsClipListChanged(
2342 [out] BOOL *changed
2344 HRESULT SetClipList(
2345 [in] const RGNDATA *clip_list,
2346 [in] DWORD flags
2348 HRESULT SetHWnd(
2349 [in] DWORD flags,
2350 [in] HWND hwnd
2355 object,
2356 local,
2357 uuid(37cd5526-6f30-11d9-c687-00046142c14f)
2359 interface IWineD3DSurface : IWineD3DResource
2361 HRESULT GetContainer(
2362 [in] REFIID riid,
2363 [out] void **container
2365 HRESULT GetDesc(
2366 [out] WINED3DSURFACE_DESC *desc
2368 HRESULT LockRect(
2369 [out] WINED3DLOCKED_RECT *locked_rect,
2370 [in] const RECT *rect,
2371 [in] DWORD flags
2373 HRESULT UnlockRect(
2375 HRESULT GetDC(
2376 [out] HDC *dc
2378 HRESULT ReleaseDC(
2379 [in] HDC dc
2381 HRESULT Flip(
2382 [in] IWineD3DSurface *override,
2383 [in] DWORD flags
2385 HRESULT Blt(
2386 [in] const RECT *dst_rect,
2387 [in] IWineD3DSurface *src_surface,
2388 [in] const RECT *src_rect,
2389 [in] DWORD flags,
2390 [in] const WINEDDBLTFX *blt_fx,
2391 [in] WINED3DTEXTUREFILTERTYPE filter
2393 HRESULT GetBltStatus(
2394 [in] DWORD flags
2396 HRESULT GetFlipStatus(
2397 [in] DWORD flags
2399 HRESULT IsLost(
2401 HRESULT Restore(
2403 HRESULT BltFast(
2404 [in] DWORD dst_x,
2405 [in] DWORD dst_y,
2406 [in] IWineD3DSurface *src_surface,
2407 [in] const RECT *src_rect,
2408 [in] DWORD trans
2410 HRESULT GetPalette(
2411 [out] IWineD3DPalette **palette
2413 HRESULT SetPalette(
2414 [in] IWineD3DPalette *palette
2416 HRESULT RealizePalette(
2418 HRESULT SetColorKey(
2419 [in] DWORD flags,
2420 [in] const WINEDDCOLORKEY *color_key
2422 DWORD GetPitch(
2424 HRESULT SetMem(
2425 [in] void *mem
2427 HRESULT SetOverlayPosition(
2428 [in] LONG x,
2429 [in] LONG y
2431 HRESULT GetOverlayPosition(
2432 [out] LONG *x,
2433 [out] LONG *y
2435 HRESULT UpdateOverlayZOrder(
2436 [in] DWORD flags,
2437 [in] IWineD3DSurface *ref
2439 HRESULT UpdateOverlay(
2440 [in] const RECT *src_rect,
2441 [in] IWineD3DSurface *dst_surface,
2442 [in] const RECT *dst_rect,
2443 [in] DWORD flags,
2444 [in] const WINEDDOVERLAYFX *fx
2446 HRESULT SetClipper(
2447 [in] IWineD3DClipper *clipper
2449 HRESULT GetClipper(
2450 [out] IWineD3DClipper **clipper
2452 HRESULT AddDirtyRect(
2453 [in] const RECT *dirty_rect
2455 HRESULT LoadTexture(
2456 [in] BOOL srgb_mode
2458 void BindTexture(
2460 HRESULT SaveSnapshot(
2461 [in] const char *filename
2463 HRESULT SetContainer(
2464 [in] IWineD3DBase *container
2466 void GetGlDesc(
2467 [out] glDescriptor **desc
2469 const void *GetData(
2471 HRESULT SetFormat(
2472 [in] WINED3DFORMAT format
2474 HRESULT PrivateSetup(
2476 void ModifyLocation(
2477 [in] DWORD location,
2478 [in] BOOL persistent
2480 HRESULT LoadLocation(
2481 [in] DWORD location,
2482 [in] const RECT *rect
2484 WINED3DSURFTYPE GetImplType(
2486 HRESULT DrawOverlay(
2491 object,
2492 local,
2493 uuid(24769ed8-6f30-11d9-c687-00046142c14f)
2495 interface IWineD3DVolume : IWineD3DResource
2497 HRESULT GetContainer(
2498 [in] REFIID riid,
2499 [out] void **container
2501 HRESULT GetDesc(
2502 [out] WINED3DVOLUME_DESC *desc
2504 HRESULT LockBox(
2505 [out] WINED3DLOCKED_BOX *locked_box,
2506 [in] const WINED3DBOX *box,
2507 [in] DWORD flags
2509 HRESULT UnlockBox(
2511 HRESULT AddDirtyBox(
2512 [in] const WINED3DBOX *dirty_box
2514 HRESULT CleanDirtyBox(
2516 HRESULT LoadTexture(
2517 [in] int gl_level,
2518 [in] BOOL srgb_mode
2520 HRESULT SetContainer(
2521 [in] IWineD3DBase *container
2526 object,
2527 local,
2528 uuid(3c2aebf6-6f30-11d9-c687-00046142c14f)
2530 interface IWineD3DBaseTexture : IWineD3DResource
2532 DWORD SetLOD(
2533 [in] DWORD new_lod
2535 DWORD GetLOD(
2537 DWORD GetLevelCount(
2539 HRESULT SetAutoGenFilterType(
2540 WINED3DTEXTUREFILTERTYPE filter_type
2542 WINED3DTEXTUREFILTERTYPE GetAutoGenFilterType(
2544 void GenerateMipSubLevels(
2546 BOOL SetDirty(
2547 BOOL dirty
2549 BOOL GetDirty(
2551 HRESULT BindTexture(
2553 UINT GetTextureDimensions(
2555 BOOL IsCondNP2(
2557 void ApplyStateChanges(
2558 const DWORD texture_states[WINED3D_HIGHEST_TEXTURE_STATE + 1],
2559 const DWORD sampler_states[WINED3D_HIGHEST_SAMPLER_STATE + 1]
2564 object,
2565 local,
2566 uuid(3e72cc1c-6f30-11d9-c687-00046142c14f)
2568 interface IWineD3DTexture : IWineD3DBaseTexture
2570 void Destroy(
2571 [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
2573 HRESULT GetLevelDesc(
2574 [in] UINT level,
2575 [out] WINED3DSURFACE_DESC *desc
2577 HRESULT GetSurfaceLevel(
2578 [in] UINT level,
2579 [out] IWineD3DSurface **surface
2581 HRESULT LockRect(
2582 [in] UINT level,
2583 [out] WINED3DLOCKED_RECT *locked_rect,
2584 [in] const RECT *rect,
2585 [in] DWORD flags
2587 HRESULT UnlockRect(
2588 [in] UINT level
2590 HRESULT AddDirtyRect(
2591 [in] const RECT *dirty_rect
2596 object,
2597 local,
2598 uuid(41752900-6f30-11d9-c687-00046142c14f)
2600 interface IWineD3DCubeTexture : IWineD3DBaseTexture
2602 void Destroy(
2603 [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
2605 HRESULT GetLevelDesc(
2606 [in] UINT level,
2607 [out] WINED3DSURFACE_DESC *desc
2609 HRESULT GetCubeMapSurface(
2610 [in] WINED3DCUBEMAP_FACES face,
2611 [in] UINT level,
2612 [out] IWineD3DSurface **surface
2614 HRESULT LockRect(
2615 [in] WINED3DCUBEMAP_FACES face,
2616 [in] UINT level,
2617 [out] WINED3DLOCKED_RECT *locked_rect,
2618 [in] const RECT *rect,
2619 [in] DWORD flags
2621 HRESULT UnlockRect(
2622 [in] WINED3DCUBEMAP_FACES face,
2623 [in] UINT level
2625 HRESULT AddDirtyRect(
2626 [in] WINED3DCUBEMAP_FACES face,
2627 [in] const RECT *dirty_rect
2632 object,
2633 local,
2634 uuid(7b39470c-6f30-11d9-c687-00046142c14f)
2636 interface IWineD3DVolumeTexture : IWineD3DBaseTexture
2638 void Destroy(
2639 [in] D3DCB_DESTROYVOLUMEFN destroy_volume_callback
2641 HRESULT GetLevelDesc(
2642 [in] UINT level,
2643 [out] WINED3DVOLUME_DESC *desc
2645 HRESULT GetVolumeLevel(
2646 [in] UINT level,
2647 [out] IWineD3DVolume **volume
2649 HRESULT LockBox(
2650 [in] UINT level,
2651 [out] WINED3DLOCKED_BOX *locked_box,
2652 [in] const WINED3DBOX *box,
2653 [in] DWORD flags
2655 HRESULT UnlockBox(
2656 [in] UINT level
2658 HRESULT AddDirtyBox(
2659 [in] const WINED3DBOX *dirty_box
2664 object,
2665 local,
2666 uuid(7cd55be6-6f30-11d9-c687-00046142c14f)
2668 interface IWineD3DVertexDeclaration : IWineD3DBase
2670 HRESULT GetDevice(
2671 [out] IWineD3DDevice **device
2673 HRESULT GetDeclaration(
2674 [out] WINED3DVERTEXELEMENT *elements,
2675 [out] UINT *element_count
2677 HRESULT SetDeclaration(
2678 [in] const WINED3DVERTEXELEMENT *elements,
2679 [in] UINT element_count
2684 object,
2685 local,
2686 uuid(83b073ce-6f30-11d9-c687-00046142c14f)
2688 interface IWineD3DStateBlock : IWineD3DBase
2690 HRESULT GetDevice(
2691 [out] IWineD3DDevice **device
2693 HRESULT Capture(
2695 HRESULT Apply(
2697 HRESULT InitStartupStateBlock(
2702 object,
2703 local,
2704 uuid(905ddbac-6f30-11d9-c687-00046142c14f)
2706 interface IWineD3DQuery : IWineD3DBase
2708 HRESULT GetDevice(
2709 [out] IWineD3DDevice **device
2711 HRESULT GetData(
2712 [out] void *data,
2713 [in] DWORD data_size,
2714 [in] DWORD flags
2716 DWORD GetDataSize(
2718 WINED3DQUERYTYPE GetType(
2720 HRESULT Issue(
2721 DWORD flags
2726 object,
2727 local,
2728 uuid(34d01b10-6f30-11d9-c687-00046142c14f)
2730 interface IWineD3DSwapChain : IWineD3DBase
2732 void Destroy(
2733 [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback
2735 HRESULT GetDevice(
2736 [out] IWineD3DDevice **device
2738 HRESULT Present(
2739 [in] const RECT *src_rect,
2740 [in] const RECT *dst_rect,
2741 [in] HWND dst_window_override,
2742 [in] const RGNDATA *dirty_region,
2743 [in] DWORD flags
2745 HRESULT SetDestWindowOverride(
2746 [in] HWND window
2748 HRESULT GetFrontBufferData(
2749 [in] IWineD3DSurface *dst_surface
2751 HRESULT GetBackBuffer(
2752 [in] UINT backbuffer_idx,
2753 [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
2754 [out] IWineD3DSurface **backbuffer
2756 HRESULT GetRasterStatus(
2757 [out] WINED3DRASTER_STATUS *raster_status
2759 HRESULT GetDisplayMode(
2760 [out] WINED3DDISPLAYMODE *mode
2762 HRESULT GetPresentParameters(
2763 [out] WINED3DPRESENT_PARAMETERS *present_parameters
2765 HRESULT SetGammaRamp(
2766 [in] DWORD flags,
2767 [in] const WINED3DGAMMARAMP *ramp
2769 HRESULT GetGammaRamp(
2770 [out] WINED3DGAMMARAMP *ramp
2775 object,
2776 local,
2777 uuid(eac93065-a4df-446f-86a1-9ef2bca40a3c)
2779 interface IWineD3DBaseShader : IWineD3DBase
2781 HRESULT SetFunction(
2782 [in] const DWORD *function
2787 object,
2788 local,
2789 uuid(7f7a2b60-6f30-11d9-c687-00046142c14f)
2791 interface IWineD3DVertexShader : IWineD3DBaseShader
2793 HRESULT GetDevice(
2794 [out] IWineD3DDevice **device
2796 HRESULT GetFunction(
2797 [out] void *data,
2798 [in, out] UINT *data_size
2800 void FakeSemantics(
2801 [in] IWineD3DVertexDeclaration *vertex_declaration
2803 HRESULT SetLocalConstantsF(
2804 [in] UINT start_idx,
2805 [in] const float *src_data,
2806 [in] UINT vector4f_count
2811 object,
2812 local,
2813 uuid(818503da-6f30-11d9-c687-00046142c14f)
2815 interface IWineD3DPixelShader : IWineD3DBaseShader
2817 HRESULT GetDevice(
2818 [out] IWineD3DDevice **device
2820 HRESULT GetFunction(
2821 [out] void *data,
2822 [in, out] UINT *data_size
2827 object,
2828 local,
2829 uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5)
2831 interface IWineD3DDevice : IWineD3DBase
2833 HRESULT CreateVertexBuffer(
2834 [in] UINT length,
2835 [in] DWORD usage,
2836 [in] DWORD fvf,
2837 [in] WINED3DPOOL pool,
2838 [out] IWineD3DVertexBuffer **vertex_buffer,
2839 [in] HANDLE *shared_handle,
2840 [in] IUnknown *parent
2842 HRESULT CreateIndexBuffer(
2843 [in] UINT length,
2844 [in] DWORD usage,
2845 [in] WINED3DFORMAT format,
2846 [in] WINED3DPOOL pool,
2847 [out] IWineD3DIndexBuffer **index_buffer,
2848 [in] HANDLE *shared_handle,
2849 [in] IUnknown *parent
2851 HRESULT CreateStateBlock(
2852 [in] WINED3DSTATEBLOCKTYPE type,
2853 [out] IWineD3DStateBlock **stateblock,
2854 [in] IUnknown *parent
2856 HRESULT CreateSurface(
2857 [in] UINT width,
2858 [in] UINT height,
2859 [in] WINED3DFORMAT format,
2860 [in] BOOL lockable,
2861 [in] BOOL discard,
2862 [in] UINT level,
2863 [out] IWineD3DSurface **surface,
2864 [in] WINED3DRESOURCETYPE resource_type,
2865 [in] DWORD usage,
2866 [in] WINED3DPOOL pool,
2867 [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2868 [in] DWORD multisample_quality,
2869 [in] HANDLE *shared_handle,
2870 [in] WINED3DSURFTYPE surface_type,
2871 [in] IUnknown *parent
2873 HRESULT CreateTexture(
2874 [in] UINT width,
2875 [in] UINT height,
2876 [in] UINT levels,
2877 [in] DWORD usage,
2878 [in] WINED3DFORMAT format,
2879 [in] WINED3DPOOL pool,
2880 [out] IWineD3DTexture **texture,
2881 [in] HANDLE *shared_handle,
2882 [in] IUnknown *parent,
2883 [in] D3DCB_CREATESURFACEFN create_surface_callback
2885 HRESULT CreateVolumeTexture(
2886 [in] UINT width,
2887 [in] UINT height,
2888 [in] UINT depth,
2889 [in] UINT levels,
2890 [in] DWORD usage,
2891 [in] WINED3DFORMAT format,
2892 [in] WINED3DPOOL pool,
2893 [out] IWineD3DVolumeTexture **texture,
2894 [in] HANDLE *shared_handle,
2895 [in] IUnknown *parent,
2896 [in] D3DCB_CREATEVOLUMEFN create_volume_callback
2898 HRESULT CreateVolume(
2899 [in] UINT width,
2900 [in] UINT height,
2901 [in] UINT depth,
2902 [in] DWORD usage,
2903 [in] WINED3DFORMAT format,
2904 [in] WINED3DPOOL pool,
2905 [out] IWineD3DVolume **volume,
2906 [in] HANDLE *shared_handle,
2907 [in] IUnknown *parent
2909 HRESULT CreateCubeTexture(
2910 [in] UINT edge_length,
2911 [in] UINT levels,
2912 [in] DWORD usage,
2913 [in] WINED3DFORMAT format,
2914 [in] WINED3DPOOL pool,
2915 [out] IWineD3DCubeTexture **texture,
2916 [in] HANDLE *shared_handle,
2917 [in] IUnknown *parent,
2918 [in] D3DCB_CREATESURFACEFN create_surface_callback
2920 HRESULT CreateQuery(
2921 [in] WINED3DQUERYTYPE type,
2922 [out] IWineD3DQuery **query,
2923 [in] IUnknown *parent
2925 HRESULT CreateSwapChain(
2926 [in] WINED3DPRESENT_PARAMETERS *present_parameters,
2927 [out] IWineD3DSwapChain **swapchain,
2928 [in] IUnknown *parent,
2929 [in] D3DCB_CREATERENDERTARGETFN create_render_target_callback,
2930 [in] D3DCB_CREATEDEPTHSTENCILSURFACEFN create_depth_stencil_callback,
2931 [in] WINED3DSURFTYPE surface_type
2933 HRESULT CreateVertexDeclaration(
2934 [out] IWineD3DVertexDeclaration **declaration,
2935 [in] IUnknown *parent,
2936 [in] const WINED3DVERTEXELEMENT *elements,
2937 [in] UINT element_count
2939 HRESULT CreateVertexDeclarationFromFVF(
2940 [out] IWineD3DVertexDeclaration **declaration,
2941 [in] IUnknown *parent,
2942 [in] DWORD fvf
2944 HRESULT CreateVertexShader(
2945 [in] IWineD3DVertexDeclaration *declaration,
2946 [in] const DWORD *function,
2947 [out] IWineD3DVertexShader **shader,
2948 [in] IUnknown *parent
2950 HRESULT CreatePixelShader(
2951 [in] const DWORD *function,
2952 [out] IWineD3DPixelShader **shader,
2953 [in] IUnknown *parent
2955 HRESULT CreatePalette(
2956 [in] DWORD flags,
2957 [in] const PALETTEENTRY *palette_entry,
2958 [out] IWineD3DPalette **palette,
2959 [in] IUnknown *parent
2961 HRESULT Init3D(
2962 [in] WINED3DPRESENT_PARAMETERS *present_parameters,
2963 [in] D3DCB_CREATESWAPCHAIN create_swapchain_callback
2965 HRESULT InitGDI(
2966 [in] WINED3DPRESENT_PARAMETERS *present_parameters,
2967 [in] D3DCB_CREATESWAPCHAIN create_swapchain_callback
2969 HRESULT Uninit3D(
2970 [in] D3DCB_DESTROYSURFACEFN destroy_surface_callback,
2971 [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2973 HRESULT UninitGDI(
2974 [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2976 void SetMultithreaded(
2978 HRESULT EvictManagedResources(
2980 UINT GetAvailableTextureMem(
2982 HRESULT GetBackBuffer(
2983 [in] UINT swapchain_idx,
2984 [in] UINT backbuffer_idx,
2985 [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
2986 [out] IWineD3DSurface **backbuffer
2988 HRESULT GetCreationParameters(
2989 [out] WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters
2991 HRESULT GetDeviceCaps(
2992 [out] WINED3DCAPS *caps
2994 HRESULT GetDirect3D(
2995 [out] IWineD3D** d3d
2997 HRESULT GetDisplayMode(
2998 [in] UINT swapchain_idx,
2999 [out] WINED3DDISPLAYMODE *mode
3001 HRESULT SetDisplayMode(
3002 [in] UINT swapchain_idx,
3003 [in] const WINED3DDISPLAYMODE *mode
3005 UINT GetNumberOfSwapChains(
3007 HRESULT GetRasterStatus(
3008 [in] UINT swapchain_idx,
3009 [out] WINED3DRASTER_STATUS *raster_status
3011 HRESULT GetSwapChain(
3012 [in] UINT swapchain_idx,
3013 [out] IWineD3DSwapChain **swapchain
3015 HRESULT Reset(
3016 [in] WINED3DPRESENT_PARAMETERS *present_parameters
3018 HRESULT SetDialogBoxMode(
3019 [in] BOOL enable_dialogs
3021 HRESULT SetCursorProperties(
3022 [in] UINT x_hotspot,
3023 [in] UINT y_hotspot,
3024 [in] IWineD3DSurface *cursor_surface
3026 void SetCursorPosition(
3027 [in] int x_screen_space,
3028 [in] int y_screen_space,
3029 [in] DWORD flags
3031 BOOL ShowCursor(
3032 [in] BOOL show
3034 HRESULT TestCooperativeLevel(
3036 HRESULT SetClipPlane(
3037 [in] DWORD plane_idx,
3038 [in] const float *plane
3040 HRESULT GetClipPlane(
3041 [in] DWORD plane_idx,
3042 [out] float *plane
3044 HRESULT SetClipStatus(
3045 [in] const WINED3DCLIPSTATUS *clip_status
3047 HRESULT GetClipStatus(
3048 [out] WINED3DCLIPSTATUS *clip_status
3050 HRESULT SetCurrentTexturePalette(
3051 [in] UINT palette_number
3053 HRESULT GetCurrentTexturePalette(
3054 [out] UINT *palette_number
3056 HRESULT SetDepthStencilSurface(
3057 [in] IWineD3DSurface *depth_stencil
3059 HRESULT GetDepthStencilSurface(
3060 [out] IWineD3DSurface **depth_stencil
3062 void SetGammaRamp(
3063 [in] UINT swapchain_idx,
3064 [in] DWORD flags,
3065 [in] const WINED3DGAMMARAMP *ramp
3067 void GetGammaRamp(
3068 [in] UINT swapchain_idx,
3069 [out] WINED3DGAMMARAMP *ramp
3071 HRESULT SetIndices(
3072 [in] IWineD3DIndexBuffer *index_buffer
3074 HRESULT GetIndices(
3075 [out] IWineD3DIndexBuffer **index_buffer
3077 HRESULT SetBaseVertexIndex(
3078 [in] INT base_index
3080 HRESULT GetBaseVertexIndex(
3081 [out] INT *base_index
3083 HRESULT SetLight(
3084 [in] DWORD light_idx,
3085 [in] const WINED3DLIGHT *light
3087 HRESULT GetLight(
3088 [in] DWORD light_idx,
3089 [out] WINED3DLIGHT *light
3091 HRESULT SetLightEnable(
3092 [in] DWORD light_idx,
3093 [in] BOOL enable
3095 HRESULT GetLightEnable(
3096 [in] DWORD light_idx,
3097 [out] BOOL *enable
3099 HRESULT SetMaterial(
3100 [in] const WINED3DMATERIAL *material
3102 HRESULT GetMaterial(
3103 [out] WINED3DMATERIAL *material
3105 HRESULT SetNPatchMode(
3106 [in] float segments
3108 float GetNPatchMode(
3110 HRESULT SetPaletteEntries(
3111 [in] UINT palette_number,
3112 [in] const PALETTEENTRY *entries
3114 HRESULT GetPaletteEntries(
3115 [in] UINT palette_number,
3116 [out] PALETTEENTRY *entries
3118 HRESULT SetPixelShader(
3119 [in] IWineD3DPixelShader *shader
3121 HRESULT GetPixelShader(
3122 [out] IWineD3DPixelShader **shader
3124 HRESULT SetPixelShaderConstantB(
3125 [in] UINT start_register,
3126 [in] const BOOL *constants,
3127 [in] UINT bool_count
3129 HRESULT GetPixelShaderConstantB(
3130 [in] UINT start_register,
3131 [out] BOOL *constants,
3132 [in] UINT bool_count
3134 HRESULT SetPixelShaderConstantI(
3135 [in] UINT start_register,
3136 [in] const int *constants,
3137 [in] UINT vector4i_count
3139 HRESULT GetPixelShaderConstantI(
3140 [in] UINT start_register,
3141 [out] int *constants,
3142 [in] UINT vector4i_count
3144 HRESULT SetPixelShaderConstantF(
3145 [in] UINT start_register,
3146 [in] const float *constants,
3147 [in] UINT vector4f_count
3149 HRESULT GetPixelShaderConstantF(
3150 [in] UINT start_register,
3151 [out] float *constants,
3152 [in] UINT vector4f_count
3154 HRESULT SetRenderState(
3155 [in] WINED3DRENDERSTATETYPE state,
3156 [in] DWORD value
3158 HRESULT GetRenderState(
3159 [in] WINED3DRENDERSTATETYPE state,
3160 [out] DWORD *value
3162 HRESULT SetRenderTarget(
3163 [in] DWORD render_target_idx,
3164 [in] IWineD3DSurface *render_target
3166 HRESULT GetRenderTarget(
3167 [in] DWORD render_target_idx,
3168 [out] IWineD3DSurface **render_target
3170 HRESULT SetFrontBackBuffers(
3171 [in] IWineD3DSurface *front,
3172 [in] IWineD3DSurface *back
3174 HRESULT SetSamplerState(
3175 [in] DWORD sampler_idx,
3176 [in] WINED3DSAMPLERSTATETYPE state,
3177 [in] DWORD value
3179 HRESULT GetSamplerState(
3180 [in] DWORD sampler_idx,
3181 [in] WINED3DSAMPLERSTATETYPE state,
3182 [out] DWORD *value
3184 HRESULT SetScissorRect(
3185 [in] const RECT *rect
3187 HRESULT GetScissorRect(
3188 [out] RECT *rect
3190 HRESULT SetSoftwareVertexProcessing(
3191 [in] BOOL software
3193 BOOL GetSoftwareVertexProcessing(
3195 HRESULT SetStreamSource(
3196 [in] UINT stream_idx,
3197 [in] IWineD3DVertexBuffer *vertex_buffer,
3198 [in] UINT offset,
3199 [in] UINT stride
3201 HRESULT GetStreamSource(
3202 [in] UINT stream_idx,
3203 [out] IWineD3DVertexBuffer **vertex_buffer,
3204 [out] UINT *offset,
3205 [out] UINT *stride
3207 HRESULT SetStreamSourceFreq(
3208 [in] UINT stream_idx,
3209 [in] UINT divider
3211 HRESULT GetStreamSourceFreq(
3212 [in] UINT stream_idx,
3213 [out] UINT *divider
3215 HRESULT SetTexture(
3216 [in] DWORD stage,
3217 [in] IWineD3DBaseTexture *texture
3219 HRESULT GetTexture(
3220 [in] DWORD stage,
3221 [out] IWineD3DBaseTexture **texture
3223 HRESULT SetTextureStageState(
3224 [in] DWORD stage,
3225 [in] WINED3DTEXTURESTAGESTATETYPE state,
3226 [in] DWORD value
3228 HRESULT GetTextureStageState(
3229 [in] DWORD stage,
3230 [in] WINED3DTEXTURESTAGESTATETYPE state,
3231 [out] DWORD *value
3233 HRESULT SetTransform(
3234 [in] WINED3DTRANSFORMSTATETYPE state,
3235 [in] const WINED3DMATRIX *matrix
3237 HRESULT GetTransform(
3238 [in] WINED3DTRANSFORMSTATETYPE state,
3239 [out] WINED3DMATRIX *matrix
3241 HRESULT SetVertexDeclaration(
3242 [in] IWineD3DVertexDeclaration *declaration
3244 HRESULT GetVertexDeclaration(
3245 [out] IWineD3DVertexDeclaration **declaration
3247 HRESULT SetVertexShader(
3248 [in] IWineD3DVertexShader *shader
3250 HRESULT GetVertexShader(
3251 [out] IWineD3DVertexShader **shader
3253 HRESULT SetVertexShaderConstantB(
3254 [in] UINT start_register,
3255 [in] const BOOL *constants,
3256 [in] UINT bool_count
3258 HRESULT GetVertexShaderConstantB(
3259 [in] UINT start_register,
3260 [out] BOOL *constants,
3261 [in] UINT bool_count
3263 HRESULT SetVertexShaderConstantI(
3264 [in] UINT start_register,
3265 [in] const int *constants,
3266 [in] UINT vector4i_count
3268 HRESULT GetVertexShaderConstantI(
3269 [in] UINT start_register,
3270 [out] int *constants,
3271 [in] UINT vector4i_count
3273 HRESULT SetVertexShaderConstantF(
3274 [in] UINT start_register,
3275 [in] const float *constants,
3276 [in] UINT vector4f_count
3278 HRESULT GetVertexShaderConstantF(
3279 [in] UINT start_register,
3280 [out] float *constants,
3281 [in] UINT vector4f_count
3283 HRESULT SetViewport(
3284 [in] const WINED3DVIEWPORT *viewport
3286 HRESULT GetViewport(
3287 [out] WINED3DVIEWPORT *viewport
3289 HRESULT MultiplyTransform(
3290 [in] WINED3DTRANSFORMSTATETYPE state,
3291 [in] const WINED3DMATRIX *matrix
3293 HRESULT ValidateDevice(
3294 [out] DWORD *num_passes
3296 HRESULT ProcessVertices(
3297 [in] UINT src_start_idx,
3298 [in] UINT dst_idx,
3299 [in] UINT vertex_count,
3300 [in] IWineD3DVertexBuffer *dest_buffer,
3301 [in] IWineD3DVertexDeclaration *declaration,
3302 [in] DWORD flags
3304 HRESULT BeginStateBlock(
3306 HRESULT EndStateBlock(
3307 [out] IWineD3DStateBlock **stateblock
3309 HRESULT BeginScene(
3311 HRESULT EndScene(
3313 HRESULT Present(
3314 [in] const RECT *src_rect,
3315 [in] const RECT *dst_rect,
3316 [in] HWND dst_window_override,
3317 [in] const RGNDATA *dirty_region
3319 HRESULT Clear(
3320 [in] DWORD rect_count,
3321 [in] const WINED3DRECT *rects,
3322 [in] DWORD flags,
3323 [in] WINED3DCOLOR color,
3324 [in] float z,
3325 [in] DWORD stencil
3327 HRESULT DrawPrimitive(
3328 [in] WINED3DPRIMITIVETYPE primitive_type,
3329 [in] UINT start_vertex,
3330 [in] UINT primitive_count
3332 HRESULT DrawIndexedPrimitive(
3333 [in] WINED3DPRIMITIVETYPE primitive_type,
3334 [in] UINT min_vertex_idx,
3335 [in] UINT vertex_count,
3336 [in] UINT start_idx,
3337 [in] UINT primitive_count
3339 HRESULT DrawPrimitiveUP(
3340 [in] WINED3DPRIMITIVETYPE primitive_type,
3341 [in] UINT primitive_count,
3342 [in] const void *stream_data,
3343 [in] UINT stream_stride
3345 HRESULT DrawIndexedPrimitiveUP(
3346 [in] WINED3DPRIMITIVETYPE primitive_type,
3347 [in] UINT min_vertex_idx,
3348 [in] UINT vertex_count,
3349 [in] UINT primitive_count,
3350 [in] const void *index_data,
3351 [in] WINED3DFORMAT index_data_format,
3352 [in] const void *stream_data,
3353 [in] UINT stream_stride
3355 HRESULT DrawPrimitiveStrided(
3356 [in] WINED3DPRIMITIVETYPE primitive_type,
3357 [in] UINT primitive_count,
3358 [in] const WineDirect3DVertexStridedData *strided_data
3360 HRESULT DrawIndexedPrimitiveStrided(
3361 [in] WINED3DPRIMITIVETYPE primitive_type,
3362 [in] UINT primitive_count,
3363 [in] const WineDirect3DVertexStridedData *strided_data,
3364 [in] UINT vertex_count,
3365 [in] const void *index_data,
3366 [in] WINED3DFORMAT index_data_format
3368 HRESULT DrawRectPatch(
3369 [in] UINT handle,
3370 [in] const float *num_segs,
3371 [in] const WINED3DRECTPATCH_INFO *rect_patch_info
3373 HRESULT DrawTriPatch(
3374 [in] UINT handle,
3375 [in] const float *num_segs,
3376 [in] const WINED3DTRIPATCH_INFO *tri_patch_info
3378 HRESULT DeletePatch(
3379 [in] UINT handle
3381 HRESULT ColorFill(
3382 [in] IWineD3DSurface *surface,
3383 [in] const WINED3DRECT *rect,
3384 [in] WINED3DCOLOR color
3386 HRESULT UpdateTexture(
3387 [in] IWineD3DBaseTexture *src_texture,
3388 [in] IWineD3DBaseTexture *dst_texture
3390 HRESULT UpdateSurface(
3391 [in] IWineD3DSurface *src_surface,
3392 [in] const RECT *src_rect,
3393 [in] IWineD3DSurface *dst_surface,
3394 [in] const POINT *dst_point
3396 HRESULT GetFrontBufferData(
3397 [in] UINT swapchain_idx,
3398 [in] IWineD3DSurface *dst_surface
3400 void ResourceReleased(
3401 [in] IWineD3DResource *resource
3403 HRESULT EnumResources(
3404 [in] D3DCB_ENUMRESOURCES callback,
3405 [in] void *data
3409 IWineD3D *WineDirect3DCreate(UINT dxVersion, IUnknown *parent);
3410 IWineD3DClipper *WineDirect3DCreateClipper(IUnknown *parent);