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