[D3D8][D3D9][DDRAW][WINED3D] Sync with Wine Staging 2.9. This work couldn't have...
[reactos.git] / reactos / sdk / include / reactos / wine / wined3d.h
1 /*
2 * Copyright 2002-2003 The wine-d3d team
3 * Copyright 2002-2003 Jason Edmeades
4 * Copyright 2002-2003 Raphael Junqueira
5 * Copyright 2005 Oliver Stieber
6 * Copyright 2006 Stefan Dösinger
7 * Copyright 2006 Stefan Dösinger for CodeWeavers
8 * Copyright 2007 Henri Verbeet
9 * Copyright 2008 Henri Verbeet for CodeWeavers
10 *
11 * This library is free software; you can redistribute it and/or
12 * modify it under the terms of the GNU Lesser General Public
13 * License as published by the Free Software Foundation; either
14 * version 2.1 of the License, or (at your option) any later version.
15 *
16 * This library is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19 * Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public
22 * License along with this library; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 */
25
26 #ifndef __WINE_WINED3D_H
27 #define __WINE_WINED3D_H
28
29 #ifndef __WINE_CONFIG_H
30 # error You must include config.h to use this header
31 #endif
32
33 #include <wine/list.h>
34
35 #define WINED3D_OK S_OK
36
37 #define _FACWINED3D 0x876
38 #define MAKE_WINED3DSTATUS(code) MAKE_HRESULT(0, _FACWINED3D, code)
39 #define WINED3DOK_NOAUTOGEN MAKE_WINED3DSTATUS(2159)
40
41 #define MAKE_WINED3DHRESULT(code) MAKE_HRESULT(1, _FACWINED3D, code)
42 #define WINED3DERR_CONFLICTINGRENDERSTATE MAKE_WINED3DHRESULT(2081)
43 #define WINED3DERR_UNSUPPORTEDTEXTUREFILTER MAKE_WINED3DHRESULT(2082)
44 #define WINED3DERR_NOTAVAILABLE MAKE_WINED3DHRESULT(2154)
45 #define WINED3DERR_OUTOFVIDEOMEMORY MAKE_WINED3DHRESULT(380)
46 #define WINED3DERR_INVALIDCALL MAKE_WINED3DHRESULT(2156)
47 #define WINEDDERR_NOTAOVERLAYSURFACE MAKE_WINED3DHRESULT(580)
48 #define WINEDDERR_NOTLOCKED MAKE_WINED3DHRESULT(584)
49 #define WINEDDERR_SURFACEBUSY MAKE_WINED3DHRESULT(430)
50 #define WINEDDERR_INVALIDRECT MAKE_WINED3DHRESULT(150)
51 #define WINEDDERR_OVERLAYNOTVISIBLE MAKE_WINED3DHRESULT(577)
52
53 enum wined3d_light_type
54 {
55 WINED3D_LIGHT_POINT = 1,
56 WINED3D_LIGHT_SPOT = 2,
57 WINED3D_LIGHT_DIRECTIONAL = 3,
58 WINED3D_LIGHT_PARALLELPOINT = 4, /* < D3D7 */
59 WINED3D_LIGHT_GLSPOT = 5, /* < D3D5, not actually usable */
60 };
61
62 enum wined3d_primitive_type
63 {
64 WINED3D_PT_UNDEFINED = 0,
65 WINED3D_PT_POINTLIST = 1,
66 WINED3D_PT_LINELIST = 2,
67 WINED3D_PT_LINESTRIP = 3,
68 WINED3D_PT_TRIANGLELIST = 4,
69 WINED3D_PT_TRIANGLESTRIP = 5,
70 WINED3D_PT_TRIANGLEFAN = 6,
71 WINED3D_PT_LINELIST_ADJ = 10,
72 WINED3D_PT_LINESTRIP_ADJ = 11,
73 WINED3D_PT_TRIANGLELIST_ADJ = 12,
74 WINED3D_PT_TRIANGLESTRIP_ADJ = 13,
75 WINED3D_PT_PATCH = 14,
76 };
77
78 enum wined3d_device_type
79 {
80 WINED3D_DEVICE_TYPE_HAL = 1,
81 WINED3D_DEVICE_TYPE_REF = 2,
82 WINED3D_DEVICE_TYPE_SW = 3,
83 WINED3D_DEVICE_TYPE_NULLREF = 4,
84 };
85
86 enum wined3d_degree_type
87 {
88 WINED3D_DEGREE_LINEAR = 1,
89 WINED3D_DEGREE_QUADRATIC = 2,
90 WINED3D_DEGREE_CUBIC = 3,
91 WINED3D_DEGREE_QUINTIC = 5,
92 };
93
94 #define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \
95 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
96 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24))
97
98 enum wined3d_format_id
99 {
100 WINED3DFMT_UNKNOWN,
101 WINED3DFMT_B8G8R8_UNORM,
102 WINED3DFMT_B5G5R5X1_UNORM,
103 WINED3DFMT_B4G4R4A4_UNORM,
104 WINED3DFMT_B2G3R3_UNORM,
105 WINED3DFMT_B2G3R3A8_UNORM,
106 WINED3DFMT_B4G4R4X4_UNORM,
107 WINED3DFMT_R8G8B8X8_UNORM,
108 WINED3DFMT_B10G10R10A2_UNORM,
109 WINED3DFMT_P8_UINT_A8_UNORM,
110 WINED3DFMT_P8_UINT,
111 WINED3DFMT_L8_UNORM,
112 WINED3DFMT_L8A8_UNORM,
113 WINED3DFMT_L4A4_UNORM,
114 WINED3DFMT_R5G5_SNORM_L6_UNORM,
115 WINED3DFMT_R8G8_SNORM_L8X8_UNORM,
116 WINED3DFMT_R10G11B11_SNORM,
117 WINED3DFMT_R10G10B10X2_UINT,
118 WINED3DFMT_R10G10B10X2_SNORM,
119 WINED3DFMT_R10G10B10_SNORM_A2_UNORM,
120 WINED3DFMT_D16_LOCKABLE,
121 WINED3DFMT_D32_UNORM,
122 WINED3DFMT_S1_UINT_D15_UNORM,
123 WINED3DFMT_X8D24_UNORM,
124 WINED3DFMT_S4X4_UINT_D24_UNORM,
125 WINED3DFMT_L16_UNORM,
126 WINED3DFMT_S8_UINT_D24_FLOAT,
127 WINED3DFMT_R8G8_SNORM_Cx,
128 WINED3DFMT_R32G32B32A32_TYPELESS,
129 WINED3DFMT_R32G32B32A32_FLOAT,
130 WINED3DFMT_R32G32B32A32_UINT,
131 WINED3DFMT_R32G32B32A32_SINT,
132 WINED3DFMT_R32G32B32_TYPELESS,
133 WINED3DFMT_R32G32B32_FLOAT,
134 WINED3DFMT_R32G32B32_UINT,
135 WINED3DFMT_R32G32B32_SINT,
136 WINED3DFMT_R16G16B16A16_TYPELESS,
137 WINED3DFMT_R16G16B16A16_FLOAT,
138 WINED3DFMT_R16G16B16A16_UNORM,
139 WINED3DFMT_R16G16B16A16_UINT,
140 WINED3DFMT_R16G16B16A16_SNORM,
141 WINED3DFMT_R16G16B16A16_SINT,
142 WINED3DFMT_R32G32_TYPELESS,
143 WINED3DFMT_R32G32_FLOAT,
144 WINED3DFMT_R32G32_UINT,
145 WINED3DFMT_R32G32_SINT,
146 WINED3DFMT_R32G8X24_TYPELESS,
147 WINED3DFMT_D32_FLOAT_S8X24_UINT,
148 WINED3DFMT_R32_FLOAT_X8X24_TYPELESS,
149 WINED3DFMT_X32_TYPELESS_G8X24_UINT,
150 WINED3DFMT_R10G10B10A2_TYPELESS,
151 WINED3DFMT_R10G10B10A2_UNORM,
152 WINED3DFMT_R10G10B10A2_UINT,
153 WINED3DFMT_R10G10B10A2_SNORM,
154 WINED3DFMT_R10G10B10_XR_BIAS_A2_UNORM,
155 WINED3DFMT_R11G11B10_FLOAT,
156 WINED3DFMT_R8G8B8A8_TYPELESS,
157 WINED3DFMT_R8G8B8A8_UNORM,
158 WINED3DFMT_R8G8B8A8_UNORM_SRGB,
159 WINED3DFMT_R8G8B8A8_UINT,
160 WINED3DFMT_R8G8B8A8_SNORM,
161 WINED3DFMT_R8G8B8A8_SINT,
162 WINED3DFMT_R16G16_TYPELESS,
163 WINED3DFMT_R16G16_FLOAT,
164 WINED3DFMT_R16G16_UNORM,
165 WINED3DFMT_R16G16_UINT,
166 WINED3DFMT_R16G16_SNORM,
167 WINED3DFMT_R16G16_SINT,
168 WINED3DFMT_R32_TYPELESS,
169 WINED3DFMT_D32_FLOAT,
170 WINED3DFMT_R32_FLOAT,
171 WINED3DFMT_R32_UINT,
172 WINED3DFMT_R32_SINT,
173 WINED3DFMT_R24G8_TYPELESS,
174 WINED3DFMT_D24_UNORM_S8_UINT,
175 WINED3DFMT_R24_UNORM_X8_TYPELESS,
176 WINED3DFMT_X24_TYPELESS_G8_UINT,
177 WINED3DFMT_R8G8_TYPELESS,
178 WINED3DFMT_R8G8_UNORM,
179 WINED3DFMT_R8G8_UINT,
180 WINED3DFMT_R8G8_SNORM,
181 WINED3DFMT_R8G8_SINT,
182 WINED3DFMT_R16_TYPELESS,
183 WINED3DFMT_R16_FLOAT,
184 WINED3DFMT_D16_UNORM,
185 WINED3DFMT_R16_UNORM,
186 WINED3DFMT_R16_UINT,
187 WINED3DFMT_R16_SNORM,
188 WINED3DFMT_R16_SINT,
189 WINED3DFMT_R8_TYPELESS,
190 WINED3DFMT_R8_UNORM,
191 WINED3DFMT_R8_UINT,
192 WINED3DFMT_R8_SNORM,
193 WINED3DFMT_R8_SINT,
194 WINED3DFMT_A8_UNORM,
195 WINED3DFMT_R1_UNORM,
196 WINED3DFMT_R9G9B9E5_SHAREDEXP,
197 WINED3DFMT_R8G8_B8G8_UNORM,
198 WINED3DFMT_G8R8_G8B8_UNORM,
199 WINED3DFMT_BC1_TYPELESS,
200 WINED3DFMT_BC1_UNORM,
201 WINED3DFMT_BC1_UNORM_SRGB,
202 WINED3DFMT_BC2_TYPELESS,
203 WINED3DFMT_BC2_UNORM,
204 WINED3DFMT_BC2_UNORM_SRGB,
205 WINED3DFMT_BC3_TYPELESS,
206 WINED3DFMT_BC3_UNORM,
207 WINED3DFMT_BC3_UNORM_SRGB,
208 WINED3DFMT_BC4_TYPELESS,
209 WINED3DFMT_BC4_UNORM,
210 WINED3DFMT_BC4_SNORM,
211 WINED3DFMT_BC5_TYPELESS,
212 WINED3DFMT_BC5_UNORM,
213 WINED3DFMT_BC5_SNORM,
214 WINED3DFMT_B5G6R5_UNORM,
215 WINED3DFMT_B5G5R5A1_UNORM,
216 WINED3DFMT_B8G8R8A8_UNORM,
217 WINED3DFMT_B8G8R8X8_UNORM,
218 WINED3DFMT_B8G8R8A8_TYPELESS,
219 WINED3DFMT_B8G8R8A8_UNORM_SRGB,
220 WINED3DFMT_B8G8R8X8_TYPELESS,
221 WINED3DFMT_B8G8R8X8_UNORM_SRGB,
222 WINED3DFMT_BC6H_TYPELESS,
223 WINED3DFMT_BC6H_UF16,
224 WINED3DFMT_BC6H_SF16,
225 WINED3DFMT_BC7_TYPELESS,
226 WINED3DFMT_BC7_UNORM,
227 WINED3DFMT_BC7_UNORM_SRGB,
228 /* FOURCC formats. */
229 WINED3DFMT_UYVY = WINEMAKEFOURCC('U','Y','V','Y'),
230 WINED3DFMT_YUY2 = WINEMAKEFOURCC('Y','U','Y','2'),
231 WINED3DFMT_YV12 = WINEMAKEFOURCC('Y','V','1','2'),
232 WINED3DFMT_DXT1 = WINEMAKEFOURCC('D','X','T','1'),
233 WINED3DFMT_DXT2 = WINEMAKEFOURCC('D','X','T','2'),
234 WINED3DFMT_DXT3 = WINEMAKEFOURCC('D','X','T','3'),
235 WINED3DFMT_DXT4 = WINEMAKEFOURCC('D','X','T','4'),
236 WINED3DFMT_DXT5 = WINEMAKEFOURCC('D','X','T','5'),
237 WINED3DFMT_MULTI2_ARGB8 = WINEMAKEFOURCC('M','E','T','1'),
238 WINED3DFMT_G8R8_G8B8 = WINEMAKEFOURCC('G','R','G','B'),
239 WINED3DFMT_R8G8_B8G8 = WINEMAKEFOURCC('R','G','B','G'),
240 WINED3DFMT_ATI1N = WINEMAKEFOURCC('A','T','I','1'),
241 WINED3DFMT_ATI2N = WINEMAKEFOURCC('A','T','I','2'),
242 WINED3DFMT_INST = WINEMAKEFOURCC('I','N','S','T'),
243 WINED3DFMT_NVDB = WINEMAKEFOURCC('N','V','D','B'),
244 WINED3DFMT_NVHU = WINEMAKEFOURCC('N','V','H','U'),
245 WINED3DFMT_NVHS = WINEMAKEFOURCC('N','V','H','S'),
246 WINED3DFMT_INTZ = WINEMAKEFOURCC('I','N','T','Z'),
247 WINED3DFMT_RESZ = WINEMAKEFOURCC('R','E','S','Z'),
248 WINED3DFMT_NULL = WINEMAKEFOURCC('N','U','L','L'),
249 WINED3DFMT_R16 = WINEMAKEFOURCC(' ','R','1','6'),
250 WINED3DFMT_AL16 = WINEMAKEFOURCC('A','L','1','6'),
251 WINED3DFMT_NV12 = WINEMAKEFOURCC('N','V','1','2'),
252
253 WINED3DFMT_FORCE_DWORD = 0xffffffff
254 };
255
256 enum wined3d_render_state
257 {
258 WINED3D_RS_ANTIALIAS = 2,
259 WINED3D_RS_TEXTUREPERSPECTIVE = 4,
260 WINED3D_RS_WRAPU = 5,
261 WINED3D_RS_WRAPV = 6,
262 WINED3D_RS_ZENABLE = 7,
263 WINED3D_RS_FILLMODE = 8,
264 WINED3D_RS_SHADEMODE = 9,
265 WINED3D_RS_LINEPATTERN = 10,
266 WINED3D_RS_MONOENABLE = 11,
267 WINED3D_RS_ROP2 = 12,
268 WINED3D_RS_PLANEMASK = 13,
269 WINED3D_RS_ZWRITEENABLE = 14,
270 WINED3D_RS_ALPHATESTENABLE = 15,
271 WINED3D_RS_LASTPIXEL = 16,
272 WINED3D_RS_SRCBLEND = 19,
273 WINED3D_RS_DESTBLEND = 20,
274 WINED3D_RS_CULLMODE = 22,
275 WINED3D_RS_ZFUNC = 23,
276 WINED3D_RS_ALPHAREF = 24,
277 WINED3D_RS_ALPHAFUNC = 25,
278 WINED3D_RS_DITHERENABLE = 26,
279 WINED3D_RS_ALPHABLENDENABLE = 27,
280 WINED3D_RS_FOGENABLE = 28,
281 WINED3D_RS_SPECULARENABLE = 29,
282 WINED3D_RS_ZVISIBLE = 30,
283 WINED3D_RS_SUBPIXEL = 31,
284 WINED3D_RS_SUBPIXELX = 32,
285 WINED3D_RS_STIPPLEDALPHA = 33,
286 WINED3D_RS_FOGCOLOR = 34,
287 WINED3D_RS_FOGTABLEMODE = 35,
288 WINED3D_RS_FOGSTART = 36,
289 WINED3D_RS_FOGEND = 37,
290 WINED3D_RS_FOGDENSITY = 38,
291 WINED3D_RS_STIPPLEENABLE = 39,
292 WINED3D_RS_EDGEANTIALIAS = 40,
293 WINED3D_RS_COLORKEYENABLE = 41,
294 WINED3D_RS_MIPMAPLODBIAS = 46,
295 WINED3D_RS_RANGEFOGENABLE = 48,
296 WINED3D_RS_ANISOTROPY = 49,
297 WINED3D_RS_FLUSHBATCH = 50,
298 WINED3D_RS_TRANSLUCENTSORTINDEPENDENT = 51,
299 WINED3D_RS_STENCILENABLE = 52,
300 WINED3D_RS_STENCILFAIL = 53,
301 WINED3D_RS_STENCILZFAIL = 54,
302 WINED3D_RS_STENCILPASS = 55,
303 WINED3D_RS_STENCILFUNC = 56,
304 WINED3D_RS_STENCILREF = 57,
305 WINED3D_RS_STENCILMASK = 58,
306 WINED3D_RS_STENCILWRITEMASK = 59,
307 WINED3D_RS_TEXTUREFACTOR = 60,
308 WINED3D_RS_WRAP0 = 128,
309 WINED3D_RS_WRAP1 = 129,
310 WINED3D_RS_WRAP2 = 130,
311 WINED3D_RS_WRAP3 = 131,
312 WINED3D_RS_WRAP4 = 132,
313 WINED3D_RS_WRAP5 = 133,
314 WINED3D_RS_WRAP6 = 134,
315 WINED3D_RS_WRAP7 = 135,
316 WINED3D_RS_CLIPPING = 136,
317 WINED3D_RS_LIGHTING = 137,
318 WINED3D_RS_EXTENTS = 138,
319 WINED3D_RS_AMBIENT = 139,
320 WINED3D_RS_FOGVERTEXMODE = 140,
321 WINED3D_RS_COLORVERTEX = 141,
322 WINED3D_RS_LOCALVIEWER = 142,
323 WINED3D_RS_NORMALIZENORMALS = 143,
324 WINED3D_RS_COLORKEYBLENDENABLE = 144,
325 WINED3D_RS_DIFFUSEMATERIALSOURCE = 145,
326 WINED3D_RS_SPECULARMATERIALSOURCE = 146,
327 WINED3D_RS_AMBIENTMATERIALSOURCE = 147,
328 WINED3D_RS_EMISSIVEMATERIALSOURCE = 148,
329 WINED3D_RS_VERTEXBLEND = 151,
330 WINED3D_RS_CLIPPLANEENABLE = 152,
331 WINED3D_RS_SOFTWAREVERTEXPROCESSING = 153,
332 WINED3D_RS_POINTSIZE = 154,
333 WINED3D_RS_POINTSIZE_MIN = 155,
334 WINED3D_RS_POINTSPRITEENABLE = 156,
335 WINED3D_RS_POINTSCALEENABLE = 157,
336 WINED3D_RS_POINTSCALE_A = 158,
337 WINED3D_RS_POINTSCALE_B = 159,
338 WINED3D_RS_POINTSCALE_C = 160,
339 WINED3D_RS_MULTISAMPLEANTIALIAS = 161,
340 WINED3D_RS_MULTISAMPLEMASK = 162,
341 WINED3D_RS_PATCHEDGESTYLE = 163,
342 WINED3D_RS_PATCHSEGMENTS = 164,
343 WINED3D_RS_DEBUGMONITORTOKEN = 165,
344 WINED3D_RS_POINTSIZE_MAX = 166,
345 WINED3D_RS_INDEXEDVERTEXBLENDENABLE = 167,
346 WINED3D_RS_COLORWRITEENABLE = 168,
347 WINED3D_RS_TWEENFACTOR = 170,
348 WINED3D_RS_BLENDOP = 171,
349 WINED3D_RS_POSITIONDEGREE = 172,
350 WINED3D_RS_NORMALDEGREE = 173,
351 WINED3D_RS_SCISSORTESTENABLE = 174,
352 WINED3D_RS_SLOPESCALEDEPTHBIAS = 175,
353 WINED3D_RS_ANTIALIASEDLINEENABLE = 176,
354 WINED3D_RS_MINTESSELLATIONLEVEL = 178,
355 WINED3D_RS_MAXTESSELLATIONLEVEL = 179,
356 WINED3D_RS_ADAPTIVETESS_X = 180,
357 WINED3D_RS_ADAPTIVETESS_Y = 181,
358 WINED3D_RS_ADAPTIVETESS_Z = 182,
359 WINED3D_RS_ADAPTIVETESS_W = 183,
360 WINED3D_RS_ENABLEADAPTIVETESSELLATION = 184,
361 WINED3D_RS_TWOSIDEDSTENCILMODE = 185,
362 WINED3D_RS_BACK_STENCILFAIL = 186,
363 WINED3D_RS_BACK_STENCILZFAIL = 187,
364 WINED3D_RS_BACK_STENCILPASS = 188,
365 WINED3D_RS_BACK_STENCILFUNC = 189,
366 WINED3D_RS_COLORWRITEENABLE1 = 190,
367 WINED3D_RS_COLORWRITEENABLE2 = 191,
368 WINED3D_RS_COLORWRITEENABLE3 = 192,
369 WINED3D_RS_BLENDFACTOR = 193,
370 WINED3D_RS_SRGBWRITEENABLE = 194,
371 WINED3D_RS_DEPTHBIAS = 195,
372 WINED3D_RS_WRAP8 = 198,
373 WINED3D_RS_WRAP9 = 199,
374 WINED3D_RS_WRAP10 = 200,
375 WINED3D_RS_WRAP11 = 201,
376 WINED3D_RS_WRAP12 = 202,
377 WINED3D_RS_WRAP13 = 203,
378 WINED3D_RS_WRAP14 = 204,
379 WINED3D_RS_WRAP15 = 205,
380 WINED3D_RS_SEPARATEALPHABLENDENABLE = 206,
381 WINED3D_RS_SRCBLENDALPHA = 207,
382 WINED3D_RS_DESTBLENDALPHA = 208,
383 WINED3D_RS_BLENDOPALPHA = 209,
384 };
385 #define WINEHIGHEST_RENDER_STATE WINED3D_RS_BLENDOPALPHA
386
387 enum wined3d_blend
388 {
389 WINED3D_BLEND_ZERO = 1,
390 WINED3D_BLEND_ONE = 2,
391 WINED3D_BLEND_SRCCOLOR = 3,
392 WINED3D_BLEND_INVSRCCOLOR = 4,
393 WINED3D_BLEND_SRCALPHA = 5,
394 WINED3D_BLEND_INVSRCALPHA = 6,
395 WINED3D_BLEND_DESTALPHA = 7,
396 WINED3D_BLEND_INVDESTALPHA = 8,
397 WINED3D_BLEND_DESTCOLOR = 9,
398 WINED3D_BLEND_INVDESTCOLOR = 10,
399 WINED3D_BLEND_SRCALPHASAT = 11,
400 WINED3D_BLEND_BOTHSRCALPHA = 12,
401 WINED3D_BLEND_BOTHINVSRCALPHA = 13,
402 WINED3D_BLEND_BLENDFACTOR = 14,
403 WINED3D_BLEND_INVBLENDFACTOR = 15,
404 WINED3D_BLEND_SRC1COLOR = 16,
405 WINED3D_BLEND_INVSRC1COLOR = 17,
406 WINED3D_BLEND_SRC1ALPHA = 18,
407 WINED3D_BLEND_INVSRC1ALPHA = 19,
408 };
409
410 enum wined3d_blend_op
411 {
412 WINED3D_BLEND_OP_ADD = 1,
413 WINED3D_BLEND_OP_SUBTRACT = 2,
414 WINED3D_BLEND_OP_REVSUBTRACT = 3,
415 WINED3D_BLEND_OP_MIN = 4,
416 WINED3D_BLEND_OP_MAX = 5,
417 };
418
419 enum wined3d_vertex_blend_flags
420 {
421 WINED3D_VBF_DISABLE = 0,
422 WINED3D_VBF_1WEIGHTS = 1,
423 WINED3D_VBF_2WEIGHTS = 2,
424 WINED3D_VBF_3WEIGHTS = 3,
425 WINED3D_VBF_TWEENING = 255,
426 WINED3D_VBF_0WEIGHTS = 256,
427 };
428
429 enum wined3d_cmp_func
430 {
431 WINED3D_CMP_NEVER = 1,
432 WINED3D_CMP_LESS = 2,
433 WINED3D_CMP_EQUAL = 3,
434 WINED3D_CMP_LESSEQUAL = 4,
435 WINED3D_CMP_GREATER = 5,
436 WINED3D_CMP_NOTEQUAL = 6,
437 WINED3D_CMP_GREATEREQUAL = 7,
438 WINED3D_CMP_ALWAYS = 8,
439 };
440
441 enum wined3d_depth_buffer_type
442 {
443 WINED3D_ZB_FALSE = 0,
444 WINED3D_ZB_TRUE = 1,
445 WINED3D_ZB_USEW = 2,
446 };
447
448 enum wined3d_fog_mode
449 {
450 WINED3D_FOG_NONE = 0,
451 WINED3D_FOG_EXP = 1,
452 WINED3D_FOG_EXP2 = 2,
453 WINED3D_FOG_LINEAR = 3,
454 };
455
456 enum wined3d_shade_mode
457 {
458 WINED3D_SHADE_FLAT = 1,
459 WINED3D_SHADE_GOURAUD = 2,
460 WINED3D_SHADE_PHONG = 3,
461 };
462
463 enum wined3d_fill_mode
464 {
465 WINED3D_FILL_POINT = 1,
466 WINED3D_FILL_WIREFRAME = 2,
467 WINED3D_FILL_SOLID = 3,
468 };
469
470 enum wined3d_cull
471 {
472 WINED3D_CULL_NONE = 1,
473 WINED3D_CULL_FRONT = 2,
474 WINED3D_CULL_BACK = 3,
475 };
476
477 enum wined3d_stencil_op
478 {
479 WINED3D_STENCIL_OP_KEEP = 1,
480 WINED3D_STENCIL_OP_ZERO = 2,
481 WINED3D_STENCIL_OP_REPLACE = 3,
482 WINED3D_STENCIL_OP_INCR_SAT = 4,
483 WINED3D_STENCIL_OP_DECR_SAT = 5,
484 WINED3D_STENCIL_OP_INVERT = 6,
485 WINED3D_STENCIL_OP_INCR = 7,
486 WINED3D_STENCIL_OP_DECR = 8,
487 };
488
489 enum wined3d_material_color_source
490 {
491 WINED3D_MCS_MATERIAL = 0,
492 WINED3D_MCS_COLOR1 = 1,
493 WINED3D_MCS_COLOR2 = 2,
494 };
495
496 enum wined3d_patch_edge_style
497 {
498 WINED3D_PATCH_EDGE_DISCRETE = 0,
499 WINED3D_PATCH_EDGE_CONTINUOUS = 1,
500 };
501
502 enum wined3d_swap_effect
503 {
504 WINED3D_SWAP_EFFECT_DISCARD = 1,
505 WINED3D_SWAP_EFFECT_FLIP = 2,
506 WINED3D_SWAP_EFFECT_COPY = 3,
507 WINED3D_SWAP_EFFECT_COPY_VSYNC = 4,
508 };
509
510 enum wined3d_sampler_state
511 {
512 WINED3D_SAMP_ADDRESS_U = 1,
513 WINED3D_SAMP_ADDRESS_V = 2,
514 WINED3D_SAMP_ADDRESS_W = 3,
515 WINED3D_SAMP_BORDER_COLOR = 4,
516 WINED3D_SAMP_MAG_FILTER = 5,
517 WINED3D_SAMP_MIN_FILTER = 6,
518 WINED3D_SAMP_MIP_FILTER = 7,
519 WINED3D_SAMP_MIPMAP_LOD_BIAS = 8,
520 WINED3D_SAMP_MAX_MIP_LEVEL = 9,
521 WINED3D_SAMP_MAX_ANISOTROPY = 10,
522 WINED3D_SAMP_SRGB_TEXTURE = 11,
523 WINED3D_SAMP_ELEMENT_INDEX = 12,
524 WINED3D_SAMP_DMAP_OFFSET = 13,
525 };
526 #define WINED3D_HIGHEST_SAMPLER_STATE WINED3D_SAMP_DMAP_OFFSET
527
528 enum wined3d_multisample_type
529 {
530 WINED3D_MULTISAMPLE_NONE = 0,
531 WINED3D_MULTISAMPLE_NON_MASKABLE = 1,
532 WINED3D_MULTISAMPLE_2_SAMPLES = 2,
533 WINED3D_MULTISAMPLE_3_SAMPLES = 3,
534 WINED3D_MULTISAMPLE_4_SAMPLES = 4,
535 WINED3D_MULTISAMPLE_5_SAMPLES = 5,
536 WINED3D_MULTISAMPLE_6_SAMPLES = 6,
537 WINED3D_MULTISAMPLE_7_SAMPLES = 7,
538 WINED3D_MULTISAMPLE_8_SAMPLES = 8,
539 WINED3D_MULTISAMPLE_9_SAMPLES = 9,
540 WINED3D_MULTISAMPLE_10_SAMPLES = 10,
541 WINED3D_MULTISAMPLE_11_SAMPLES = 11,
542 WINED3D_MULTISAMPLE_12_SAMPLES = 12,
543 WINED3D_MULTISAMPLE_13_SAMPLES = 13,
544 WINED3D_MULTISAMPLE_14_SAMPLES = 14,
545 WINED3D_MULTISAMPLE_15_SAMPLES = 15,
546 WINED3D_MULTISAMPLE_16_SAMPLES = 16,
547 };
548
549 enum wined3d_texture_stage_state
550 {
551 WINED3D_TSS_COLOR_OP = 0,
552 WINED3D_TSS_COLOR_ARG1 = 1,
553 WINED3D_TSS_COLOR_ARG2 = 2,
554 WINED3D_TSS_ALPHA_OP = 3,
555 WINED3D_TSS_ALPHA_ARG1 = 4,
556 WINED3D_TSS_ALPHA_ARG2 = 5,
557 WINED3D_TSS_BUMPENV_MAT00 = 6,
558 WINED3D_TSS_BUMPENV_MAT01 = 7,
559 WINED3D_TSS_BUMPENV_MAT10 = 8,
560 WINED3D_TSS_BUMPENV_MAT11 = 9,
561 WINED3D_TSS_TEXCOORD_INDEX = 10,
562 WINED3D_TSS_BUMPENV_LSCALE = 11,
563 WINED3D_TSS_BUMPENV_LOFFSET = 12,
564 WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS = 13,
565 WINED3D_TSS_COLOR_ARG0 = 14,
566 WINED3D_TSS_ALPHA_ARG0 = 15,
567 WINED3D_TSS_RESULT_ARG = 16,
568 WINED3D_TSS_CONSTANT = 17,
569 WINED3D_TSS_INVALID = ~0U,
570 };
571 #define WINED3D_HIGHEST_TEXTURE_STATE WINED3D_TSS_CONSTANT
572
573 enum wined3d_texture_transform_flags
574 {
575 WINED3D_TTFF_DISABLE = 0,
576 WINED3D_TTFF_COUNT1 = 1,
577 WINED3D_TTFF_COUNT2 = 2,
578 WINED3D_TTFF_COUNT3 = 3,
579 WINED3D_TTFF_COUNT4 = 4,
580 WINED3D_TTFF_PROJECTED = 256,
581 };
582
583 enum wined3d_texture_op
584 {
585 WINED3D_TOP_DISABLE = 1,
586 WINED3D_TOP_SELECT_ARG1 = 2,
587 WINED3D_TOP_SELECT_ARG2 = 3,
588 WINED3D_TOP_MODULATE = 4,
589 WINED3D_TOP_MODULATE_2X = 5,
590 WINED3D_TOP_MODULATE_4X = 6,
591 WINED3D_TOP_ADD = 7,
592 WINED3D_TOP_ADD_SIGNED = 8,
593 WINED3D_TOP_ADD_SIGNED_2X = 9,
594 WINED3D_TOP_SUBTRACT = 10,
595 WINED3D_TOP_ADD_SMOOTH = 11,
596 WINED3D_TOP_BLEND_DIFFUSE_ALPHA = 12,
597 WINED3D_TOP_BLEND_TEXTURE_ALPHA = 13,
598 WINED3D_TOP_BLEND_FACTOR_ALPHA = 14,
599 WINED3D_TOP_BLEND_TEXTURE_ALPHA_PM = 15,
600 WINED3D_TOP_BLEND_CURRENT_ALPHA = 16,
601 WINED3D_TOP_PREMODULATE = 17,
602 WINED3D_TOP_MODULATE_ALPHA_ADD_COLOR = 18,
603 WINED3D_TOP_MODULATE_COLOR_ADD_ALPHA = 19,
604 WINED3D_TOP_MODULATE_INVALPHA_ADD_COLOR = 20,
605 WINED3D_TOP_MODULATE_INVCOLOR_ADD_ALPHA = 21,
606 WINED3D_TOP_BUMPENVMAP = 22,
607 WINED3D_TOP_BUMPENVMAP_LUMINANCE = 23,
608 WINED3D_TOP_DOTPRODUCT3 = 24,
609 WINED3D_TOP_MULTIPLY_ADD = 25,
610 WINED3D_TOP_LERP = 26,
611 };
612
613 enum wined3d_texture_address
614 {
615 WINED3D_TADDRESS_WRAP = 1,
616 WINED3D_TADDRESS_MIRROR = 2,
617 WINED3D_TADDRESS_CLAMP = 3,
618 WINED3D_TADDRESS_BORDER = 4,
619 WINED3D_TADDRESS_MIRROR_ONCE = 5,
620 };
621
622 enum wined3d_transform_state
623 {
624 WINED3D_TS_VIEW = 2,
625 WINED3D_TS_PROJECTION = 3,
626 WINED3D_TS_TEXTURE0 = 16,
627 WINED3D_TS_TEXTURE1 = 17,
628 WINED3D_TS_TEXTURE2 = 18,
629 WINED3D_TS_TEXTURE3 = 19,
630 WINED3D_TS_TEXTURE4 = 20,
631 WINED3D_TS_TEXTURE5 = 21,
632 WINED3D_TS_TEXTURE6 = 22,
633 WINED3D_TS_TEXTURE7 = 23,
634 WINED3D_TS_WORLD = 256, /* WINED3D_TS_WORLD_MATRIX(0) */
635 WINED3D_TS_WORLD1 = 257,
636 WINED3D_TS_WORLD2 = 258,
637 WINED3D_TS_WORLD3 = 259,
638 };
639
640 #define WINED3D_TS_WORLD_MATRIX(index) (enum wined3d_transform_state)(index + 256)
641
642 enum wined3d_basis_type
643 {
644 WINED3D_BASIS_BEZIER = 0,
645 WINED3D_BASIS_BSPLINE = 1,
646 WINED3D_BASIS_INTERPOLATE = 2,
647 };
648
649 enum wined3d_cubemap_face
650 {
651 WINED3D_CUBEMAP_FACE_POSITIVE_X = 0,
652 WINED3D_CUBEMAP_FACE_NEGATIVE_X = 1,
653 WINED3D_CUBEMAP_FACE_POSITIVE_Y = 2,
654 WINED3D_CUBEMAP_FACE_NEGATIVE_Y = 3,
655 WINED3D_CUBEMAP_FACE_POSITIVE_Z = 4,
656 WINED3D_CUBEMAP_FACE_NEGATIVE_Z = 5,
657 };
658
659 enum wined3d_texture_filter_type
660 {
661 WINED3D_TEXF_NONE = 0,
662 WINED3D_TEXF_POINT = 1,
663 WINED3D_TEXF_LINEAR = 2,
664 WINED3D_TEXF_ANISOTROPIC = 3,
665 WINED3D_TEXF_FLAT_CUBIC = 4,
666 WINED3D_TEXF_GAUSSIAN_CUBIC = 5,
667 WINED3D_TEXF_PYRAMIDAL_QUAD = 6,
668 WINED3D_TEXF_GAUSSIAN_QUAD = 7,
669 };
670
671 enum wined3d_resource_type
672 {
673 WINED3D_RTYPE_BUFFER = 1,
674 WINED3D_RTYPE_TEXTURE_1D = 2,
675 WINED3D_RTYPE_TEXTURE_2D = 3,
676 WINED3D_RTYPE_TEXTURE_3D = 4,
677 };
678
679 enum wined3d_pool
680 {
681 WINED3D_POOL_DEFAULT = 0,
682 WINED3D_POOL_MANAGED = 1,
683 WINED3D_POOL_SYSTEM_MEM = 2,
684 WINED3D_POOL_SCRATCH = 3,
685 };
686
687 enum wined3d_query_type
688 {
689 WINED3D_QUERY_TYPE_VCACHE = 4,
690 WINED3D_QUERY_TYPE_RESOURCE_MANAGER = 5,
691 WINED3D_QUERY_TYPE_VERTEX_STATS = 6,
692 WINED3D_QUERY_TYPE_EVENT = 8,
693 WINED3D_QUERY_TYPE_OCCLUSION = 9,
694 WINED3D_QUERY_TYPE_TIMESTAMP = 10,
695 WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT = 11,
696 WINED3D_QUERY_TYPE_TIMESTAMP_FREQ = 12,
697 WINED3D_QUERY_TYPE_PIPELINE_TIMINGS = 13,
698 WINED3D_QUERY_TYPE_INTERFACE_TIMINGS = 14,
699 WINED3D_QUERY_TYPE_VERTEX_TIMINGS = 15,
700 WINED3D_QUERY_TYPE_PIXEL_TIMINGS = 16,
701 WINED3D_QUERY_TYPE_BANDWIDTH_TIMINGS = 17,
702 WINED3D_QUERY_TYPE_CACHE_UTILIZATION = 18,
703 WINED3D_QUERY_TYPE_MEMORY_PRESSURE = 19,
704 WINED3D_QUERY_TYPE_PIPELINE_STATISTICS = 20,
705 WINED3D_QUERY_TYPE_SO_STATISTICS = 21,
706 WINED3D_QUERY_TYPE_SO_OVERFLOW = 22,
707 WINED3D_QUERY_TYPE_SO_STATISTICS_STREAM0 = 23,
708 WINED3D_QUERY_TYPE_SO_OVERFLOW_STREAM0 = 24,
709 WINED3D_QUERY_TYPE_SO_STATISTICS_STREAM1 = 25,
710 WINED3D_QUERY_TYPE_SO_OVERFLOW_STREAM1 = 26,
711 WINED3D_QUERY_TYPE_SO_STATISTICS_STREAM2 = 27,
712 WINED3D_QUERY_TYPE_SO_OVERFLOW_STREAM2 = 28,
713 WINED3D_QUERY_TYPE_SO_STATISTICS_STREAM3 = 29,
714 WINED3D_QUERY_TYPE_SO_OVERFLOW_STREAM3 = 30,
715 };
716
717 struct wined3d_query_data_timestamp_disjoint
718 {
719 UINT64 frequency;
720 BOOL disjoint;
721 };
722
723 struct wined3d_query_data_so_statistics
724 {
725 UINT64 primitives_written;
726 UINT64 primitives_generated;
727 };
728
729 struct wined3d_query_data_pipeline_statistics
730 {
731 UINT64 ia_vertices;
732 UINT64 ia_primitives;
733 UINT64 vs_invocations;
734 UINT64 gs_invocations;
735 UINT64 gs_primitives;
736 UINT64 c_invocations;
737 UINT64 c_primitives;
738 UINT64 ps_invocations;
739 UINT64 hs_invocations;
740 UINT64 ds_invocations;
741 UINT64 cs_invocations;
742 };
743
744 #define WINED3DISSUE_BEGIN (1u << 1)
745 #define WINED3DISSUE_END (1u << 0)
746 #define WINED3DGETDATA_FLUSH (1u << 0)
747
748 enum wined3d_stateblock_type
749 {
750 WINED3D_SBT_ALL = 1,
751 WINED3D_SBT_PIXEL_STATE = 2,
752 WINED3D_SBT_VERTEX_STATE = 3,
753 WINED3D_SBT_RECORDED = 4, /* WineD3D private */
754 };
755
756 enum wined3d_decl_method
757 {
758 WINED3D_DECL_METHOD_DEFAULT = 0,
759 WINED3D_DECL_METHOD_PARTIAL_U = 1,
760 WINED3D_DECL_METHOD_PARTIAL_V = 2,
761 WINED3D_DECL_METHOD_CROSS_UV = 3,
762 WINED3D_DECL_METHOD_UV = 4,
763 WINED3D_DECL_METHOD_LOOKUP = 5,
764 WINED3D_DECL_METHOD_LOOKUP_PRESAMPLED = 6,
765 };
766
767 enum wined3d_decl_usage
768 {
769 WINED3D_DECL_USAGE_POSITION = 0,
770 WINED3D_DECL_USAGE_BLEND_WEIGHT = 1,
771 WINED3D_DECL_USAGE_BLEND_INDICES = 2,
772 WINED3D_DECL_USAGE_NORMAL = 3,
773 WINED3D_DECL_USAGE_PSIZE = 4,
774 WINED3D_DECL_USAGE_TEXCOORD = 5,
775 WINED3D_DECL_USAGE_TANGENT = 6,
776 WINED3D_DECL_USAGE_BINORMAL = 7,
777 WINED3D_DECL_USAGE_TESS_FACTOR = 8,
778 WINED3D_DECL_USAGE_POSITIONT = 9,
779 WINED3D_DECL_USAGE_COLOR = 10,
780 WINED3D_DECL_USAGE_FOG = 11,
781 WINED3D_DECL_USAGE_DEPTH = 12,
782 WINED3D_DECL_USAGE_SAMPLE = 13
783 };
784
785 enum wined3d_sysval_semantic
786 {
787 WINED3D_SV_POSITION = 1,
788 WINED3D_SV_CLIP_DISTANCE = 2,
789 WINED3D_SV_CULL_DISTANCE = 3,
790 WINED3D_SV_RENDER_TARGET_ARRAY_INDEX = 4,
791 WINED3D_SV_VIEWPORT_ARRAY_INDEX = 5,
792 WINED3D_SV_VERTEX_ID = 6,
793 WINED3D_SV_PRIMITIVE_ID = 7,
794 WINED3D_SV_INSTANCE_ID = 8,
795 WINED3D_SV_IS_FRONT_FACE = 9,
796 WINED3D_SV_SAMPLE_INDEX = 10,
797 WINED3D_SV_TESS_FACTOR_QUADEDGE = 11,
798 WINED3D_SV_TESS_FACTOR_QUADINT = 12,
799 WINED3D_SV_TESS_FACTOR_TRIEDGE = 13,
800 WINED3D_SV_TESS_FACTOR_TRIINT = 14,
801 WINED3D_SV_TESS_FACTOR_LINEDET = 15,
802 WINED3D_SV_TESS_FACTOR_LINEDEN = 16,
803 };
804
805 enum wined3d_component_type
806 {
807 WINED3D_TYPE_UNKNOWN = 0,
808 WINED3D_TYPE_UINT = 1,
809 WINED3D_TYPE_INT = 2,
810 WINED3D_TYPE_FLOAT = 3,
811 };
812
813 enum wined3d_scanline_ordering
814 {
815 WINED3D_SCANLINE_ORDERING_UNKNOWN = 0,
816 WINED3D_SCANLINE_ORDERING_PROGRESSIVE = 1,
817 WINED3D_SCANLINE_ORDERING_INTERLACED = 2,
818 };
819
820 enum wined3d_display_rotation
821 {
822 WINED3D_DISPLAY_ROTATION_UNSPECIFIED = 0,
823 WINED3D_DISPLAY_ROTATION_0 = 1,
824 WINED3D_DISPLAY_ROTATION_90 = 2,
825 WINED3D_DISPLAY_ROTATION_180 = 3,
826 WINED3D_DISPLAY_ROTATION_270 = 4,
827 };
828
829 enum wined3d_shader_byte_code_format
830 {
831 WINED3D_SHADER_BYTE_CODE_FORMAT_SM1 = 0,
832 WINED3D_SHADER_BYTE_CODE_FORMAT_SM4 = 1,
833 };
834
835 enum wined3d_format_support
836 {
837 WINED3D_FORMAT_SUPPORT_BUFFER = 0x0000001,
838 WINED3D_FORMAT_SUPPORT_IA_VERTEX_BUFFER = 0x0000002,
839 WINED3D_FORMAT_SUPPORT_IA_INDEX_BUFFER = 0x0000004,
840 WINED3D_FORMAT_SUPPORT_SO_BUFFER = 0x0000008,
841 WINED3D_FORMAT_SUPPORT_TEXTURE1D = 0x0000010,
842 WINED3D_FORMAT_SUPPORT_TEXTURE2D = 0x0000020,
843 WINED3D_FORMAT_SUPPORT_TEXTURE3D = 0x0000040,
844 WINED3D_FORMAT_SUPPORT_TEXTURECUBE = 0x0000080,
845 WINED3D_FORMAT_SUPPORT_SHADER_LOAD = 0x0000100,
846 WINED3D_FORMAT_SUPPORT_SHADER_SAMPLE = 0x0000200,
847 WINED3D_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x0000400,
848 WINED3D_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT = 0x0000800,
849 WINED3D_FORMAT_SUPPORT_MIP = 0x0001000,
850 WINED3D_FORMAT_SUPPORT_MIP_AUTOGEN = 0x0002000,
851 WINED3D_FORMAT_SUPPORT_RENDER_TARGET = 0x0004000,
852 WINED3D_FORMAT_SUPPORT_BLENDABLE = 0x0008000,
853 WINED3D_FORMAT_SUPPORT_DEPTH_STENCIL = 0x0010000,
854 WINED3D_FORMAT_SUPPORT_CPU_LOCKABLE = 0x0020000,
855 WINED3D_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE = 0x0040000,
856 WINED3D_FORMAT_SUPPORT_DISPLAY = 0x0080000,
857 WINED3D_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT = 0x0100000,
858 WINED3D_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x0200000,
859 WINED3D_FORMAT_SUPPORT_MULTISAMPLE_LOAD = 0x0400000,
860 WINED3D_FORMAT_SUPPORT_SHADER_GATHER = 0x0800000,
861 WINED3D_FORMAT_SUPPORT_BACK_BUFFER_CAST = 0x1000000,
862 WINED3D_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW = 0x2000000,
863 WINED3D_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON = 0x4000000,
864 };
865
866 #define WINED3DCOLORWRITEENABLE_RED (1u << 0)
867 #define WINED3DCOLORWRITEENABLE_GREEN (1u << 1)
868 #define WINED3DCOLORWRITEENABLE_BLUE (1u << 2)
869 #define WINED3DCOLORWRITEENABLE_ALPHA (1u << 3)
870
871 #define WINED3DADAPTER_DEFAULT 0
872 #define WINED3DENUM_NO_WHQL_LEVEL 2
873
874 #define WINED3DTSS_TCI_PASSTHRU 0x00000
875 #define WINED3DTSS_TCI_CAMERASPACENORMAL 0x10000
876 #define WINED3DTSS_TCI_CAMERASPACEPOSITION 0x20000
877 #define WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
878 #define WINED3DTSS_TCI_SPHEREMAP 0x40000
879
880 #define WINED3DTA_SELECTMASK 0x0000000f
881 #define WINED3DTA_DIFFUSE 0x00000000
882 #define WINED3DTA_CURRENT 0x00000001
883 #define WINED3DTA_TEXTURE 0x00000002
884 #define WINED3DTA_TFACTOR 0x00000003
885 #define WINED3DTA_SPECULAR 0x00000004
886 #define WINED3DTA_TEMP 0x00000005
887 #define WINED3DTA_CONSTANT 0x00000006
888 #define WINED3DTA_COMPLEMENT 0x00000010
889 #define WINED3DTA_ALPHAREPLICATE 0x00000020
890
891 #define WINED3D_SWAPCHAIN_LOCKABLE_BACKBUFFER 0x00000001u
892 #define WINED3D_SWAPCHAIN_DISCARD_DEPTHSTENCIL 0x00000002u
893 #define WINED3D_SWAPCHAIN_DEVICECLIP 0x00000004u
894 #define WINED3D_SWAPCHAIN_VIDEO 0x00000010u
895 #define WINED3D_SWAPCHAIN_NOAUTOROTATE 0x00000020u
896 #define WINED3D_SWAPCHAIN_UNPRUNEDMODE 0x00000040u
897 #define WINED3D_SWAPCHAIN_ALLOW_MODE_SWITCH 0x00001000u
898 #define WINED3D_SWAPCHAIN_USE_CLOSEST_MATCHING_MODE 0x00002000u
899 #define WINED3D_SWAPCHAIN_RESTORE_WINDOW_RECT 0x00004000u
900 #define WINED3D_SWAPCHAIN_GDI_COMPATIBLE 0x00008000u
901
902 #define WINED3DDP_MAXTEXCOORD 8
903
904 #define WINED3D_BIND_VERTEX_BUFFER 0x00000001
905 #define WINED3D_BIND_INDEX_BUFFER 0x00000002
906 #define WINED3D_BIND_CONSTANT_BUFFER 0x00000004
907 #define WINED3D_BIND_SHADER_RESOURCE 0x00000008
908 #define WINED3D_BIND_STREAM_OUTPUT 0x00000010
909 #define WINED3D_BIND_RENDER_TARGET 0x00000020
910 #define WINED3D_BIND_DEPTH_STENCIL 0x00000040
911 #define WINED3D_BIND_UNORDERED_ACCESS 0x00000080
912
913 #define WINED3DUSAGE_RENDERTARGET 0x00000001
914 #define WINED3DUSAGE_DEPTHSTENCIL 0x00000002
915 #define WINED3DUSAGE_WRITEONLY 0x00000008
916 #define WINED3DUSAGE_SOFTWAREPROCESSING 0x00000010
917 #define WINED3DUSAGE_DONOTCLIP 0x00000020
918 #define WINED3DUSAGE_POINTS 0x00000040
919 #define WINED3DUSAGE_RTPATCHES 0x00000080
920 #define WINED3DUSAGE_NPATCHES 0x00000100
921 #define WINED3DUSAGE_DYNAMIC 0x00000200
922 #define WINED3DUSAGE_AUTOGENMIPMAP 0x00000400
923 #define WINED3DUSAGE_RESTRICTED_CONTENT 0x00000800
924 #define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER 0x00001000
925 #define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE 0x00002000
926 #define WINED3DUSAGE_DMAP 0x00004000
927 #define WINED3DUSAGE_TEXTAPI 0x10000000
928 #define WINED3DUSAGE_MASK 0x10007fff
929
930 #define WINED3DUSAGE_PRIVATE 0x00400000
931 #define WINED3DUSAGE_LEGACY_CUBEMAP 0x00800000
932 #define WINED3DUSAGE_TEXTURE 0x01000000
933 #define WINED3DUSAGE_OWNDC 0x02000000
934 #define WINED3DUSAGE_STATICDECL 0x04000000
935 #define WINED3DUSAGE_OVERLAY 0x08000000
936
937 #define WINED3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000
938 #define WINED3DUSAGE_QUERY_FILTER 0x00020000
939 #define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000
940 #define WINED3DUSAGE_QUERY_SRGBREAD 0x00010000
941 #define WINED3DUSAGE_QUERY_SRGBWRITE 0x00040000
942 #define WINED3DUSAGE_QUERY_VERTEXTEXTURE 0x00100000
943 #define WINED3DUSAGE_QUERY_WRAPANDMIP 0x00200000
944 #define WINED3DUSAGE_QUERY_MASK 0x003f8000
945
946 #define WINED3D_MAP_READONLY 0x0010
947 #define WINED3D_MAP_NOSYSLOCK 0x0800
948 #define WINED3D_MAP_NOOVERWRITE 0x1000
949 #define WINED3D_MAP_DISCARD 0x2000
950 #define WINED3D_MAP_DONOTWAIT 0x4000
951 #define WINED3D_MAP_NO_DIRTY_UPDATE 0x8000
952
953 #define WINED3DPRESENT_RATE_DEFAULT 0x00000000
954
955 #define WINED3DPRESENT_INTERVAL_DEFAULT 0x00000000
956 #define WINED3DPRESENT_INTERVAL_ONE 0x00000001
957 #define WINED3DPRESENT_INTERVAL_TWO 0x00000002
958 #define WINED3DPRESENT_INTERVAL_THREE 0x00000004
959 #define WINED3DPRESENT_INTERVAL_FOUR 0x00000008
960 #define WINED3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
961
962 #define WINED3DMAXUSERCLIPPLANES 32
963 #define WINED3DCLIPPLANE0 (1u << 0)
964 #define WINED3DCLIPPLANE1 (1u << 1)
965 #define WINED3DCLIPPLANE2 (1u << 2)
966 #define WINED3DCLIPPLANE3 (1u << 3)
967 #define WINED3DCLIPPLANE4 (1u << 4)
968 #define WINED3DCLIPPLANE5 (1u << 5)
969
970 /* FVF (Flexible Vertex Format) codes */
971 #define WINED3DFVF_RESERVED0 0x0001
972 #define WINED3DFVF_POSITION_MASK 0x400e
973 #define WINED3DFVF_XYZ 0x0002
974 #define WINED3DFVF_XYZRHW 0x0004
975 #define WINED3DFVF_XYZB1 0x0006
976 #define WINED3DFVF_XYZB2 0x0008
977 #define WINED3DFVF_XYZB3 0x000a
978 #define WINED3DFVF_XYZB4 0x000c
979 #define WINED3DFVF_XYZB5 0x000e
980 #define WINED3DFVF_XYZW 0x4002
981 #define WINED3DFVF_NORMAL 0x0010
982 #define WINED3DFVF_PSIZE 0x0020
983 #define WINED3DFVF_DIFFUSE 0x0040
984 #define WINED3DFVF_SPECULAR 0x0080
985 #define WINED3DFVF_TEXCOUNT_MASK 0x0f00
986 #define WINED3DFVF_TEXCOUNT_SHIFT 8
987 #define WINED3DFVF_TEX0 0x0000
988 #define WINED3DFVF_TEX1 0x0100
989 #define WINED3DFVF_TEX2 0x0200
990 #define WINED3DFVF_TEX3 0x0300
991 #define WINED3DFVF_TEX4 0x0400
992 #define WINED3DFVF_TEX5 0x0500
993 #define WINED3DFVF_TEX6 0x0600
994 #define WINED3DFVF_TEX7 0x0700
995 #define WINED3DFVF_TEX8 0x0800
996 #define WINED3DFVF_LASTBETA_UBYTE4 0x1000
997 #define WINED3DFVF_LASTBETA_D3DCOLOR 0x8000
998 #define WINED3DFVF_RESERVED2 0x6000
999
1000 #define WINED3DFVF_TEXTUREFORMAT1 3u
1001 #define WINED3DFVF_TEXTUREFORMAT2 0u
1002 #define WINED3DFVF_TEXTUREFORMAT3 1u
1003 #define WINED3DFVF_TEXTUREFORMAT4 2u
1004 #define WINED3DFVF_TEXCOORDSIZE1(idx) (WINED3DFVF_TEXTUREFORMAT1 << (idx * 2 + 16))
1005 #define WINED3DFVF_TEXCOORDSIZE2(idx) (WINED3DFVF_TEXTUREFORMAT2 << (idx * 2 + 16))
1006 #define WINED3DFVF_TEXCOORDSIZE3(idx) (WINED3DFVF_TEXTUREFORMAT3 << (idx * 2 + 16))
1007 #define WINED3DFVF_TEXCOORDSIZE4(idx) (WINED3DFVF_TEXTUREFORMAT4 << (idx * 2 + 16))
1008
1009 /* Clear flags */
1010 #define WINED3DCLEAR_TARGET 0x00000001
1011 #define WINED3DCLEAR_ZBUFFER 0x00000002
1012 #define WINED3DCLEAR_STENCIL 0x00000004
1013
1014 /* Stream source flags */
1015 #define WINED3DSTREAMSOURCE_INDEXEDDATA (1u << 30)
1016 #define WINED3DSTREAMSOURCE_INSTANCEDATA (2u << 30)
1017
1018 /* SetPrivateData flags */
1019 #define WINED3DSPD_IUNKNOWN 0x00000001
1020
1021 /* IWineD3D::CreateDevice behaviour flags */
1022 #define WINED3DCREATE_FPU_PRESERVE 0x00000002
1023 #define WINED3DCREATE_PUREDEVICE 0x00000010
1024 #define WINED3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020
1025 #define WINED3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040
1026 #define WINED3DCREATE_MIXED_VERTEXPROCESSING 0x00000080
1027 #define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100
1028 #define WINED3DCREATE_ADAPTERGROUP_DEVICE 0x00000200
1029 #define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX 0x00000400
1030 #define WINED3DCREATE_NOWINDOWCHANGES 0x00000800
1031 #define WINED3DCREATE_DISABLE_PSGP_THREADING 0x00002000
1032 #define WINED3DCREATE_ENABLE_PRESENTSTATS 0x00004000
1033 #define WINED3DCREATE_DISABLE_PRINTSCREEN 0x00008000
1034 #define WINED3DCREATE_SCREENSAVER 0x10000000
1035
1036 /* VTF defines */
1037 #define WINED3DDMAPSAMPLER 0x100
1038 #define WINED3DVERTEXTEXTURESAMPLER0 (WINED3DDMAPSAMPLER + 1)
1039 #define WINED3DVERTEXTEXTURESAMPLER1 (WINED3DDMAPSAMPLER + 2)
1040 #define WINED3DVERTEXTEXTURESAMPLER2 (WINED3DDMAPSAMPLER + 3)
1041 #define WINED3DVERTEXTEXTURESAMPLER3 (WINED3DDMAPSAMPLER + 4)
1042
1043 #define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
1044 #define WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080
1045 #define WINED3DCAPS3_COPY_TO_VIDMEM 0x00000100
1046 #define WINED3DCAPS3_COPY_TO_SYSTEMMEM 0x00000200
1047 #define WINED3DCAPS3_RESERVED 0x8000001f
1048
1049 #define WINED3DDEVCAPS2_STREAMOFFSET 0x00000001
1050 #define WINED3DDEVCAPS2_DMAPNPATCH 0x00000002
1051 #define WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x00000004
1052 #define WINED3DDEVCAPS2_ADAPTIVETESSNPATCH 0x00000008
1053 #define WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x00000010
1054 #define WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x00000020
1055 #define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040
1056
1057 #define WINED3DDTCAPS_UBYTE4 0x00000001
1058 #define WINED3DDTCAPS_UBYTE4N 0x00000002
1059 #define WINED3DDTCAPS_SHORT2N 0x00000004
1060 #define WINED3DDTCAPS_SHORT4N 0x00000008
1061 #define WINED3DDTCAPS_USHORT2N 0x00000010
1062 #define WINED3DDTCAPS_USHORT4N 0x00000020
1063 #define WINED3DDTCAPS_UDEC3 0x00000040
1064 #define WINED3DDTCAPS_DEC3N 0x00000080
1065 #define WINED3DDTCAPS_FLOAT16_2 0x00000100
1066 #define WINED3DDTCAPS_FLOAT16_4 0x00000200
1067
1068 #define WINED3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffff
1069 #define WINED3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
1070 #define WINED3DFVFCAPS_PSIZE 0x00100000
1071
1072 #define WINED3DLINECAPS_TEXTURE 0x00000001
1073 #define WINED3DLINECAPS_ZTEST 0x00000002
1074 #define WINED3DLINECAPS_BLEND 0x00000004
1075 #define WINED3DLINECAPS_ALPHACMP 0x00000008
1076 #define WINED3DLINECAPS_FOG 0x00000010
1077 #define WINED3DLINECAPS_ANTIALIAS 0x00000020
1078
1079 #define WINED3DMAX30SHADERINSTRUCTIONS 32768
1080 #define WINED3DMIN30SHADERINSTRUCTIONS 512
1081
1082 #define WINED3DPBLENDCAPS_ZERO 0x00000001
1083 #define WINED3DPBLENDCAPS_ONE 0x00000002
1084 #define WINED3DPBLENDCAPS_SRCCOLOR 0x00000004
1085 #define WINED3DPBLENDCAPS_INVSRCCOLOR 0x00000008
1086 #define WINED3DPBLENDCAPS_SRCALPHA 0x00000010
1087 #define WINED3DPBLENDCAPS_INVSRCALPHA 0x00000020
1088 #define WINED3DPBLENDCAPS_DESTALPHA 0x00000040
1089 #define WINED3DPBLENDCAPS_INVDESTALPHA 0x00000080
1090 #define WINED3DPBLENDCAPS_DESTCOLOR 0x00000100
1091 #define WINED3DPBLENDCAPS_INVDESTCOLOR 0x00000200
1092 #define WINED3DPBLENDCAPS_SRCALPHASAT 0x00000400
1093 #define WINED3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
1094 #define WINED3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
1095 #define WINED3DPBLENDCAPS_BLENDFACTOR 0x00002000
1096
1097 #define WINED3DPCMPCAPS_NEVER 0x00000001
1098 #define WINED3DPCMPCAPS_LESS 0x00000002
1099 #define WINED3DPCMPCAPS_EQUAL 0x00000004
1100 #define WINED3DPCMPCAPS_LESSEQUAL 0x00000008
1101 #define WINED3DPCMPCAPS_GREATER 0x00000010
1102 #define WINED3DPCMPCAPS_NOTEQUAL 0x00000020
1103 #define WINED3DPCMPCAPS_GREATEREQUAL 0x00000040
1104 #define WINED3DPCMPCAPS_ALWAYS 0x00000080
1105
1106 #define WINED3DPMISCCAPS_MASKZ 0x00000002
1107 #define WINED3DPMISCCAPS_LINEPATTERNREP 0x00000004
1108 #define WINED3DPMISCCAPS_CULLNONE 0x00000010
1109 #define WINED3DPMISCCAPS_CULLCW 0x00000020
1110 #define WINED3DPMISCCAPS_CULLCCW 0x00000040
1111 #define WINED3DPMISCCAPS_COLORWRITEENABLE 0x00000080
1112 #define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100
1113 #define WINED3DPMISCCAPS_CLIPTLVERTS 0x00000200
1114 #define WINED3DPMISCCAPS_TSSARGTEMP 0x00000400
1115 #define WINED3DPMISCCAPS_BLENDOP 0x00000800
1116 #define WINED3DPMISCCAPS_NULLREFERENCE 0x00001000
1117 #define WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x00004000
1118 #define WINED3DPMISCCAPS_PERSTAGECONSTANT 0x00008000
1119 #define WINED3DPMISCCAPS_FOGANDSPECULARALPHA 0x00010000
1120 #define WINED3DPMISCCAPS_SEPARATEALPHABLEND 0x00020000
1121 #define WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x00040000
1122 #define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000
1123 #define WINED3DPMISCCAPS_FOGVERTEXCLAMPED 0x00100000
1124 #define WINED3DPMISCCAPS_POSTBLENDSRGBCONVERT 0x00200000
1125
1126 #define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
1127 #define WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
1128 #define WINED3DPS20_MAX_NUMTEMPS 32
1129 #define WINED3DPS20_MIN_NUMTEMPS 12
1130 #define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
1131 #define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
1132 #define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
1133 #define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
1134
1135 #define WINED3DPS20CAPS_ARBITRARYSWIZZLE 0x00000001
1136 #define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS 0x00000002
1137 #define WINED3DPS20CAPS_PREDICATION 0x00000004
1138 #define WINED3DPS20CAPS_NODEPENDENTREADLIMIT 0x00000008
1139 #define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT 0x00000010
1140
1141 #define WINED3DPTADDRESSCAPS_WRAP 0x00000001
1142 #define WINED3DPTADDRESSCAPS_MIRROR 0x00000002
1143 #define WINED3DPTADDRESSCAPS_CLAMP 0x00000004
1144 #define WINED3DPTADDRESSCAPS_BORDER 0x00000008
1145 #define WINED3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
1146 #define WINED3DPTADDRESSCAPS_MIRRORONCE 0x00000020
1147
1148 #define WINED3DSTENCILCAPS_KEEP 0x00000001
1149 #define WINED3DSTENCILCAPS_ZERO 0x00000002
1150 #define WINED3DSTENCILCAPS_REPLACE 0x00000004
1151 #define WINED3DSTENCILCAPS_INCRSAT 0x00000008
1152 #define WINED3DSTENCILCAPS_DECRSAT 0x00000010
1153 #define WINED3DSTENCILCAPS_INVERT 0x00000020
1154 #define WINED3DSTENCILCAPS_INCR 0x00000040
1155 #define WINED3DSTENCILCAPS_DECR 0x00000080
1156 #define WINED3DSTENCILCAPS_TWOSIDED 0x00000100
1157
1158 #define WINED3DTEXOPCAPS_DISABLE 0x00000001
1159 #define WINED3DTEXOPCAPS_SELECTARG1 0x00000002
1160 #define WINED3DTEXOPCAPS_SELECTARG2 0x00000004
1161 #define WINED3DTEXOPCAPS_MODULATE 0x00000008
1162 #define WINED3DTEXOPCAPS_MODULATE2X 0x00000010
1163 #define WINED3DTEXOPCAPS_MODULATE4X 0x00000020
1164 #define WINED3DTEXOPCAPS_ADD 0x00000040
1165 #define WINED3DTEXOPCAPS_ADDSIGNED 0x00000080
1166 #define WINED3DTEXOPCAPS_ADDSIGNED2X 0x00000100
1167 #define WINED3DTEXOPCAPS_SUBTRACT 0x00000200
1168 #define WINED3DTEXOPCAPS_ADDSMOOTH 0x00000400
1169 #define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
1170 #define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
1171 #define WINED3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
1172 #define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
1173 #define WINED3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
1174 #define WINED3DTEXOPCAPS_PREMODULATE 0x00010000
1175 #define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
1176 #define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
1177 #define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
1178 #define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
1179 #define WINED3DTEXOPCAPS_BUMPENVMAP 0x00200000
1180 #define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
1181 #define WINED3DTEXOPCAPS_DOTPRODUCT3 0x00800000
1182 #define WINED3DTEXOPCAPS_MULTIPLYADD 0x01000000
1183 #define WINED3DTEXOPCAPS_LERP 0x02000000
1184
1185 #define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
1186 #define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
1187 #define WINED3DVS20_MAX_NUMTEMPS 32
1188 #define WINED3DVS20_MIN_NUMTEMPS 12
1189 #define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
1190 #define WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
1191
1192 #define WINED3DVS20CAPS_PREDICATION 0x00000001
1193
1194 #define WINED3DCAPS2_NO2DDURING3DSCENE 0x00000002
1195 #define WINED3DCAPS2_FULLSCREENGAMMA 0x00020000
1196 #define WINED3DCAPS2_CANRENDERWINDOWED 0x00080000
1197 #define WINED3DCAPS2_CANCALIBRATEGAMMA 0x00100000
1198 #define WINED3DCAPS2_RESERVED 0x02000000
1199 #define WINED3DCAPS2_CANMANAGERESOURCE 0x10000000
1200 #define WINED3DCAPS2_DYNAMICTEXTURES 0x20000000
1201 #define WINED3DCAPS2_CANAUTOGENMIPMAP 0x40000000
1202
1203 #define WINED3DPRASTERCAPS_DITHER 0x00000001
1204 #define WINED3DPRASTERCAPS_ROP2 0x00000002
1205 #define WINED3DPRASTERCAPS_XOR 0x00000004
1206 #define WINED3DPRASTERCAPS_PAT 0x00000008
1207 #define WINED3DPRASTERCAPS_ZTEST 0x00000010
1208 #define WINED3DPRASTERCAPS_SUBPIXEL 0x00000020
1209 #define WINED3DPRASTERCAPS_SUBPIXELX 0x00000040
1210 #define WINED3DPRASTERCAPS_FOGVERTEX 0x00000080
1211 #define WINED3DPRASTERCAPS_FOGTABLE 0x00000100
1212 #define WINED3DPRASTERCAPS_STIPPLE 0x00000200
1213 #define WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400
1214 #define WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800
1215 #define WINED3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
1216 #define WINED3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
1217 #define WINED3DPRASTERCAPS_ZBIAS 0x00004000
1218 #define WINED3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
1219 #define WINED3DPRASTERCAPS_FOGRANGE 0x00010000
1220 #define WINED3DPRASTERCAPS_ANISOTROPY 0x00020000
1221 #define WINED3DPRASTERCAPS_WBUFFER 0x00040000
1222 #define WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
1223 #define WINED3DPRASTERCAPS_WFOG 0x00100000
1224 #define WINED3DPRASTERCAPS_ZFOG 0x00200000
1225 #define WINED3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
1226 #define WINED3DPRASTERCAPS_SCISSORTEST 0x01000000
1227 #define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000
1228 #define WINED3DPRASTERCAPS_DEPTHBIAS 0x04000000
1229 #define WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x08000000
1230
1231 #define WINED3DPSHADECAPS_COLORFLATMONO 0x00000001
1232 #define WINED3DPSHADECAPS_COLORFLATRGB 0x00000002
1233 #define WINED3DPSHADECAPS_COLORGOURAUDMONO 0x00000004
1234 #define WINED3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
1235 #define WINED3DPSHADECAPS_COLORPHONGMONO 0x00000010
1236 #define WINED3DPSHADECAPS_COLORPHONGRGB 0x00000020
1237 #define WINED3DPSHADECAPS_SPECULARFLATMONO 0x00000040
1238 #define WINED3DPSHADECAPS_SPECULARFLATRGB 0x00000080
1239 #define WINED3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
1240 #define WINED3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
1241 #define WINED3DPSHADECAPS_SPECULARPHONGMONO 0x00000400
1242 #define WINED3DPSHADECAPS_SPECULARPHONGRGB 0x00000800
1243 #define WINED3DPSHADECAPS_ALPHAFLATBLEND 0x00001000
1244 #define WINED3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000
1245 #define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
1246 #define WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
1247 #define WINED3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000
1248 #define WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000
1249 #define WINED3DPSHADECAPS_FOGFLAT 0x00040000
1250 #define WINED3DPSHADECAPS_FOGGOURAUD 0x00080000
1251 #define WINED3DPSHADECAPS_FOGPHONG 0x00100000
1252
1253 #define WINED3DPTEXTURECAPS_PERSPECTIVE 0x00000001
1254 #define WINED3DPTEXTURECAPS_POW2 0x00000002
1255 #define WINED3DPTEXTURECAPS_ALPHA 0x00000004
1256 #define WINED3DPTEXTURECAPS_TRANSPARENCY 0x00000008
1257 #define WINED3DPTEXTURECAPS_BORDER 0x00000010
1258 #define WINED3DPTEXTURECAPS_SQUAREONLY 0x00000020
1259 #define WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
1260 #define WINED3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
1261 #define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100
1262 #define WINED3DPTEXTURECAPS_PROJECTED 0x00000400
1263 #define WINED3DPTEXTURECAPS_CUBEMAP 0x00000800
1264 #define WINED3DPTEXTURECAPS_COLORKEYBLEND 0x00001000
1265 #define WINED3DPTEXTURECAPS_VOLUMEMAP 0x00002000
1266 #define WINED3DPTEXTURECAPS_MIPMAP 0x00004000
1267 #define WINED3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000
1268 #define WINED3DPTEXTURECAPS_MIPCUBEMAP 0x00010000
1269 #define WINED3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000
1270 #define WINED3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000
1271 #define WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x00200000
1272
1273 #define WINED3DPTFILTERCAPS_NEAREST 0x00000001
1274 #define WINED3DPTFILTERCAPS_LINEAR 0x00000002
1275 #define WINED3DPTFILTERCAPS_MIPNEAREST 0x00000004
1276 #define WINED3DPTFILTERCAPS_MIPLINEAR 0x00000008
1277 #define WINED3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010
1278 #define WINED3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020
1279 #define WINED3DPTFILTERCAPS_MINFPOINT 0x00000100
1280 #define WINED3DPTFILTERCAPS_MINFLINEAR 0x00000200
1281 #define WINED3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
1282 #define WINED3DPTFILTERCAPS_MIPFPOINT 0x00010000
1283 #define WINED3DPTFILTERCAPS_MIPFLINEAR 0x00020000
1284 #define WINED3DPTFILTERCAPS_MAGFPOINT 0x01000000
1285 #define WINED3DPTFILTERCAPS_MAGFLINEAR 0x02000000
1286 #define WINED3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
1287 #define WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
1288 #define WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000
1289
1290 #define WINED3DVTXPCAPS_TEXGEN 0x00000001
1291 #define WINED3DVTXPCAPS_MATERIALSOURCE7 0x00000002
1292 #define WINED3DVTXPCAPS_VERTEXFOG 0x00000004
1293 #define WINED3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
1294 #define WINED3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
1295 #define WINED3DVTXPCAPS_LOCALVIEWER 0x00000020
1296 #define WINED3DVTXPCAPS_TWEENING 0x00000040
1297 #define WINED3DVTXPCAPS_TEXGEN_SPHEREMAP 0x00000100
1298 #define WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200
1299
1300 #define WINED3DCURSORCAPS_COLOR 0x00000001
1301 #define WINED3DCURSORCAPS_LOWRES 0x00000002
1302
1303 #define WINED3DDEVCAPS_FLOATTLVERTEX 0x00000001
1304 #define WINED3DDEVCAPS_SORTINCREASINGZ 0x00000002
1305 #define WINED3DDEVCAPS_SORTDECREASINGZ 0X00000004
1306 #define WINED3DDEVCAPS_SORTEXACT 0x00000008
1307 #define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
1308 #define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
1309 #define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
1310 #define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
1311 #define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
1312 #define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
1313 #define WINED3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
1314 #define WINED3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
1315 #define WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
1316 #define WINED3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
1317 #define WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
1318 #define WINED3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
1319 #define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
1320 #define WINED3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
1321 #define WINED3DDEVCAPS_HWRASTERIZATION 0x00080000
1322 #define WINED3DDEVCAPS_PUREDEVICE 0x00100000
1323 #define WINED3DDEVCAPS_QUINTICRTPATCHES 0x00200000
1324 #define WINED3DDEVCAPS_RTPATCHES 0x00400000
1325 #define WINED3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000
1326 #define WINED3DDEVCAPS_NPATCHES 0x01000000
1327
1328 #define WINED3D_LEGACY_DEPTH_BIAS 0x00000001
1329 #define WINED3D_NO3D 0x00000002
1330 #define WINED3D_VIDMEM_ACCOUNTING 0x00000004
1331 #define WINED3D_PRESENT_CONVERSION 0x00000008
1332 #define WINED3D_RESTORE_MODE_ON_ACTIVATE 0x00000010
1333 #define WINED3D_FOCUS_MESSAGES 0x00000020
1334 #define WINED3D_HANDLE_RESTORE 0x00000040
1335 #define WINED3D_PIXEL_CENTER_INTEGER 0x00000080
1336 #define WINED3D_LEGACY_FFP_LIGHTING 0x00000100
1337 #define WINED3D_SRGB_READ_WRITE_CONTROL 0x00000200
1338 #define WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR 0x00000400
1339 #define WINED3D_NO_PRIMITIVE_RESTART 0x00000800
1340 #define WINED3D_LEGACY_CUBEMAP_FILTERING 0x00001000
1341
1342 #define WINED3D_RESZ_CODE 0x7fa05000
1343
1344 #define WINED3D_CKEY_DST_BLT 0x00000002
1345 #define WINED3D_CKEY_DST_OVERLAY 0x00000004
1346 #define WINED3D_CKEY_SRC_BLT 0x00000008
1347 #define WINED3D_CKEY_SRC_OVERLAY 0x00000010
1348
1349 /* dwDDFX */
1350 /* arithmetic stretching along y axis */
1351 #define WINEDDBLTFX_ARITHSTRETCHY 0x00000001
1352 /* mirror on y axis */
1353 #define WINEDDBLTFX_MIRRORLEFTRIGHT 0x00000002
1354 /* mirror on x axis */
1355 #define WINEDDBLTFX_MIRRORUPDOWN 0x00000004
1356 /* do not tear */
1357 #define WINEDDBLTFX_NOTEARING 0x00000008
1358 /* 180 degrees clockwise rotation */
1359 #define WINEDDBLTFX_ROTATE180 0x00000010
1360 /* 270 degrees clockwise rotation */
1361 #define WINEDDBLTFX_ROTATE270 0x00000020
1362 /* 90 degrees clockwise rotation */
1363 #define WINEDDBLTFX_ROTATE90 0x00000040
1364 /* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
1365 #define WINEDDBLTFX_ZBUFFERRANGE 0x00000080
1366 /* add dwZBufferBaseDest to every source z value before compare */
1367 #define WINEDDBLTFX_ZBUFFERBASEDEST 0x00000100
1368
1369 #define WINED3D_BLT_FX 0x00000800
1370 #define WINED3D_BLT_DST_CKEY 0x00002000
1371 #define WINED3D_BLT_DST_CKEY_OVERRIDE 0x00004000
1372 #define WINED3D_BLT_SRC_CKEY 0x00008000
1373 #define WINED3D_BLT_SRC_CKEY_OVERRIDE 0x00010000
1374 #define WINED3D_BLT_WAIT 0x01000000
1375 #define WINED3D_BLT_DO_NOT_WAIT 0x08000000
1376 #define WINED3D_BLT_SYNCHRONOUS 0x40000000
1377 #define WINED3D_BLT_ALPHA_TEST 0x80000000
1378 #define WINED3D_BLT_MASK 0x0901e800
1379
1380 /* dwFlags for GetBltStatus */
1381 #define WINEDDGBS_CANBLT 0x00000001
1382 #define WINEDDGBS_ISBLTDONE 0x00000002
1383
1384 /* dwFlags for GetFlipStatus */
1385 #define WINEDDGFS_CANFLIP 0x00000001
1386 #define WINEDDGFS_ISFLIPDONE 0x00000002
1387
1388 /* dwFlags for Flip */
1389 #define WINEDDFLIP_WAIT 0x00000001
1390 #define WINEDDFLIP_EVEN 0x00000002 /* only valid for overlay */
1391 #define WINEDDFLIP_ODD 0x00000004 /* only valid for overlay */
1392 #define WINEDDFLIP_NOVSYNC 0x00000008
1393 #define WINEDDFLIP_STEREO 0x00000010
1394 #define WINEDDFLIP_DONOTWAIT 0x00000020
1395 #define WINEDDFLIP_INTERVAL2 0x02000000
1396 #define WINEDDFLIP_INTERVAL3 0x03000000
1397 #define WINEDDFLIP_INTERVAL4 0x04000000
1398
1399 #define WINEDDOVER_ALPHADEST 0x00000001
1400 #define WINEDDOVER_ALPHADESTCONSTOVERRIDE 0x00000002
1401 #define WINEDDOVER_ALPHADESTNEG 0x00000004
1402 #define WINEDDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008
1403 #define WINEDDOVER_ALPHAEDGEBLEND 0x00000010
1404 #define WINEDDOVER_ALPHASRC 0x00000020
1405 #define WINEDDOVER_ALPHASRCCONSTOVERRIDE 0x00000040
1406 #define WINEDDOVER_ALPHASRCNEG 0x00000080
1407 #define WINEDDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100
1408 #define WINEDDOVER_HIDE 0x00000200
1409 #define WINEDDOVER_KEYDEST 0x00000400
1410 #define WINEDDOVER_KEYDESTOVERRIDE 0x00000800
1411 #define WINEDDOVER_KEYSRC 0x00001000
1412 #define WINEDDOVER_KEYSRCOVERRIDE 0x00002000
1413 #define WINEDDOVER_SHOW 0x00004000
1414 #define WINEDDOVER_ADDDIRTYRECT 0x00008000
1415 #define WINEDDOVER_REFRESHDIRTYRECTS 0x00010000
1416 #define WINEDDOVER_REFRESHALL 0x00020000
1417 #define WINEDDOVER_DDFX 0x00080000
1418 #define WINEDDOVER_AUTOFLIP 0x00100000
1419 #define WINEDDOVER_BOB 0x00200000
1420 #define WINEDDOVER_OVERRIDEBOBWEAVE 0x00400000
1421 #define WINEDDOVER_INTERLEAVED 0x00800000
1422
1423 /* DirectDraw Caps */
1424 #define WINEDDSCAPS_RESERVED1 0x00000001
1425 #define WINEDDSCAPS_ALPHA 0x00000002
1426 #define WINEDDSCAPS_BACKBUFFER 0x00000004
1427 #define WINEDDSCAPS_COMPLEX 0x00000008
1428 #define WINEDDSCAPS_FLIP 0x00000010
1429 #define WINEDDSCAPS_FRONTBUFFER 0x00000020
1430 #define WINEDDSCAPS_OFFSCREENPLAIN 0x00000040
1431 #define WINEDDSCAPS_OVERLAY 0x00000080
1432 #define WINEDDSCAPS_PALETTE 0x00000100
1433 #define WINEDDSCAPS_PRIMARYSURFACE 0x00000200
1434 #define WINEDDSCAPS_PRIMARYSURFACELEFT 0x00000400
1435 #define WINEDDSCAPS_SYSTEMMEMORY 0x00000800
1436 #define WINEDDSCAPS_TEXTURE 0x00001000
1437 #define WINEDDSCAPS_3DDEVICE 0x00002000
1438 #define WINEDDSCAPS_VIDEOMEMORY 0x00004000
1439 #define WINEDDSCAPS_VISIBLE 0x00008000
1440 #define WINEDDSCAPS_WRITEONLY 0x00010000
1441 #define WINEDDSCAPS_ZBUFFER 0x00020000
1442 #define WINEDDSCAPS_OWNDC 0x00040000
1443 #define WINEDDSCAPS_LIVEVIDEO 0x00080000
1444 #define WINEDDSCAPS_HWCODEC 0x00100000
1445 #define WINEDDSCAPS_MODEX 0x00200000
1446 #define WINEDDSCAPS_MIPMAP 0x00400000
1447 #define WINEDDSCAPS_RESERVED2 0x00800000
1448 #define WINEDDSCAPS_ALLOCONLOAD 0x04000000
1449 #define WINEDDSCAPS_VIDEOPORT 0x08000000
1450 #define WINEDDSCAPS_LOCALVIDMEM 0x10000000
1451 #define WINEDDSCAPS_NONLOCALVIDMEM 0x20000000
1452 #define WINEDDSCAPS_STANDARDVGAMODE 0x40000000
1453 #define WINEDDSCAPS_OPTIMIZED 0x80000000
1454
1455 #define WINEDDCKEYCAPS_DESTBLT 0x00000001
1456 #define WINEDDCKEYCAPS_DESTBLTCLRSPACE 0x00000002
1457 #define WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004
1458 #define WINEDDCKEYCAPS_DESTBLTYUV 0x00000008
1459 #define WINEDDCKEYCAPS_DESTOVERLAY 0x00000010
1460 #define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020
1461 #define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040
1462 #define WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080
1463 #define WINEDDCKEYCAPS_DESTOVERLAYYUV 0x00000100
1464 #define WINEDDCKEYCAPS_SRCBLT 0x00000200
1465 #define WINEDDCKEYCAPS_SRCBLTCLRSPACE 0x00000400
1466 #define WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800
1467 #define WINEDDCKEYCAPS_SRCBLTYUV 0x00001000
1468 #define WINEDDCKEYCAPS_SRCOVERLAY 0x00002000
1469 #define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000
1470 #define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000
1471 #define WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000
1472 #define WINEDDCKEYCAPS_SRCOVERLAYYUV 0x00020000
1473 #define WINEDDCKEYCAPS_NOCOSTOVERLAY 0x00040000
1474
1475 #define WINEDDFXCAPS_BLTALPHA 0x00000001
1476 #define WINEDDFXCAPS_OVERLAYALPHA 0x00000004
1477 #define WINEDDFXCAPS_BLTARITHSTRETCHYN 0x00000010
1478 #define WINEDDFXCAPS_BLTARITHSTRETCHY 0x00000020
1479 #define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040
1480 #define WINEDDFXCAPS_BLTMIRRORUPDOWN 0x00000080
1481 #define WINEDDFXCAPS_BLTROTATION 0x00000100
1482 #define WINEDDFXCAPS_BLTROTATION90 0x00000200
1483 #define WINEDDFXCAPS_BLTSHRINKX 0x00000400
1484 #define WINEDDFXCAPS_BLTSHRINKXN 0x00000800
1485 #define WINEDDFXCAPS_BLTSHRINKY 0x00001000
1486 #define WINEDDFXCAPS_BLTSHRINKYN 0x00002000
1487 #define WINEDDFXCAPS_BLTSTRETCHX 0x00004000
1488 #define WINEDDFXCAPS_BLTSTRETCHXN 0x00008000
1489 #define WINEDDFXCAPS_BLTSTRETCHY 0x00010000
1490 #define WINEDDFXCAPS_BLTSTRETCHYN 0x00020000
1491 #define WINEDDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000
1492 #define WINEDDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008
1493 #define WINEDDFXCAPS_OVERLAYSHRINKX 0x00080000
1494 #define WINEDDFXCAPS_OVERLAYSHRINKXN 0x00100000
1495 #define WINEDDFXCAPS_OVERLAYSHRINKY 0x00200000
1496 #define WINEDDFXCAPS_OVERLAYSHRINKYN 0x00400000
1497 #define WINEDDFXCAPS_OVERLAYSTRETCHX 0x00800000
1498 #define WINEDDFXCAPS_OVERLAYSTRETCHXN 0x01000000
1499 #define WINEDDFXCAPS_OVERLAYSTRETCHY 0x02000000
1500 #define WINEDDFXCAPS_OVERLAYSTRETCHYN 0x04000000
1501 #define WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000
1502 #define WINEDDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000
1503
1504 #define WINEDDCAPS_3D 0x00000001
1505 #define WINEDDCAPS_ALIGNBOUNDARYDEST 0x00000002
1506 #define WINEDDCAPS_ALIGNSIZEDEST 0x00000004
1507 #define WINEDDCAPS_ALIGNBOUNDARYSRC 0x00000008
1508 #define WINEDDCAPS_ALIGNSIZESRC 0x00000010
1509 #define WINEDDCAPS_ALIGNSTRIDE 0x00000020
1510 #define WINEDDCAPS_BLT 0x00000040
1511 #define WINEDDCAPS_BLTQUEUE 0x00000080
1512 #define WINEDDCAPS_BLTFOURCC 0x00000100
1513 #define WINEDDCAPS_BLTSTRETCH 0x00000200
1514 #define WINEDDCAPS_GDI 0x00000400
1515 #define WINEDDCAPS_OVERLAY 0x00000800
1516 #define WINEDDCAPS_OVERLAYCANTCLIP 0x00001000
1517 #define WINEDDCAPS_OVERLAYFOURCC 0x00002000
1518 #define WINEDDCAPS_OVERLAYSTRETCH 0x00004000
1519 #define WINEDDCAPS_PALETTE 0x00008000
1520 #define WINEDDCAPS_PALETTEVSYNC 0x00010000
1521 #define WINEDDCAPS_READSCANLINE 0x00020000
1522 #define WINEDDCAPS_STEREOVIEW 0x00040000
1523 #define WINEDDCAPS_VBI 0x00080000
1524 #define WINEDDCAPS_ZBLTS 0x00100000
1525 #define WINEDDCAPS_ZOVERLAYS 0x00200000
1526 #define WINEDDCAPS_COLORKEY 0x00400000
1527 #define WINEDDCAPS_ALPHA 0x00800000
1528 #define WINEDDCAPS_COLORKEYHWASSIST 0x01000000
1529 #define WINEDDCAPS_NOHARDWARE 0x02000000
1530 #define WINEDDCAPS_BLTCOLORFILL 0x04000000
1531 #define WINEDDCAPS_BANKSWITCHED 0x08000000
1532 #define WINEDDCAPS_BLTDEPTHFILL 0x10000000
1533 #define WINEDDCAPS_CANCLIP 0x20000000
1534 #define WINEDDCAPS_CANCLIPSTRETCHED 0x40000000
1535 #define WINEDDCAPS_CANBLTSYSMEM 0x80000000
1536
1537 #define WINEDDCAPS2_CERTIFIED 0x00000001
1538 #define WINEDDCAPS2_NO2DDURING3DSCENE 0x00000002
1539 #define WINEDDCAPS2_VIDEOPORT 0x00000004
1540 #define WINEDDCAPS2_AUTOFLIPOVERLAY 0x00000008
1541 #define WINEDDCAPS2_CANBOBINTERLEAVED 0x00000010
1542 #define WINEDDCAPS2_CANBOBNONINTERLEAVED 0x00000020
1543 #define WINEDDCAPS2_COLORCONTROLOVERLAY 0x00000040
1544 #define WINEDDCAPS2_COLORCONTROLPRIMARY 0x00000080
1545 #define WINEDDCAPS2_CANDROPZ16BIT 0x00000100
1546 #define WINEDDCAPS2_NONLOCALVIDMEM 0x00000200
1547 #define WINEDDCAPS2_NONLOCALVIDMEMCAPS 0x00000400
1548 #define WINEDDCAPS2_NOPAGELOCKREQUIRED 0x00000800
1549 #define WINEDDCAPS2_WIDESURFACES 0x00001000
1550 #define WINEDDCAPS2_CANFLIPODDEVEN 0x00002000
1551 #define WINEDDCAPS2_CANBOBHARDWARE 0x00004000
1552 #define WINEDDCAPS2_COPYFOURCC 0x00008000
1553 #define WINEDDCAPS2_PRIMARYGAMMA 0x00020000
1554 #define WINEDDCAPS2_CANRENDERWINDOWED 0x00080000
1555 #define WINEDDCAPS2_CANCALIBRATEGAMMA 0x00100000
1556 #define WINEDDCAPS2_FLIPINTERVAL 0x00200000
1557 #define WINEDDCAPS2_FLIPNOVSYNC 0x00400000
1558 #define WINEDDCAPS2_CANMANAGETEXTURE 0x00800000
1559 #define WINEDDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000
1560 #define WINEDDCAPS2_STEREO 0x02000000
1561 #define WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000
1562
1563 #define WINED3D_PALETTE_8BIT_ENTRIES 0x00000001
1564 #define WINED3D_PALETTE_ALLOW_256 0x00000002
1565 #define WINED3D_PALETTE_ALPHA 0x00000004
1566
1567 #define WINED3D_TEXTURE_CREATE_MAPPABLE 0x00000001
1568 #define WINED3D_TEXTURE_CREATE_DISCARD 0x00000002
1569 #define WINED3D_TEXTURE_CREATE_GET_DC_LENIENT 0x00000004
1570 #define WINED3D_TEXTURE_CREATE_GET_DC 0x00000008
1571
1572 #define WINED3D_APPEND_ALIGNED_ELEMENT 0xffffffff
1573
1574 #define WINED3D_OUTPUT_SLOT_SEMANTIC 0xffffffff
1575 #define WINED3D_OUTPUT_SLOT_UNUSED 0xfffffffe
1576
1577 #define WINED3D_MAX_STREAM_OUTPUT_BUFFERS 4
1578 #define WINED3D_STREAM_OUTPUT_GAP 0xffffffff
1579 #define WINED3D_NO_RASTERIZER_STREAM 0xffffffff
1580
1581 #define WINED3D_VIEW_BUFFER_RAW 0x00000001
1582 #define WINED3D_VIEW_BUFFER_APPEND 0x00000002
1583 #define WINED3D_VIEW_BUFFER_COUNTER 0x00000004
1584 #define WINED3D_VIEW_TEXTURE_CUBE 0x00000008
1585 #define WINED3D_VIEW_TEXTURE_ARRAY 0x00000010
1586
1587 struct wined3d_display_mode
1588 {
1589 UINT width;
1590 UINT height;
1591 UINT refresh_rate;
1592 enum wined3d_format_id format_id;
1593 enum wined3d_scanline_ordering scanline_ordering;
1594 };
1595
1596 struct wined3d_color
1597 {
1598 float r;
1599 float g;
1600 float b;
1601 float a;
1602 };
1603
1604 struct wined3d_vec3
1605 {
1606 float x;
1607 float y;
1608 float z;
1609 };
1610
1611 struct wined3d_vec4
1612 {
1613 float x;
1614 float y;
1615 float z;
1616 float w;
1617 };
1618
1619 struct wined3d_dvec4
1620 {
1621 double x;
1622 double y;
1623 double z;
1624 double w;
1625 };
1626
1627 struct wined3d_ivec4
1628 {
1629 int x;
1630 int y;
1631 int z;
1632 int w;
1633 };
1634
1635 struct wined3d_uvec4
1636 {
1637 unsigned int x;
1638 unsigned int y;
1639 unsigned int z;
1640 unsigned int w;
1641 };
1642
1643 struct wined3d_matrix
1644 {
1645 float _11, _12, _13, _14;
1646 float _21, _22, _23, _24;
1647 float _31, _32, _33, _34;
1648 float _41, _42, _43, _44;
1649 };
1650
1651 struct wined3d_light
1652 {
1653 enum wined3d_light_type type;
1654 struct wined3d_color diffuse;
1655 struct wined3d_color specular;
1656 struct wined3d_color ambient;
1657 struct wined3d_vec3 position;
1658 struct wined3d_vec3 direction;
1659 float range;
1660 float falloff;
1661 float attenuation0;
1662 float attenuation1;
1663 float attenuation2;
1664 float theta;
1665 float phi;
1666 };
1667
1668 struct wined3d_material
1669 {
1670 struct wined3d_color diffuse;
1671 struct wined3d_color ambient;
1672 struct wined3d_color specular;
1673 struct wined3d_color emissive;
1674 float power;
1675 };
1676
1677 struct wined3d_viewport
1678 {
1679 float x;
1680 float y;
1681 float width;
1682 float height;
1683 float min_z;
1684 float max_z;
1685 };
1686
1687 struct wined3d_gamma_ramp
1688 {
1689 WORD red[256];
1690 WORD green[256];
1691 WORD blue[256];
1692 };
1693
1694 struct wined3d_line_pattern
1695 {
1696 WORD repeat_factor;
1697 WORD line_pattern;
1698 };
1699
1700 struct wined3d_rect_patch_info
1701 {
1702 UINT start_vertex_offset_width;
1703 UINT start_vertex_offset_height;
1704 UINT width;
1705 UINT height;
1706 UINT stride;
1707 enum wined3d_basis_type basis;
1708 enum wined3d_degree_type degree;
1709 };
1710
1711 struct wined3d_tri_patch_info
1712 {
1713 UINT start_vertex_offset;
1714 UINT vertex_count;
1715 enum wined3d_basis_type basis;
1716 enum wined3d_degree_type degree;
1717 };
1718
1719 struct wined3d_adapter_identifier
1720 {
1721 char *driver;
1722 UINT driver_size;
1723 char *description;
1724 UINT description_size;
1725 char *device_name;
1726 UINT device_name_size;
1727 LARGE_INTEGER driver_version;
1728 DWORD vendor_id;
1729 DWORD device_id;
1730 DWORD subsystem_id;
1731 DWORD revision;
1732 GUID device_identifier;
1733 DWORD whql_level;
1734 LUID adapter_luid;
1735 SIZE_T video_memory;
1736 };
1737
1738 struct wined3d_swapchain_desc
1739 {
1740 UINT backbuffer_width;
1741 UINT backbuffer_height;
1742 enum wined3d_format_id backbuffer_format;
1743 UINT backbuffer_count;
1744 enum wined3d_multisample_type multisample_type;
1745 DWORD multisample_quality;
1746 enum wined3d_swap_effect swap_effect;
1747 HWND device_window;
1748 BOOL windowed;
1749 BOOL enable_auto_depth_stencil;
1750 enum wined3d_format_id auto_depth_stencil_format;
1751 DWORD flags;
1752 UINT refresh_rate;
1753 UINT swap_interval;
1754 BOOL auto_restore_display_mode;
1755 };
1756
1757 struct wined3d_resource_desc
1758 {
1759 enum wined3d_resource_type resource_type;
1760 enum wined3d_format_id format;
1761 enum wined3d_multisample_type multisample_type;
1762 UINT multisample_quality;
1763 DWORD usage;
1764 enum wined3d_pool pool;
1765 UINT width;
1766 UINT height;
1767 UINT depth;
1768 UINT size;
1769 };
1770
1771 struct wined3d_sub_resource_desc
1772 {
1773 enum wined3d_format_id format;
1774 enum wined3d_multisample_type multisample_type;
1775 UINT multisample_quality;
1776 DWORD usage;
1777 enum wined3d_pool pool;
1778 UINT width;
1779 UINT height;
1780 UINT depth;
1781 UINT size;
1782 };
1783
1784 struct wined3d_clip_status
1785 {
1786 DWORD clip_union;
1787 DWORD clip_intersection;
1788 };
1789
1790 enum wined3d_input_classification
1791 {
1792 WINED3D_INPUT_PER_VERTEX_DATA,
1793 WINED3D_INPUT_PER_INSTANCE_DATA,
1794 };
1795
1796 struct wined3d_vertex_element
1797 {
1798 enum wined3d_format_id format;
1799 unsigned int input_slot;
1800 unsigned int offset;
1801 unsigned int output_slot; /* D3D 8 & 10 */
1802 enum wined3d_input_classification input_slot_class;
1803 unsigned int instance_data_step_rate;
1804 BYTE method;
1805 BYTE usage;
1806 BYTE usage_idx;
1807 };
1808
1809 struct wined3d_device_creation_parameters
1810 {
1811 UINT adapter_idx;
1812 enum wined3d_device_type device_type;
1813 HWND focus_window;
1814 DWORD flags;
1815 };
1816
1817 struct wined3d_raster_status
1818 {
1819 BOOL in_vblank;
1820 UINT scan_line;
1821 };
1822
1823 struct wined3d_map_desc
1824 {
1825 UINT row_pitch;
1826 UINT slice_pitch;
1827 void *data;
1828 };
1829
1830 struct wined3d_map_info
1831 {
1832 UINT row_pitch;
1833 UINT slice_pitch;
1834 UINT size;
1835 };
1836
1837 struct wined3d_sub_resource_data
1838 {
1839 const void *data;
1840 unsigned int row_pitch;
1841 unsigned int slice_pitch;
1842 };
1843
1844 struct wined3d_box
1845 {
1846 UINT left;
1847 UINT top;
1848 UINT right;
1849 UINT bottom;
1850 UINT front;
1851 UINT back;
1852 };
1853
1854 struct wined3d_vertex_shader_caps
1855 {
1856 DWORD caps;
1857 INT dynamic_flow_control_depth;
1858 INT temp_count;
1859 INT static_flow_control_depth;
1860 };
1861
1862 struct wined3d_pixel_shader_caps
1863 {
1864 DWORD caps;
1865 INT dynamic_flow_control_depth;
1866 INT temp_count;
1867 INT static_flow_control_depth;
1868 INT instruction_slot_count;
1869 };
1870
1871 struct wined3d_ddraw_caps
1872 {
1873 DWORD caps;
1874 DWORD caps2;
1875 DWORD color_key_caps;
1876 DWORD fx_caps;
1877 DWORD fx_alpha_caps;
1878 DWORD sv_caps;
1879 DWORD svb_caps;
1880 DWORD svb_color_key_caps;
1881 DWORD svb_fx_caps;
1882 DWORD vsb_caps;
1883 DWORD vsb_color_key_caps;
1884 DWORD vsb_fx_caps;
1885 DWORD ssb_caps;
1886 DWORD ssb_color_key_caps;
1887 DWORD ssb_fx_caps;
1888 DWORD dds_caps;
1889 };
1890
1891 typedef struct _WINED3DCAPS
1892 {
1893 enum wined3d_device_type DeviceType;
1894 UINT AdapterOrdinal;
1895
1896 DWORD Caps;
1897 DWORD Caps2;
1898 DWORD Caps3;
1899 DWORD PresentationIntervals;
1900
1901 DWORD CursorCaps;
1902 DWORD DevCaps;
1903 DWORD PrimitiveMiscCaps;
1904 DWORD RasterCaps;
1905 DWORD ZCmpCaps;
1906 DWORD SrcBlendCaps;
1907 DWORD DestBlendCaps;
1908 DWORD AlphaCmpCaps;
1909 DWORD ShadeCaps;
1910 DWORD TextureCaps;
1911 DWORD TextureFilterCaps;
1912 DWORD CubeTextureFilterCaps;
1913 DWORD VolumeTextureFilterCaps;
1914 DWORD TextureAddressCaps;
1915 DWORD VolumeTextureAddressCaps;
1916 DWORD LineCaps;
1917
1918 DWORD MaxTextureWidth;
1919 DWORD MaxTextureHeight;
1920 DWORD MaxVolumeExtent;
1921 DWORD MaxTextureRepeat;
1922 DWORD MaxTextureAspectRatio;
1923 DWORD MaxAnisotropy;
1924 float MaxVertexW;
1925
1926 float GuardBandLeft;
1927 float GuardBandTop;
1928 float GuardBandRight;
1929 float GuardBandBottom;
1930
1931 float ExtentsAdjust;
1932 DWORD StencilCaps;
1933
1934 DWORD FVFCaps;
1935 DWORD TextureOpCaps;
1936 DWORD MaxTextureBlendStages;
1937 DWORD MaxSimultaneousTextures;
1938
1939 DWORD VertexProcessingCaps;
1940 DWORD MaxActiveLights;
1941 DWORD MaxUserClipPlanes;
1942 DWORD MaxVertexBlendMatrices;
1943 DWORD MaxVertexBlendMatrixIndex;
1944
1945 float MaxPointSize;
1946
1947 DWORD MaxPrimitiveCount;
1948 DWORD MaxVertexIndex;
1949 DWORD MaxStreams;
1950 DWORD MaxStreamStride;
1951
1952 DWORD VertexShaderVersion;
1953 DWORD MaxVertexShaderConst;
1954
1955 DWORD PixelShaderVersion;
1956 float PixelShader1xMaxValue;
1957
1958 /* DX 9 */
1959 DWORD DevCaps2;
1960
1961 float MaxNpatchTessellationLevel;
1962 DWORD Reserved5; /* undocumented */
1963
1964 UINT MasterAdapterOrdinal;
1965 UINT AdapterOrdinalInGroup;
1966 UINT NumberOfAdaptersInGroup;
1967 DWORD DeclTypes;
1968 DWORD NumSimultaneousRTs;
1969 DWORD StretchRectFilterCaps;
1970 struct wined3d_vertex_shader_caps VS20Caps;
1971 struct wined3d_pixel_shader_caps PS20Caps;
1972 DWORD VertexTextureFilterCaps;
1973 DWORD MaxVShaderInstructionsExecuted;
1974 DWORD MaxPShaderInstructionsExecuted;
1975 DWORD MaxVertexShader30InstructionSlots;
1976 DWORD MaxPixelShader30InstructionSlots;
1977 DWORD Reserved2; /* Not in the microsoft headers but documented */
1978 DWORD Reserved3;
1979
1980 struct wined3d_ddraw_caps ddraw_caps;
1981
1982 BOOL shader_double_precision;
1983 } WINED3DCAPS;
1984
1985 struct wined3d_color_key
1986 {
1987 DWORD color_space_low_value; /* low boundary of color space that is to
1988 * be treated as Color Key, inclusive */
1989 DWORD color_space_high_value; /* high boundary of color space that is
1990 * to be treated as Color Key, inclusive */
1991 };
1992
1993 struct wined3d_blt_fx
1994 {
1995 DWORD fx;
1996 struct wined3d_color_key dst_color_key;
1997 struct wined3d_color_key src_color_key;
1998 };
1999
2000 struct wined3d_buffer_desc
2001 {
2002 unsigned int byte_width;
2003 DWORD usage;
2004 unsigned int bind_flags;
2005 unsigned int cpu_access_flags;
2006 unsigned int misc_flags;
2007 unsigned int structure_byte_stride;
2008 };
2009
2010 struct wined3d_rasterizer_state_desc
2011 {
2012 BOOL front_ccw;
2013 };
2014
2015 struct wined3d_sampler_desc
2016 {
2017 enum wined3d_texture_address address_u;
2018 enum wined3d_texture_address address_v;
2019 enum wined3d_texture_address address_w;
2020 float border_color[4];
2021 enum wined3d_texture_filter_type mag_filter;
2022 enum wined3d_texture_filter_type min_filter;
2023 enum wined3d_texture_filter_type mip_filter;
2024 float lod_bias;
2025 float min_lod;
2026 float max_lod;
2027 unsigned int mip_base_level;
2028 unsigned int max_anisotropy;
2029 BOOL compare;
2030 enum wined3d_cmp_func comparison_func;
2031 BOOL srgb_decode;
2032 };
2033
2034 struct wined3d_shader_signature_element
2035 {
2036 const char *semantic_name;
2037 unsigned int semantic_idx;
2038 unsigned int stream_idx;
2039 enum wined3d_sysval_semantic sysval_semantic;
2040 enum wined3d_component_type component_type;
2041 unsigned int register_idx;
2042 DWORD mask;
2043 };
2044
2045 struct wined3d_shader_signature
2046 {
2047 UINT element_count;
2048 struct wined3d_shader_signature_element *elements;
2049 };
2050
2051 struct wined3d_shader_desc
2052 {
2053 const DWORD *byte_code;
2054 size_t byte_code_size;
2055 enum wined3d_shader_byte_code_format format;
2056 struct wined3d_shader_signature input_signature;
2057 struct wined3d_shader_signature output_signature;
2058 struct wined3d_shader_signature patch_constant_signature;
2059 unsigned int max_version;
2060 };
2061
2062 struct wined3d_stream_output_element
2063 {
2064 unsigned int stream_idx;
2065 unsigned int register_idx;
2066 BYTE component_idx;
2067 BYTE component_count;
2068 BYTE output_slot;
2069 };
2070
2071 struct wined3d_stream_output_desc
2072 {
2073 struct wined3d_stream_output_element *elements;
2074 unsigned int element_count;
2075 unsigned int buffer_strides[WINED3D_MAX_STREAM_OUTPUT_BUFFERS];
2076 unsigned int buffer_stride_count;
2077 unsigned int rasterizer_stream_idx;
2078 };
2079
2080 struct wined3d_view_desc
2081 {
2082 enum wined3d_format_id format_id;
2083 unsigned int flags;
2084 union
2085 {
2086 struct
2087 {
2088 unsigned int start_idx;
2089 unsigned int count;
2090 } buffer;
2091 struct
2092 {
2093 unsigned int level_idx;
2094 unsigned int level_count;
2095 unsigned int layer_idx;
2096 unsigned int layer_count;
2097 } texture;
2098 } u;
2099 };
2100
2101 struct wined3d_output_desc
2102 {
2103 WCHAR device_name[CCHDEVICENAME];
2104 RECT desktop_rect;
2105 BOOL attached_to_desktop;
2106 enum wined3d_display_rotation rotation;
2107 HMONITOR monitor;
2108 };
2109
2110 struct wined3d_parent_ops
2111 {
2112 void (__stdcall *wined3d_object_destroyed)(void *parent);
2113 };
2114
2115 struct wined3d;
2116 struct wined3d_buffer;
2117 struct wined3d_device;
2118 struct wined3d_palette;
2119 struct wined3d_query;
2120 struct wined3d_rasterizer_state;
2121 struct wined3d_rendertarget_view;
2122 struct wined3d_resource;
2123 struct wined3d_sampler;
2124 struct wined3d_shader;
2125 struct wined3d_shader_resource_view;
2126 struct wined3d_stateblock;
2127 struct wined3d_swapchain;
2128 struct wined3d_texture;
2129 struct wined3d_unordered_access_view;
2130 struct wined3d_vertex_declaration;
2131
2132 struct wined3d_device_parent
2133 {
2134 const struct wined3d_device_parent_ops *ops;
2135 };
2136
2137 struct wined3d_device_parent_ops
2138 {
2139 void (__cdecl *wined3d_device_created)(struct wined3d_device_parent *device_parent, struct wined3d_device *device);
2140 void (__cdecl *mode_changed)(struct wined3d_device_parent *device_parent);
2141 void (__cdecl *activate)(struct wined3d_device_parent *device_parent, BOOL activate);
2142 HRESULT (__cdecl *surface_created)(struct wined3d_device_parent *device_parent,
2143 struct wined3d_texture *texture, unsigned int sub_resource_idx,
2144 void **parent, const struct wined3d_parent_ops **parent_ops);
2145 HRESULT (__cdecl *volume_created)(struct wined3d_device_parent *device_parent,
2146 struct wined3d_texture *wined3d_texture, unsigned int sub_resource_idx,
2147 void **parent, const struct wined3d_parent_ops **parent_ops);
2148 HRESULT (__cdecl *create_swapchain_texture)(struct wined3d_device_parent *device_parent, void *parent,
2149 const struct wined3d_resource_desc *desc, DWORD texture_flags, struct wined3d_texture **texture);
2150 HRESULT (__cdecl *create_swapchain)(struct wined3d_device_parent *device_parent,
2151 struct wined3d_swapchain_desc *desc, struct wined3d_swapchain **swapchain);
2152 };
2153
2154 struct wined3d_private_store
2155 {
2156 struct list content;
2157 };
2158
2159 struct wined3d_private_data
2160 {
2161 struct list entry;
2162
2163 GUID tag;
2164 DWORD flags; /* DDSPD_* */
2165 DWORD size;
2166 union
2167 {
2168 BYTE data[1];
2169 IUnknown *object;
2170 } content;
2171 };
2172
2173 typedef HRESULT (CDECL *wined3d_device_reset_cb)(struct wined3d_resource *resource);
2174
2175 void __stdcall wined3d_mutex_lock(void);
2176 void __stdcall wined3d_mutex_unlock(void);
2177
2178 UINT __cdecl wined3d_calculate_format_pitch(const struct wined3d *wined3d, UINT adapter_idx,
2179 enum wined3d_format_id format_id, UINT width);
2180 HRESULT __cdecl wined3d_check_depth_stencil_match(const struct wined3d *wined3d, UINT adapter_idx,
2181 enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id,
2182 enum wined3d_format_id render_target_format_id, enum wined3d_format_id depth_stencil_format_id);
2183 HRESULT __cdecl wined3d_check_device_format(const struct wined3d *wined3d, UINT adaper_idx,
2184 enum wined3d_device_type device_type, enum wined3d_format_id adapter_format_id, DWORD usage,
2185 enum wined3d_resource_type resource_type, enum wined3d_format_id check_format_id);
2186 HRESULT __cdecl wined3d_check_device_format_conversion(const struct wined3d *wined3d, UINT adapter_idx,
2187 enum wined3d_device_type device_type, enum wined3d_format_id source_format_id,
2188 enum wined3d_format_id target_format_id);
2189 void CDECL wined3d_check_device_format_support(struct wined3d_device *device,
2190 enum wined3d_format_id check_format_id, UINT *support);
2191 HRESULT __cdecl wined3d_check_device_multisample_type(const struct wined3d *wined3d, UINT adapter_idx,
2192 enum wined3d_device_type device_type, enum wined3d_format_id surface_format_id, BOOL windowed,
2193 enum wined3d_multisample_type multisample_type, DWORD *quality_levels);
2194 HRESULT __cdecl wined3d_check_device_type(const struct wined3d *wined3d, UINT adapter_idx,
2195 enum wined3d_device_type device_type, enum wined3d_format_id display_format_id,
2196 enum wined3d_format_id backbuffer_format_id, BOOL windowed);
2197 struct wined3d * __cdecl wined3d_create(DWORD flags);
2198 ULONG __cdecl wined3d_decref(struct wined3d *wined3d);
2199 HRESULT __cdecl wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx,
2200 enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering,
2201 UINT mode_idx, struct wined3d_display_mode *mode);
2202 HRESULT __cdecl wined3d_find_closest_matching_adapter_mode(const struct wined3d *wined3d,
2203 unsigned int adapter_idx, struct wined3d_display_mode *mode);
2204 UINT __cdecl wined3d_get_adapter_count(const struct wined3d *wined3d);
2205 HRESULT __cdecl wined3d_get_adapter_display_mode(const struct wined3d *wined3d, UINT adapter_idx,
2206 struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation);
2207 HRESULT __cdecl wined3d_get_adapter_identifier(const struct wined3d *wined3d, UINT adapter_idx,
2208 DWORD flags, struct wined3d_adapter_identifier *identifier);
2209 UINT __cdecl wined3d_get_adapter_mode_count(const struct wined3d *wined3d, UINT adapter_idx,
2210 enum wined3d_format_id format_id, enum wined3d_scanline_ordering scanline_ordering);
2211 HRESULT __cdecl wined3d_get_adapter_raster_status(const struct wined3d *wined3d, UINT adapter_idx,
2212 struct wined3d_raster_status *raster_status);
2213 HRESULT __cdecl wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx,
2214 enum wined3d_device_type device_type, WINED3DCAPS *caps);
2215 HRESULT __cdecl wined3d_get_output_desc(const struct wined3d *wined3d, unsigned int adapter_idx,
2216 struct wined3d_output_desc *desc);
2217 ULONG __cdecl wined3d_incref(struct wined3d *wined3d);
2218 HRESULT __cdecl wined3d_register_software_device(struct wined3d *wined3d, void *init_function);
2219 HRESULT __cdecl wined3d_set_adapter_display_mode(struct wined3d *wined3d,
2220 UINT adapter_idx, const struct wined3d_display_mode *mode);
2221
2222 HRESULT __cdecl wined3d_buffer_create(struct wined3d_device *device, const struct wined3d_buffer_desc *desc,
2223 const struct wined3d_sub_resource_data *data, void *parent, const struct wined3d_parent_ops *parent_ops,
2224 struct wined3d_buffer **buffer);
2225 HRESULT __cdecl wined3d_buffer_create_ib(struct wined3d_device *device, UINT length, DWORD usage,
2226 enum wined3d_pool pool, void *parent, const struct wined3d_parent_ops *parent_ops,
2227 struct wined3d_buffer **buffer);
2228 HRESULT __cdecl wined3d_buffer_create_vb(struct wined3d_device *device, UINT length, DWORD usage,
2229 enum wined3d_pool pool, void *parent, const struct wined3d_parent_ops *parent_ops,
2230 struct wined3d_buffer **buffer);
2231 ULONG __cdecl wined3d_buffer_decref(struct wined3d_buffer *buffer);
2232 void * __cdecl wined3d_buffer_get_parent(const struct wined3d_buffer *buffer);
2233 struct wined3d_resource * __cdecl wined3d_buffer_get_resource(struct wined3d_buffer *buffer);
2234 ULONG __cdecl wined3d_buffer_incref(struct wined3d_buffer *buffer);
2235
2236 HRESULT __cdecl wined3d_device_acquire_focus_window(struct wined3d_device *device, HWND window);
2237 HRESULT __cdecl wined3d_device_begin_scene(struct wined3d_device *device);
2238 HRESULT __cdecl wined3d_device_begin_stateblock(struct wined3d_device *device);
2239 HRESULT __cdecl wined3d_device_clear(struct wined3d_device *device, DWORD rect_count, const RECT *rects, DWORD flags,
2240 const struct wined3d_color *color, float z, DWORD stencil);
2241 HRESULT __cdecl wined3d_device_clear_rendertarget_view(struct wined3d_device *device,
2242 struct wined3d_rendertarget_view *view, const RECT *rect, DWORD flags,
2243 const struct wined3d_color *color, float depth, DWORD stencil);
2244 void __cdecl wined3d_device_clear_unordered_access_view_uint(struct wined3d_device *device,
2245 struct wined3d_unordered_access_view *view, const struct wined3d_uvec4 *clear_value);
2246 void __cdecl wined3d_device_copy_resource(struct wined3d_device *device,
2247 struct wined3d_resource *dst_resource, struct wined3d_resource *src_resource);
2248 HRESULT __cdecl wined3d_device_copy_sub_resource_region(struct wined3d_device *device,
2249 struct wined3d_resource *dst_resource, unsigned int dst_sub_resource_idx, unsigned int dst_x,
2250 unsigned int dst_y, unsigned int dst_z, struct wined3d_resource *src_resource,
2251 unsigned int src_sub_resource_idx, const struct wined3d_box *src_box);
2252 HRESULT __cdecl wined3d_device_create(struct wined3d *wined3d, UINT adapter_idx,
2253 enum wined3d_device_type device_type, HWND focus_window, DWORD behaviour_flags, BYTE surface_alignment,
2254 struct wined3d_device_parent *device_parent, struct wined3d_device **device);
2255 ULONG __cdecl wined3d_device_decref(struct wined3d_device *device);
2256 void __cdecl wined3d_device_dispatch_compute(struct wined3d_device *device,
2257 unsigned int group_count_x, unsigned int group_count_y, unsigned int group_count_z);
2258 HRESULT __cdecl wined3d_device_draw_indexed_primitive(struct wined3d_device *device, UINT start_idx, UINT index_count);
2259 void __cdecl wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device *device,
2260 UINT start_idx, UINT index_count, UINT start_instance, UINT instance_count);
2261 HRESULT __cdecl wined3d_device_draw_primitive(struct wined3d_device *device, UINT start_vertex, UINT vertex_count);
2262 void __cdecl wined3d_device_draw_primitive_instanced(struct wined3d_device *device,
2263 UINT start_vertex, UINT vertex_count, UINT start_instance, UINT instance_count);
2264 HRESULT __cdecl wined3d_device_end_scene(struct wined3d_device *device);
2265 HRESULT __cdecl wined3d_device_end_stateblock(struct wined3d_device *device, struct wined3d_stateblock **stateblock);
2266 void __cdecl wined3d_device_evict_managed_resources(struct wined3d_device *device);
2267 UINT __cdecl wined3d_device_get_available_texture_mem(const struct wined3d_device *device);
2268 INT __cdecl wined3d_device_get_base_vertex_index(const struct wined3d_device *device);
2269 HRESULT __cdecl wined3d_device_get_clip_plane(const struct wined3d_device *device,
2270 UINT plane_idx, struct wined3d_vec4 *plane);
2271 HRESULT __cdecl wined3d_device_get_clip_status(const struct wined3d_device *device,
2272 struct wined3d_clip_status *clip_status);
2273 struct wined3d_shader * __cdecl wined3d_device_get_compute_shader(const struct wined3d_device *device);
2274 void __cdecl wined3d_device_get_creation_parameters(const struct wined3d_device *device,
2275 struct wined3d_device_creation_parameters *creation_parameters);
2276 struct wined3d_buffer * __cdecl wined3d_device_get_cs_cb(const struct wined3d_device *device, unsigned int idx);
2277 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_cs_resource_view(const struct wined3d_device *device,
2278 unsigned int idx);
2279 struct wined3d_sampler * __cdecl wined3d_device_get_cs_sampler(const struct wined3d_device *device, unsigned int idx);
2280 struct wined3d_unordered_access_view * __cdecl wined3d_device_get_cs_uav(const struct wined3d_device *device,
2281 unsigned int idx);
2282 struct wined3d_rendertarget_view * __cdecl wined3d_device_get_depth_stencil_view(const struct wined3d_device *device);
2283 HRESULT __cdecl wined3d_device_get_device_caps(const struct wined3d_device *device, WINED3DCAPS *caps);
2284 HRESULT __cdecl wined3d_device_get_display_mode(const struct wined3d_device *device, UINT swapchain_idx,
2285 struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation);
2286 struct wined3d_shader * __cdecl wined3d_device_get_domain_shader(const struct wined3d_device *device);
2287 struct wined3d_buffer * __cdecl wined3d_device_get_ds_cb(const struct wined3d_device *device, unsigned int idx);
2288 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_ds_resource_view(const struct wined3d_device *device,
2289 unsigned int idx);
2290 struct wined3d_sampler * __cdecl wined3d_device_get_ds_sampler(const struct wined3d_device *device, unsigned int idx);
2291 void __cdecl wined3d_device_get_gamma_ramp(const struct wined3d_device *device,
2292 UINT swapchain_idx, struct wined3d_gamma_ramp *ramp);
2293 struct wined3d_shader * __cdecl wined3d_device_get_geometry_shader(const struct wined3d_device *device);
2294 struct wined3d_buffer * __cdecl wined3d_device_get_gs_cb(const struct wined3d_device *device, UINT idx);
2295 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_gs_resource_view(const struct wined3d_device *device,
2296 UINT idx);
2297 struct wined3d_sampler * __cdecl wined3d_device_get_gs_sampler(const struct wined3d_device *device, UINT idx);
2298 struct wined3d_buffer * __cdecl wined3d_device_get_hs_cb(const struct wined3d_device *device, unsigned int idx);
2299 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_hs_resource_view(const struct wined3d_device *device,
2300 unsigned int idx);
2301 struct wined3d_sampler * __cdecl wined3d_device_get_hs_sampler(const struct wined3d_device *device, unsigned int idx);
2302 struct wined3d_shader * __cdecl wined3d_device_get_hull_shader(const struct wined3d_device *device);
2303 struct wined3d_buffer * __cdecl wined3d_device_get_index_buffer(const struct wined3d_device *device,
2304 enum wined3d_format_id *format, unsigned int *offset);
2305 HRESULT __cdecl wined3d_device_get_light(const struct wined3d_device *device,
2306 UINT light_idx, struct wined3d_light *light);
2307 HRESULT __cdecl wined3d_device_get_light_enable(const struct wined3d_device *device, UINT light_idx, BOOL *enable);
2308 void __cdecl wined3d_device_get_material(const struct wined3d_device *device, struct wined3d_material *material);
2309 float __cdecl wined3d_device_get_npatch_mode(const struct wined3d_device *device);
2310 struct wined3d_shader * __cdecl wined3d_device_get_pixel_shader(const struct wined3d_device *device);
2311 struct wined3d_query * __cdecl wined3d_device_get_predication(struct wined3d_device *device, BOOL *value);
2312 void __cdecl wined3d_device_get_primitive_type(const struct wined3d_device *device,
2313 enum wined3d_primitive_type *primitive_topology, unsigned int *patch_vertex_count);
2314 struct wined3d_buffer * __cdecl wined3d_device_get_ps_cb(const struct wined3d_device *device, UINT idx);
2315 HRESULT __cdecl wined3d_device_get_ps_consts_b(const struct wined3d_device *device,
2316 unsigned int start_idx, unsigned int count, BOOL *constants);
2317 HRESULT __cdecl wined3d_device_get_ps_consts_f(const struct wined3d_device *device,
2318 unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants);
2319 HRESULT __cdecl wined3d_device_get_ps_consts_i(const struct wined3d_device *device,
2320 unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants);
2321 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_ps_resource_view(const struct wined3d_device *device,
2322 UINT idx);
2323 struct wined3d_sampler * __cdecl wined3d_device_get_ps_sampler(const struct wined3d_device *device, UINT idx);
2324 HRESULT __cdecl wined3d_device_get_raster_status(const struct wined3d_device *device,
2325 UINT swapchain_idx, struct wined3d_raster_status *raster_status);
2326 struct wined3d_rasterizer_state * __cdecl wined3d_device_get_rasterizer_state(struct wined3d_device *device);
2327 DWORD __cdecl wined3d_device_get_render_state(const struct wined3d_device *device, enum wined3d_render_state state);
2328 struct wined3d_rendertarget_view * __cdecl wined3d_device_get_rendertarget_view(const struct wined3d_device *device,
2329 unsigned int view_idx);
2330 DWORD __cdecl wined3d_device_get_sampler_state(const struct wined3d_device *device,
2331 UINT sampler_idx, enum wined3d_sampler_state state);
2332 void __cdecl wined3d_device_get_scissor_rect(const struct wined3d_device *device, RECT *rect);
2333 BOOL __cdecl wined3d_device_get_software_vertex_processing(const struct wined3d_device *device);
2334 struct wined3d_buffer * __cdecl wined3d_device_get_stream_output(struct wined3d_device *device,
2335 UINT idx, UINT *offset);
2336 HRESULT __cdecl wined3d_device_get_stream_source(const struct wined3d_device *device,
2337 UINT stream_idx, struct wined3d_buffer **buffer, UINT *offset, UINT *stride);
2338 HRESULT __cdecl wined3d_device_get_stream_source_freq(const struct wined3d_device *device,
2339 UINT stream_idx, UINT *divider);
2340 struct wined3d_swapchain * __cdecl wined3d_device_get_swapchain(const struct wined3d_device *device,
2341 UINT swapchain_idx);
2342 UINT __cdecl wined3d_device_get_swapchain_count(const struct wined3d_device *device);
2343 struct wined3d_texture * __cdecl wined3d_device_get_texture(const struct wined3d_device *device, UINT stage);
2344 DWORD __cdecl wined3d_device_get_texture_stage_state(const struct wined3d_device *device,
2345 UINT stage, enum wined3d_texture_stage_state state);
2346 void __cdecl wined3d_device_get_transform(const struct wined3d_device *device,
2347 enum wined3d_transform_state state, struct wined3d_matrix *matrix);
2348 struct wined3d_unordered_access_view * __cdecl wined3d_device_get_unordered_access_view(
2349 const struct wined3d_device *device, unsigned int idx);
2350 struct wined3d_vertex_declaration * __cdecl wined3d_device_get_vertex_declaration(const struct wined3d_device *device);
2351 struct wined3d_shader * __cdecl wined3d_device_get_vertex_shader(const struct wined3d_device *device);
2352 void __cdecl wined3d_device_get_viewport(const struct wined3d_device *device, struct wined3d_viewport *viewport);
2353 struct wined3d_buffer * __cdecl wined3d_device_get_vs_cb(const struct wined3d_device *device, UINT idx);
2354 HRESULT __cdecl wined3d_device_get_vs_consts_b(const struct wined3d_device *device,
2355 unsigned int start_idx, unsigned int count, BOOL *constants);
2356 HRESULT __cdecl wined3d_device_get_vs_consts_f(const struct wined3d_device *device,
2357 unsigned int start_idx, unsigned int count, struct wined3d_vec4 *constants);
2358 HRESULT __cdecl wined3d_device_get_vs_consts_i(const struct wined3d_device *device,
2359 unsigned int start_idx, unsigned int count, struct wined3d_ivec4 *constants);
2360 struct wined3d_shader_resource_view * __cdecl wined3d_device_get_vs_resource_view(const struct wined3d_device *device,
2361 UINT idx);
2362 struct wined3d_sampler * __cdecl wined3d_device_get_vs_sampler(const struct wined3d_device *device, UINT idx);
2363 struct wined3d * __cdecl wined3d_device_get_wined3d(const struct wined3d_device *device);
2364 ULONG __cdecl wined3d_device_incref(struct wined3d_device *device);
2365 HRESULT __cdecl wined3d_device_init_3d(struct wined3d_device *device, struct wined3d_swapchain_desc *swapchain_desc);
2366 HRESULT __cdecl wined3d_device_init_gdi(struct wined3d_device *device, struct wined3d_swapchain_desc *swapchain_desc);
2367 void __cdecl wined3d_device_multiply_transform(struct wined3d_device *device,
2368 enum wined3d_transform_state state, const struct wined3d_matrix *matrix);
2369 HRESULT __cdecl wined3d_device_process_vertices(struct wined3d_device *device,
2370 UINT src_start_idx, UINT dst_idx, UINT vertex_count, struct wined3d_buffer *dst_buffer,
2371 const struct wined3d_vertex_declaration *declaration, DWORD flags, DWORD dst_fvf);
2372 void __cdecl wined3d_device_release_focus_window(struct wined3d_device *device);
2373 HRESULT __cdecl wined3d_device_reset(struct wined3d_device *device,
2374 const struct wined3d_swapchain_desc *swapchain_desc, const struct wined3d_display_mode *mode,
2375 wined3d_device_reset_cb callback, BOOL reset_state);
2376 void __cdecl wined3d_device_restore_fullscreen_window(struct wined3d_device *device, HWND window,
2377 const RECT *window_rect);
2378 void __cdecl wined3d_device_set_base_vertex_index(struct wined3d_device *device, INT base_index);
2379 HRESULT __cdecl wined3d_device_set_clip_plane(struct wined3d_device *device,
2380 UINT plane_idx, const struct wined3d_vec4 *plane);
2381 HRESULT __cdecl wined3d_device_set_clip_status(struct wined3d_device *device,
2382 const struct wined3d_clip_status *clip_status);
2383 void __cdecl wined3d_device_set_compute_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2384 void __cdecl wined3d_device_set_cs_cb(struct wined3d_device *device, unsigned int idx, struct wined3d_buffer *buffer);
2385 void __cdecl wined3d_device_set_cs_resource_view(struct wined3d_device *device,
2386 unsigned int idx, struct wined3d_shader_resource_view *view);
2387 void __cdecl wined3d_device_set_cs_sampler(struct wined3d_device *device,
2388 unsigned int idx, struct wined3d_sampler *sampler);
2389 void __cdecl wined3d_device_set_cs_uav(struct wined3d_device *device, unsigned int idx,
2390 struct wined3d_unordered_access_view *uav);
2391 void __cdecl wined3d_device_set_cursor_position(struct wined3d_device *device,
2392 int x_screen_space, int y_screen_space, DWORD flags);
2393 HRESULT __cdecl wined3d_device_set_cursor_properties(struct wined3d_device *device,
2394 UINT x_hotspot, UINT y_hotspot, struct wined3d_texture *texture, unsigned int sub_resource_idx);
2395 void __cdecl wined3d_device_set_depth_stencil_view(struct wined3d_device *device,
2396 struct wined3d_rendertarget_view *view);
2397 HRESULT __cdecl wined3d_device_set_dialog_box_mode(struct wined3d_device *device, BOOL enable_dialogs);
2398 void __cdecl wined3d_device_set_domain_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2399 void __cdecl wined3d_device_set_ds_cb(struct wined3d_device *device, unsigned int idx, struct wined3d_buffer *buffer);
2400 void __cdecl wined3d_device_set_ds_resource_view(struct wined3d_device *device,
2401 unsigned int idx, struct wined3d_shader_resource_view *view);
2402 void __cdecl wined3d_device_set_ds_sampler(struct wined3d_device *device,
2403 unsigned int idx, struct wined3d_sampler *sampler);
2404 void __cdecl wined3d_device_set_gamma_ramp(const struct wined3d_device *device,
2405 UINT swapchain_idx, DWORD flags, const struct wined3d_gamma_ramp *ramp);
2406 void __cdecl wined3d_device_set_geometry_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2407 void __cdecl wined3d_device_set_gs_cb(struct wined3d_device *device, UINT idx, struct wined3d_buffer *buffer);
2408 void __cdecl wined3d_device_set_gs_resource_view(struct wined3d_device *device,
2409 UINT idx, struct wined3d_shader_resource_view *view);
2410 void __cdecl wined3d_device_set_gs_sampler(struct wined3d_device *device, UINT idx, struct wined3d_sampler *sampler);
2411 void __cdecl wined3d_device_set_hs_cb(struct wined3d_device *device, unsigned int idx, struct wined3d_buffer *buffer);
2412 void __cdecl wined3d_device_set_hs_resource_view(struct wined3d_device *device,
2413 unsigned int idx, struct wined3d_shader_resource_view *view);
2414 void __cdecl wined3d_device_set_hs_sampler(struct wined3d_device *device,
2415 unsigned int idx, struct wined3d_sampler *sampler);
2416 void __cdecl wined3d_device_set_hull_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2417 void __cdecl wined3d_device_set_index_buffer(struct wined3d_device *device,
2418 struct wined3d_buffer *index_buffer, enum wined3d_format_id format_id, unsigned int offset);
2419 HRESULT __cdecl wined3d_device_set_light(struct wined3d_device *device,
2420 UINT light_idx, const struct wined3d_light *light);
2421 HRESULT __cdecl wined3d_device_set_light_enable(struct wined3d_device *device, UINT light_idx, BOOL enable);
2422 void __cdecl wined3d_device_set_material(struct wined3d_device *device, const struct wined3d_material *material);
2423 void __cdecl wined3d_device_set_multithreaded(struct wined3d_device *device);
2424 HRESULT __cdecl wined3d_device_set_npatch_mode(struct wined3d_device *device, float segments);
2425 void __cdecl wined3d_device_set_pixel_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2426 void __cdecl wined3d_device_set_predication(struct wined3d_device *device,
2427 struct wined3d_query *predicate, BOOL value);
2428 void __cdecl wined3d_device_set_primitive_type(struct wined3d_device *device,
2429 enum wined3d_primitive_type primitive_topology, unsigned int patch_vertex_count);
2430 void __cdecl wined3d_device_set_ps_cb(struct wined3d_device *device, UINT idx, struct wined3d_buffer *buffer);
2431 HRESULT __cdecl wined3d_device_set_ps_consts_b(struct wined3d_device *device,
2432 unsigned int start_idx, unsigned int count, const BOOL *constants);
2433 HRESULT __cdecl wined3d_device_set_ps_consts_f(struct wined3d_device *device,
2434 unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants);
2435 HRESULT __cdecl wined3d_device_set_ps_consts_i(struct wined3d_device *device,
2436 unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants);
2437 void __cdecl wined3d_device_set_ps_resource_view(struct wined3d_device *device,
2438 UINT idx, struct wined3d_shader_resource_view *view);
2439 void __cdecl wined3d_device_set_ps_sampler(struct wined3d_device *device, UINT idx, struct wined3d_sampler *sampler);
2440 void __cdecl wined3d_device_set_rasterizer_state(struct wined3d_device *device,
2441 struct wined3d_rasterizer_state *rasterizer_state);
2442 void __cdecl wined3d_device_set_render_state(struct wined3d_device *device,
2443 enum wined3d_render_state state, DWORD value);
2444 HRESULT __cdecl wined3d_device_set_rendertarget_view(struct wined3d_device *device,
2445 unsigned int view_idx, struct wined3d_rendertarget_view *view, BOOL set_viewport);
2446 void __cdecl wined3d_device_set_sampler_state(struct wined3d_device *device,
2447 UINT sampler_idx, enum wined3d_sampler_state state, DWORD value);
2448 void __cdecl wined3d_device_set_scissor_rect(struct wined3d_device *device, const RECT *rect);
2449 void __cdecl wined3d_device_set_software_vertex_processing(struct wined3d_device *device, BOOL software);
2450 void __cdecl wined3d_device_set_stream_output(struct wined3d_device *device, UINT idx,
2451 struct wined3d_buffer *buffer, UINT offset);
2452 HRESULT __cdecl wined3d_device_set_stream_source(struct wined3d_device *device,
2453 UINT stream_idx, struct wined3d_buffer *buffer, UINT offset, UINT stride);
2454 HRESULT __cdecl wined3d_device_set_stream_source_freq(struct wined3d_device *device, UINT stream_idx, UINT divider);
2455 HRESULT __cdecl wined3d_device_set_texture(struct wined3d_device *device, UINT stage, struct wined3d_texture *texture);
2456 void __cdecl wined3d_device_set_texture_stage_state(struct wined3d_device *device,
2457 UINT stage, enum wined3d_texture_stage_state state, DWORD value);
2458 void __cdecl wined3d_device_set_transform(struct wined3d_device *device,
2459 enum wined3d_transform_state state, const struct wined3d_matrix *matrix);
2460 void __cdecl wined3d_device_set_unordered_access_view(struct wined3d_device *device,
2461 unsigned int idx, struct wined3d_unordered_access_view *uav);
2462 void __cdecl wined3d_device_set_vertex_declaration(struct wined3d_device *device,
2463 struct wined3d_vertex_declaration *declaration);
2464 void __cdecl wined3d_device_set_vertex_shader(struct wined3d_device *device, struct wined3d_shader *shader);
2465 void __cdecl wined3d_device_set_viewport(struct wined3d_device *device, const struct wined3d_viewport *viewport);
2466 void __cdecl wined3d_device_set_vs_cb(struct wined3d_device *device, UINT idx, struct wined3d_buffer *buffer);
2467 HRESULT __cdecl wined3d_device_set_vs_consts_b(struct wined3d_device *device,
2468 unsigned int start_idx, unsigned int count, const BOOL *constants);
2469 HRESULT __cdecl wined3d_device_set_vs_consts_f(struct wined3d_device *device,
2470 unsigned int start_idx, unsigned int count, const struct wined3d_vec4 *constants);
2471 HRESULT __cdecl wined3d_device_set_vs_consts_i(struct wined3d_device *device,
2472 unsigned int start_idx, unsigned int count, const struct wined3d_ivec4 *constants);
2473 void __cdecl wined3d_device_set_vs_resource_view(struct wined3d_device *device,
2474 UINT idx, struct wined3d_shader_resource_view *view);
2475 void __cdecl wined3d_device_set_vs_sampler(struct wined3d_device *device, UINT idx, struct wined3d_sampler *sampler);
2476 void __cdecl wined3d_device_setup_fullscreen_window(struct wined3d_device *device, HWND window, UINT w, UINT h);
2477 BOOL __cdecl wined3d_device_show_cursor(struct wined3d_device *device, BOOL show);
2478 HRESULT __cdecl wined3d_device_uninit_3d(struct wined3d_device *device);
2479 HRESULT __cdecl wined3d_device_uninit_gdi(struct wined3d_device *device);
2480 void __cdecl wined3d_device_update_sub_resource(struct wined3d_device *device, struct wined3d_resource *resource,
2481 unsigned int sub_resource_idx, const struct wined3d_box *box, const void *data, unsigned int row_pitch,
2482 unsigned int depth_pitch);
2483 HRESULT __cdecl wined3d_device_update_texture(struct wined3d_device *device,
2484 struct wined3d_texture *src_texture, struct wined3d_texture *dst_texture);
2485 HRESULT __cdecl wined3d_device_validate_device(const struct wined3d_device *device, DWORD *num_passes);
2486
2487 HRESULT __cdecl wined3d_palette_create(struct wined3d_device *device, DWORD flags,
2488 unsigned int entry_count, const PALETTEENTRY *entries, struct wined3d_palette **palette);
2489 ULONG __cdecl wined3d_palette_decref(struct wined3d_palette *palette);
2490 HRESULT __cdecl wined3d_palette_get_entries(const struct wined3d_palette *palette,
2491 DWORD flags, DWORD start, DWORD count, PALETTEENTRY *entries);
2492 void __cdecl wined3d_palette_apply_to_dc(const struct wined3d_palette *palette, HDC dc);
2493 ULONG __cdecl wined3d_palette_incref(struct wined3d_palette *palette);
2494 HRESULT __cdecl wined3d_palette_set_entries(struct wined3d_palette *palette,
2495 DWORD flags, DWORD start, DWORD count, const PALETTEENTRY *entries);
2496
2497 HRESULT __cdecl wined3d_query_create(struct wined3d_device *device, enum wined3d_query_type type,
2498 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_query **query);
2499 ULONG __cdecl wined3d_query_decref(struct wined3d_query *query);
2500 HRESULT __cdecl wined3d_query_get_data(struct wined3d_query *query, void *data, UINT data_size, DWORD flags);
2501 UINT __cdecl wined3d_query_get_data_size(const struct wined3d_query *query);
2502 void * __cdecl wined3d_query_get_parent(const struct wined3d_query *query);
2503 enum wined3d_query_type __cdecl wined3d_query_get_type(const struct wined3d_query *query);
2504 ULONG __cdecl wined3d_query_incref(struct wined3d_query *query);
2505 HRESULT __cdecl wined3d_query_issue(struct wined3d_query *query, DWORD flags);
2506
2507 static inline void wined3d_private_store_init(struct wined3d_private_store *store)
2508 {
2509 list_init(&store->content);
2510 }
2511
2512 static inline struct wined3d_private_data *wined3d_private_store_get_private_data(
2513 const struct wined3d_private_store *store, const GUID *tag)
2514 {
2515 struct wined3d_private_data *data;
2516 struct list *entry;
2517
2518 LIST_FOR_EACH(entry, &store->content)
2519 {
2520 data = LIST_ENTRY(entry, struct wined3d_private_data, entry);
2521 if (IsEqualGUID(&data->tag, tag))
2522 return data;
2523 }
2524 return NULL;
2525 }
2526
2527 static inline void wined3d_private_store_free_private_data(struct wined3d_private_store *store,
2528 struct wined3d_private_data *entry)
2529 {
2530 if (entry->flags & WINED3DSPD_IUNKNOWN)
2531 IUnknown_Release(entry->content.object);
2532 list_remove(&entry->entry);
2533 HeapFree(GetProcessHeap(), 0, entry);
2534 }
2535
2536 static inline void wined3d_private_store_cleanup(struct wined3d_private_store *store)
2537 {
2538 struct wined3d_private_data *data;
2539 struct list *e1, *e2;
2540
2541 LIST_FOR_EACH_SAFE(e1, e2, &store->content)
2542 {
2543 data = LIST_ENTRY(e1, struct wined3d_private_data, entry);
2544 wined3d_private_store_free_private_data(store, data);
2545 }
2546 }
2547
2548 static inline HRESULT wined3d_private_store_set_private_data(struct wined3d_private_store *store,
2549 const GUID *guid, const void *data, DWORD data_size, DWORD flags)
2550 {
2551 struct wined3d_private_data *d, *old;
2552 const void *ptr = data;
2553
2554 if (flags & WINED3DSPD_IUNKNOWN)
2555 {
2556 if (data_size != sizeof(IUnknown *))
2557 return WINED3DERR_INVALIDCALL;
2558 ptr = &data;
2559 }
2560
2561 if (!(d = HeapAlloc(GetProcessHeap(), 0,
2562 FIELD_OFFSET(struct wined3d_private_data, content.data[data_size]))))
2563 return E_OUTOFMEMORY;
2564
2565 d->tag = *guid;
2566 d->flags = flags;
2567 d->size = data_size;
2568
2569 memcpy(d->content.data, ptr, data_size);
2570 if (flags & WINED3DSPD_IUNKNOWN)
2571 IUnknown_AddRef(d->content.object);
2572
2573 old = wined3d_private_store_get_private_data(store, guid);
2574 if (old)
2575 wined3d_private_store_free_private_data(store, old);
2576 list_add_tail(&store->content, &d->entry);
2577
2578 return WINED3D_OK;
2579 }
2580
2581 HRESULT __cdecl wined3d_rasterizer_state_create(struct wined3d_device *device,
2582 const struct wined3d_rasterizer_state_desc *desc, void *parent,
2583 const struct wined3d_parent_ops *parent_ops, struct wined3d_rasterizer_state **state);
2584 ULONG __cdecl wined3d_rasterizer_state_decref(struct wined3d_rasterizer_state *state);
2585 void * __cdecl wined3d_rasterizer_state_get_parent(const struct wined3d_rasterizer_state *state);
2586 ULONG __cdecl wined3d_rasterizer_state_incref(struct wined3d_rasterizer_state *state);
2587
2588 void __cdecl wined3d_resource_get_desc(const struct wined3d_resource *resource,
2589 struct wined3d_resource_desc *desc);
2590 void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resource);
2591 DWORD __cdecl wined3d_resource_get_priority(const struct wined3d_resource *resource);
2592 HRESULT __cdecl wined3d_resource_map(struct wined3d_resource *resource, unsigned int sub_resource_idx,
2593 struct wined3d_map_desc *map_desc, const struct wined3d_box *box, DWORD flags);
2594 HRESULT __cdecl wined3d_resource_map_info(struct wined3d_resource *resource, unsigned int sub_resource_idx,
2595 struct wined3d_map_info *info, DWORD flags);
2596 void __cdecl wined3d_resource_preload(struct wined3d_resource *resource);
2597 void __cdecl wined3d_resource_set_parent(struct wined3d_resource *resource, void *parent);
2598 DWORD __cdecl wined3d_resource_set_priority(struct wined3d_resource *resource, DWORD priority);
2599 HRESULT __cdecl wined3d_resource_unmap(struct wined3d_resource *resource, unsigned int sub_resource_idx);
2600
2601 HRESULT __cdecl wined3d_rendertarget_view_create(const struct wined3d_view_desc *desc,
2602 struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops,
2603 struct wined3d_rendertarget_view **view);
2604 HRESULT __cdecl wined3d_rendertarget_view_create_from_sub_resource(struct wined3d_texture *texture,
2605 unsigned int sub_resource_idx, void *parent, const struct wined3d_parent_ops *parent_ops,
2606 struct wined3d_rendertarget_view **view);
2607 ULONG __cdecl wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view *view);
2608 void * __cdecl wined3d_rendertarget_view_get_parent(const struct wined3d_rendertarget_view *view);
2609 struct wined3d_resource * __cdecl wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view *view);
2610 void * __cdecl wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view *view);
2611 ULONG __cdecl wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view *view);
2612 void __cdecl wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view *view, void *parent);
2613
2614 HRESULT __cdecl wined3d_sampler_create(struct wined3d_device *device, const struct wined3d_sampler_desc *desc,
2615 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_sampler **sampler);
2616 ULONG __cdecl wined3d_sampler_decref(struct wined3d_sampler *sampler);
2617 void * __cdecl wined3d_sampler_get_parent(const struct wined3d_sampler *sampler);
2618 ULONG __cdecl wined3d_sampler_incref(struct wined3d_sampler *sampler);
2619
2620 HRESULT __cdecl wined3d_shader_create_cs(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2621 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader);
2622 HRESULT __cdecl wined3d_shader_create_ds(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2623 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader);
2624 HRESULT __cdecl wined3d_shader_create_gs(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2625 const struct wined3d_stream_output_desc *so_desc, void *parent, const struct wined3d_parent_ops *parent_ops,
2626 struct wined3d_shader **shader);
2627 HRESULT __cdecl wined3d_shader_create_hs(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2628 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader);
2629 HRESULT __cdecl wined3d_shader_create_ps(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2630 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader);
2631 HRESULT __cdecl wined3d_shader_create_vs(struct wined3d_device *device, const struct wined3d_shader_desc *desc,
2632 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_shader **shader);
2633 ULONG __cdecl wined3d_shader_decref(struct wined3d_shader *shader);
2634 HRESULT __cdecl wined3d_shader_get_byte_code(const struct wined3d_shader *shader,
2635 void *byte_code, UINT *byte_code_size);
2636 void * __cdecl wined3d_shader_get_parent(const struct wined3d_shader *shader);
2637 ULONG __cdecl wined3d_shader_incref(struct wined3d_shader *shader);
2638 HRESULT __cdecl wined3d_shader_set_local_constants_float(struct wined3d_shader *shader,
2639 UINT start_idx, const float *src_data, UINT vector4f_count);
2640
2641 HRESULT __cdecl wined3d_shader_resource_view_create(const struct wined3d_view_desc *desc,
2642 struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops,
2643 struct wined3d_shader_resource_view **view);
2644 ULONG __cdecl wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view *view);
2645 void * __cdecl wined3d_shader_resource_view_get_parent(const struct wined3d_shader_resource_view *view);
2646 ULONG __cdecl wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view *view);
2647
2648 void __cdecl wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock);
2649 void __cdecl wined3d_stateblock_capture(struct wined3d_stateblock *stateblock);
2650 HRESULT __cdecl wined3d_stateblock_create(struct wined3d_device *device,
2651 enum wined3d_stateblock_type type, struct wined3d_stateblock **stateblock);
2652 ULONG __cdecl wined3d_stateblock_decref(struct wined3d_stateblock *stateblock);
2653 ULONG __cdecl wined3d_stateblock_incref(struct wined3d_stateblock *stateblock);
2654
2655 HRESULT __cdecl wined3d_swapchain_create(struct wined3d_device *device, struct wined3d_swapchain_desc *desc,
2656 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_swapchain **swapchain);
2657 ULONG __cdecl wined3d_swapchain_decref(struct wined3d_swapchain *swapchain);
2658 struct wined3d_texture * __cdecl wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain *swapchain,
2659 UINT backbuffer_idx);
2660 struct wined3d_device * __cdecl wined3d_swapchain_get_device(const struct wined3d_swapchain *swapchain);
2661 HRESULT __cdecl wined3d_swapchain_get_display_mode(const struct wined3d_swapchain *swapchain,
2662 struct wined3d_display_mode *mode, enum wined3d_display_rotation *rotation);
2663 HRESULT __cdecl wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain *swapchain,
2664 struct wined3d_texture *dst_texture, unsigned int sub_resource_idx);
2665 HRESULT __cdecl wined3d_swapchain_get_gamma_ramp(const struct wined3d_swapchain *swapchain,
2666 struct wined3d_gamma_ramp *ramp);
2667 void * __cdecl wined3d_swapchain_get_parent(const struct wined3d_swapchain *swapchain);
2668 void __cdecl wined3d_swapchain_get_desc(const struct wined3d_swapchain *swapchain,
2669 struct wined3d_swapchain_desc *desc);
2670 HRESULT __cdecl wined3d_swapchain_get_raster_status(const struct wined3d_swapchain *swapchain,
2671 struct wined3d_raster_status *raster_status);
2672 ULONG __cdecl wined3d_swapchain_incref(struct wined3d_swapchain *swapchain);
2673 HRESULT __cdecl wined3d_swapchain_present(struct wined3d_swapchain *swapchain,
2674 const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override, DWORD flags);
2675 HRESULT __cdecl wined3d_swapchain_resize_buffers(struct wined3d_swapchain *swapchain, unsigned int buffer_count,
2676 unsigned int width, unsigned int height, enum wined3d_format_id format_id,
2677 enum wined3d_multisample_type multisample_type, unsigned int multisample_quality);
2678 HRESULT __cdecl wined3d_swapchain_resize_target(struct wined3d_swapchain *swapchain,
2679 const struct wined3d_display_mode *mode);
2680 HRESULT __cdecl wined3d_swapchain_set_fullscreen(struct wined3d_swapchain *swapchain,
2681 const struct wined3d_swapchain_desc *desc, const struct wined3d_display_mode *mode);
2682 HRESULT __cdecl wined3d_swapchain_set_gamma_ramp(const struct wined3d_swapchain *swapchain,
2683 DWORD flags, const struct wined3d_gamma_ramp *ramp);
2684 void __cdecl wined3d_swapchain_set_palette(struct wined3d_swapchain *swapchain, struct wined3d_palette *palette);
2685 void __cdecl wined3d_swapchain_set_window(struct wined3d_swapchain *swapchain, HWND window);
2686
2687 HRESULT __cdecl wined3d_texture_add_dirty_region(struct wined3d_texture *texture,
2688 UINT layer, const struct wined3d_box *dirty_region);
2689 HRESULT __cdecl wined3d_texture_blt(struct wined3d_texture *dst_texture, unsigned int dst_idx, const RECT *dst_rect_in,
2690 struct wined3d_texture *src_texture, unsigned int src_idx, const RECT *src_rect_in, DWORD flags,
2691 const struct wined3d_blt_fx *fx, enum wined3d_texture_filter_type filter);
2692 HRESULT __cdecl wined3d_texture_create(struct wined3d_device *device, const struct wined3d_resource_desc *desc,
2693 UINT layer_count, UINT level_count, DWORD flags, const struct wined3d_sub_resource_data *data,
2694 void *parent, const struct wined3d_parent_ops *parent_ops, struct wined3d_texture **texture);
2695 struct wined3d_texture * __cdecl wined3d_texture_from_resource(struct wined3d_resource *resource);
2696 ULONG __cdecl wined3d_texture_decref(struct wined3d_texture *texture);
2697 void __cdecl wined3d_texture_generate_mipmaps(struct wined3d_texture *texture);
2698 enum wined3d_texture_filter_type __cdecl wined3d_texture_get_autogen_filter_type(const struct wined3d_texture *texture);
2699 HRESULT __cdecl wined3d_texture_get_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC *dc);
2700 DWORD __cdecl wined3d_texture_get_level_count(const struct wined3d_texture *texture);
2701 DWORD __cdecl wined3d_texture_get_lod(const struct wined3d_texture *texture);
2702 HRESULT __cdecl wined3d_texture_get_overlay_position(const struct wined3d_texture *texture,
2703 unsigned int sub_resource_idx, LONG *x, LONG *y);
2704 void * __cdecl wined3d_texture_get_parent(const struct wined3d_texture *texture);
2705 void __cdecl wined3d_texture_get_pitch(const struct wined3d_texture *texture,
2706 unsigned int level, unsigned int *row_pitch, unsigned int *slice_pitch);
2707 struct wined3d_resource * __cdecl wined3d_texture_get_resource(struct wined3d_texture *texture);
2708 HRESULT __cdecl wined3d_texture_get_sub_resource_desc(const struct wined3d_texture *texture,
2709 unsigned int sub_resource_idx, struct wined3d_sub_resource_desc *desc);
2710 void * __cdecl wined3d_texture_get_sub_resource_parent(struct wined3d_texture *texture, unsigned int sub_resource_idx);
2711 ULONG __cdecl wined3d_texture_incref(struct wined3d_texture *texture);
2712 HRESULT __cdecl wined3d_texture_release_dc(struct wined3d_texture *texture, unsigned int sub_resource_idx, HDC dc);
2713 HRESULT __cdecl wined3d_texture_set_autogen_filter_type(struct wined3d_texture *texture,
2714 enum wined3d_texture_filter_type filter_type);
2715 HRESULT __cdecl wined3d_texture_set_color_key(struct wined3d_texture *texture,
2716 DWORD flags, const struct wined3d_color_key *color_key);
2717 DWORD __cdecl wined3d_texture_set_lod(struct wined3d_texture *texture, DWORD lod);
2718 HRESULT __cdecl wined3d_texture_set_overlay_position(struct wined3d_texture *texture,
2719 unsigned int sub_resource_idx, LONG x, LONG y);
2720 void __cdecl wined3d_texture_set_sub_resource_parent(struct wined3d_texture *texture,
2721 unsigned int sub_resource_idx, void *parent);
2722 HRESULT __cdecl wined3d_texture_update_desc(struct wined3d_texture *texture,
2723 UINT width, UINT height, enum wined3d_format_id format_id,
2724 enum wined3d_multisample_type multisample_type, UINT multisample_quality,
2725 void *mem, UINT pitch);
2726 HRESULT __cdecl wined3d_texture_update_overlay(struct wined3d_texture *texture, unsigned int sub_resource_idx,
2727 const RECT *src_rect, struct wined3d_texture *dst_texture, unsigned int dst_sub_resource_idx,
2728 const RECT *dst_rect, DWORD flags);
2729
2730 HRESULT __cdecl wined3d_unordered_access_view_create(const struct wined3d_view_desc *desc,
2731 struct wined3d_resource *resource, void *parent, const struct wined3d_parent_ops *parent_ops,
2732 struct wined3d_unordered_access_view **view);
2733 ULONG __cdecl wined3d_unordered_access_view_decref(struct wined3d_unordered_access_view *view);
2734 void * __cdecl wined3d_unordered_access_view_get_parent(const struct wined3d_unordered_access_view *view);
2735 ULONG __cdecl wined3d_unordered_access_view_incref(struct wined3d_unordered_access_view *view);
2736
2737 HRESULT __cdecl wined3d_vertex_declaration_create(struct wined3d_device *device,
2738 const struct wined3d_vertex_element *elements, UINT element_count, void *parent,
2739 const struct wined3d_parent_ops *parent_ops, struct wined3d_vertex_declaration **declaration);
2740 HRESULT __cdecl wined3d_vertex_declaration_create_from_fvf(struct wined3d_device *device,
2741 DWORD fvf, void *parent, const struct wined3d_parent_ops *parent_ops,
2742 struct wined3d_vertex_declaration **declaration);
2743 ULONG __cdecl wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration);
2744 void * __cdecl wined3d_vertex_declaration_get_parent(const struct wined3d_vertex_declaration *declaration);
2745 ULONG __cdecl wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration);
2746
2747 /* Return the integer base-2 logarithm of x. Undefined for x == 0. */
2748 static inline unsigned int wined3d_log2i(unsigned int x)
2749 {
2750 #ifdef HAVE___BUILTIN_CLZ
2751 return __builtin_clz(x) ^ 0x1f;
2752 #else
2753 static const unsigned int l[] =
2754 {
2755 ~0u, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2756 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2757 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2758 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2759 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2760 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2761 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2762 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2763 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2764 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2765 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2766 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2767 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2768 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2769 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2770 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2771 };
2772 unsigned int i;
2773
2774 return (i = x >> 16) ? (x = i >> 8) ? l[x] + 24 : l[i] + 16 : (i = x >> 8) ? l[i] + 8 : l[x];
2775 #endif
2776 }
2777
2778 static inline void wined3d_box_set(struct wined3d_box *box, unsigned int left, unsigned int top,
2779 unsigned int right, unsigned int bottom, unsigned int front, unsigned int back)
2780 {
2781 box->left = left;
2782 box->top = top;
2783 box->right = right;
2784 box->bottom = bottom;
2785 box->front = front;
2786 box->back = back;
2787 }
2788
2789 BOOL wined3d_dxt1_decode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2790 enum wined3d_format_id format, unsigned int w, unsigned int h);
2791 BOOL wined3d_dxt1_encode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2792 enum wined3d_format_id format, unsigned int w, unsigned int h);
2793 BOOL wined3d_dxt3_decode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2794 enum wined3d_format_id format, unsigned int w, unsigned int h);
2795 BOOL wined3d_dxt3_encode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2796 enum wined3d_format_id format, unsigned int w, unsigned int h);
2797 BOOL wined3d_dxt5_decode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2798 enum wined3d_format_id format, unsigned int w, unsigned int h);
2799 BOOL wined3d_dxt5_encode(const BYTE *src, BYTE *dst, DWORD pitch_in, DWORD pitch_out,
2800 enum wined3d_format_id format, unsigned int w, unsigned int h);
2801 BOOL wined3d_dxtn_supported(void);
2802
2803 #endif /* __WINE_WINED3D_H */