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