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