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
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_NOAUTOGEN 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 enum wined3d_light_type
55 WINED3D_LIGHT_POINT
= 1,
56 WINED3D_LIGHT_SPOT
= 2,
57 WINED3D_LIGHT_DIRECTIONAL
= 3,
58 WINED3D_LIGHT_PARALLELPOINT
= 4, /* < D3D7 */
59 WINED3D_LIGHT_GLSPOT
= 5, /* < D3D5, not actually usable */
62 enum wined3d_primitive_type
64 WINED3D_PT_UNDEFINED
= 0,
65 WINED3D_PT_POINTLIST
= 1,
66 WINED3D_PT_LINELIST
= 2,
67 WINED3D_PT_LINESTRIP
= 3,
68 WINED3D_PT_TRIANGLELIST
= 4,
69 WINED3D_PT_TRIANGLESTRIP
= 5,
70 WINED3D_PT_TRIANGLEFAN
= 6,
71 WINED3D_PT_LINELIST_ADJ
= 10,
72 WINED3D_PT_LINESTRIP_ADJ
= 11,
73 WINED3D_PT_TRIANGLELIST_ADJ
= 12,
74 WINED3D_PT_TRIANGLESTRIP_ADJ
= 13,
77 enum wined3d_device_type
79 WINED3D_DEVICE_TYPE_HAL
= 1,
80 WINED3D_DEVICE_TYPE_REF
= 2,
81 WINED3D_DEVICE_TYPE_SW
= 3,
82 WINED3D_DEVICE_TYPE_NULLREF
= 4,
85 enum wined3d_degree_type
87 WINED3D_DEGREE_LINEAR
= 1,
88 WINED3D_DEGREE_QUADRATIC
= 2,
89 WINED3D_DEGREE_CUBIC
= 3,
90 WINED3D_DEGREE_QUINTIC
= 5,
93 #define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \
94 ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | \
95 ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24))
97 enum wined3d_format_id
100 WINED3DFMT_B8G8R8_UNORM
,
101 WINED3DFMT_B5G5R5X1_UNORM
,
102 WINED3DFMT_B4G4R4A4_UNORM
,
103 WINED3DFMT_B2G3R3_UNORM
,
104 WINED3DFMT_B2G3R3A8_UNORM
,
105 WINED3DFMT_B4G4R4X4_UNORM
,
106 WINED3DFMT_R8G8B8X8_UNORM
,
107 WINED3DFMT_B10G10R10A2_UNORM
,
108 WINED3DFMT_P8_UINT_A8_UNORM
,
111 WINED3DFMT_L8A8_UNORM
,
112 WINED3DFMT_L4A4_UNORM
,
113 WINED3DFMT_R5G5_SNORM_L6_UNORM
,
114 WINED3DFMT_R8G8_SNORM_L8X8_UNORM
,
115 WINED3DFMT_R10G11B11_SNORM
,
116 WINED3DFMT_R10G10B10_SNORM_A2_UNORM
,
117 WINED3DFMT_D16_LOCKABLE
,
118 WINED3DFMT_D32_UNORM
,
119 WINED3DFMT_S1_UINT_D15_UNORM
,
120 WINED3DFMT_X8D24_UNORM
,
121 WINED3DFMT_S4X4_UINT_D24_UNORM
,
122 WINED3DFMT_L16_UNORM
,
123 WINED3DFMT_S8_UINT_D24_FLOAT
,
124 WINED3DFMT_VERTEXDATA
,
125 WINED3DFMT_R8G8_SNORM_Cx
,
126 WINED3DFMT_R32G32B32A32_TYPELESS
,
127 WINED3DFMT_R32G32B32A32_FLOAT
,
128 WINED3DFMT_R32G32B32A32_UINT
,
129 WINED3DFMT_R32G32B32A32_SINT
,
130 WINED3DFMT_R32G32B32_TYPELESS
,
131 WINED3DFMT_R32G32B32_FLOAT
,
132 WINED3DFMT_R32G32B32_UINT
,
133 WINED3DFMT_R32G32B32_SINT
,
134 WINED3DFMT_R16G16B16A16_TYPELESS
,
135 WINED3DFMT_R16G16B16A16_FLOAT
,
136 WINED3DFMT_R16G16B16A16_UNORM
,
137 WINED3DFMT_R16G16B16A16_UINT
,
138 WINED3DFMT_R16G16B16A16_SNORM
,
139 WINED3DFMT_R16G16B16A16_SINT
,
140 WINED3DFMT_R32G32_TYPELESS
,
141 WINED3DFMT_R32G32_FLOAT
,
142 WINED3DFMT_R32G32_UINT
,
143 WINED3DFMT_R32G32_SINT
,
144 WINED3DFMT_R32G8X24_TYPELESS
,
145 WINED3DFMT_D32_FLOAT_S8X24_UINT
,
146 WINED3DFMT_R32_FLOAT_X8X24_TYPELESS
,
147 WINED3DFMT_X32_TYPELESS_G8X24_UINT
,
148 WINED3DFMT_R10G10B10A2_TYPELESS
,
149 WINED3DFMT_R10G10B10A2_UNORM
,
150 WINED3DFMT_R10G10B10A2_UINT
,
151 WINED3DFMT_R10G10B10A2_SNORM
,
152 WINED3DFMT_R11G11B10_FLOAT
,
153 WINED3DFMT_R8G8B8A8_TYPELESS
,
154 WINED3DFMT_R8G8B8A8_UNORM
,
155 WINED3DFMT_R8G8B8A8_UNORM_SRGB
,
156 WINED3DFMT_R8G8B8A8_UINT
,
157 WINED3DFMT_R8G8B8A8_SNORM
,
158 WINED3DFMT_R8G8B8A8_SINT
,
159 WINED3DFMT_R16G16_TYPELESS
,
160 WINED3DFMT_R16G16_FLOAT
,
161 WINED3DFMT_R16G16_UNORM
,
162 WINED3DFMT_R16G16_UINT
,
163 WINED3DFMT_R16G16_SNORM
,
164 WINED3DFMT_R16G16_SINT
,
165 WINED3DFMT_R32_TYPELESS
,
166 WINED3DFMT_D32_FLOAT
,
167 WINED3DFMT_R32_FLOAT
,
170 WINED3DFMT_R24G8_TYPELESS
,
171 WINED3DFMT_D24_UNORM_S8_UINT
,
172 WINED3DFMT_R24_UNORM_X8_TYPELESS
,
173 WINED3DFMT_X24_TYPELESS_G8_UINT
,
174 WINED3DFMT_R8G8_TYPELESS
,
175 WINED3DFMT_R8G8_UNORM
,
176 WINED3DFMT_R8G8_UINT
,
177 WINED3DFMT_R8G8_SNORM
,
178 WINED3DFMT_R8G8_SINT
,
179 WINED3DFMT_R16_TYPELESS
,
180 WINED3DFMT_R16_FLOAT
,
181 WINED3DFMT_D16_UNORM
,
182 WINED3DFMT_R16_UNORM
,
184 WINED3DFMT_R16_SNORM
,
186 WINED3DFMT_R8_TYPELESS
,
193 WINED3DFMT_R9G9B9E5_SHAREDEXP
,
194 WINED3DFMT_R8G8_B8G8_UNORM
,
195 WINED3DFMT_G8R8_G8B8_UNORM
,
196 WINED3DFMT_BC1_TYPELESS
,
197 WINED3DFMT_BC1_UNORM
,
198 WINED3DFMT_BC1_UNORM_SRGB
,
199 WINED3DFMT_BC2_TYPELESS
,
200 WINED3DFMT_BC2_UNORM
,
201 WINED3DFMT_BC2_UNORM_SRGB
,
202 WINED3DFMT_BC3_TYPELESS
,
203 WINED3DFMT_BC3_UNORM
,
204 WINED3DFMT_BC3_UNORM_SRGB
,
205 WINED3DFMT_BC4_TYPELESS
,
206 WINED3DFMT_BC4_UNORM
,
207 WINED3DFMT_BC4_SNORM
,
208 WINED3DFMT_BC5_TYPELESS
,
209 WINED3DFMT_BC5_UNORM
,
210 WINED3DFMT_BC5_SNORM
,
211 WINED3DFMT_B5G6R5_UNORM
,
212 WINED3DFMT_B5G5R5A1_UNORM
,
213 WINED3DFMT_B8G8R8A8_UNORM
,
214 WINED3DFMT_B8G8R8X8_UNORM
,
215 WINED3DFMT_B8G8R8A8_TYPELESS
,
216 WINED3DFMT_B8G8R8A8_UNORM_SRGB
,
217 WINED3DFMT_B8G8R8X8_TYPELESS
,
218 WINED3DFMT_B8G8R8X8_UNORM_SRGB
,
219 WINED3DFMT_BC7_TYPELESS
,
220 WINED3DFMT_BC7_UNORM
,
221 WINED3DFMT_BC7_UNORM_SRGB
,
222 /* FOURCC formats. */
223 WINED3DFMT_UYVY
= WINEMAKEFOURCC('U','Y','V','Y'),
224 WINED3DFMT_YUY2
= WINEMAKEFOURCC('Y','U','Y','2'),
225 WINED3DFMT_YV12
= WINEMAKEFOURCC('Y','V','1','2'),
226 WINED3DFMT_DXT1
= WINEMAKEFOURCC('D','X','T','1'),
227 WINED3DFMT_DXT2
= WINEMAKEFOURCC('D','X','T','2'),
228 WINED3DFMT_DXT3
= WINEMAKEFOURCC('D','X','T','3'),
229 WINED3DFMT_DXT4
= WINEMAKEFOURCC('D','X','T','4'),
230 WINED3DFMT_DXT5
= WINEMAKEFOURCC('D','X','T','5'),
231 WINED3DFMT_MULTI2_ARGB8
= WINEMAKEFOURCC('M','E','T','1'),
232 WINED3DFMT_G8R8_G8B8
= WINEMAKEFOURCC('G','R','G','B'),
233 WINED3DFMT_R8G8_B8G8
= WINEMAKEFOURCC('R','G','B','G'),
234 WINED3DFMT_ATI1N
= WINEMAKEFOURCC('A','T','I','1'),
235 WINED3DFMT_ATI2N
= WINEMAKEFOURCC('A','T','I','2'),
236 WINED3DFMT_INST
= WINEMAKEFOURCC('I','N','S','T'),
237 WINED3DFMT_NVDB
= WINEMAKEFOURCC('N','V','D','B'),
238 WINED3DFMT_NVHU
= WINEMAKEFOURCC('N','V','H','U'),
239 WINED3DFMT_NVHS
= WINEMAKEFOURCC('N','V','H','S'),
240 WINED3DFMT_INTZ
= WINEMAKEFOURCC('I','N','T','Z'),
241 WINED3DFMT_RESZ
= WINEMAKEFOURCC('R','E','S','Z'),
242 WINED3DFMT_NULL
= WINEMAKEFOURCC('N','U','L','L'),
243 WINED3DFMT_R16
= WINEMAKEFOURCC(' ','R','1','6'),
244 WINED3DFMT_AL16
= WINEMAKEFOURCC('A','L','1','6'),
245 WINED3DFMT_NV12
= WINEMAKEFOURCC('N','V','1','2'),
247 WINED3DFMT_FORCE_DWORD
= 0xffffffff
250 enum wined3d_render_state
252 WINED3D_RS_ANTIALIAS
= 2, /* d3d7 */
253 WINED3D_RS_TEXTUREPERSPECTIVE
= 4, /* d3d7 */
254 WINED3D_RS_WRAPU
= 5, /* d3d7 */
255 WINED3D_RS_WRAPV
= 6, /* d3d7 */
256 WINED3D_RS_ZENABLE
= 7,
257 WINED3D_RS_FILLMODE
= 8,
258 WINED3D_RS_SHADEMODE
= 9,
259 WINED3D_RS_LINEPATTERN
= 10, /* d3d7, d3d8 */
260 WINED3D_RS_MONOENABLE
= 11, /* d3d7 */
261 WINED3D_RS_ROP2
= 12, /* d3d7 */
262 WINED3D_RS_PLANEMASK
= 13, /* d3d7 */
263 WINED3D_RS_ZWRITEENABLE
= 14,
264 WINED3D_RS_ALPHATESTENABLE
= 15,
265 WINED3D_RS_LASTPIXEL
= 16,
266 WINED3D_RS_SRCBLEND
= 19,
267 WINED3D_RS_DESTBLEND
= 20,
268 WINED3D_RS_CULLMODE
= 22,
269 WINED3D_RS_ZFUNC
= 23,
270 WINED3D_RS_ALPHAREF
= 24,
271 WINED3D_RS_ALPHAFUNC
= 25,
272 WINED3D_RS_DITHERENABLE
= 26,
273 WINED3D_RS_ALPHABLENDENABLE
= 27,
274 WINED3D_RS_FOGENABLE
= 28,
275 WINED3D_RS_SPECULARENABLE
= 29,
276 WINED3D_RS_ZVISIBLE
= 30, /* d3d7, d3d8 */
277 WINED3D_RS_SUBPIXEL
= 31, /* d3d7 */
278 WINED3D_RS_SUBPIXELX
= 32, /* d3d7 */
279 WINED3D_RS_STIPPLEDALPHA
= 33, /* d3d7 */
280 WINED3D_RS_FOGCOLOR
= 34,
281 WINED3D_RS_FOGTABLEMODE
= 35,
282 WINED3D_RS_FOGSTART
= 36,
283 WINED3D_RS_FOGEND
= 37,
284 WINED3D_RS_FOGDENSITY
= 38,
285 WINED3D_RS_STIPPLEENABLE
= 39, /* d3d7 */
286 WINED3D_RS_EDGEANTIALIAS
= 40, /* d3d7, d3d8 */
287 WINED3D_RS_COLORKEYENABLE
= 41, /* d3d7 */
288 WINED3D_RS_MIPMAPLODBIAS
= 46, /* d3d7 */
289 WINED3D_RS_RANGEFOGENABLE
= 48,
290 WINED3D_RS_ANISOTROPY
= 49, /* d3d7 */
291 WINED3D_RS_FLUSHBATCH
= 50, /* d3d7 */
292 WINED3D_RS_TRANSLUCENTSORTINDEPENDENT
= 51, /* d3d7 */
293 WINED3D_RS_STENCILENABLE
= 52,
294 WINED3D_RS_STENCILFAIL
= 53,
295 WINED3D_RS_STENCILZFAIL
= 54,
296 WINED3D_RS_STENCILPASS
= 55,
297 WINED3D_RS_STENCILFUNC
= 56,
298 WINED3D_RS_STENCILREF
= 57,
299 WINED3D_RS_STENCILMASK
= 58,
300 WINED3D_RS_STENCILWRITEMASK
= 59,
301 WINED3D_RS_TEXTUREFACTOR
= 60,
302 WINED3D_RS_WRAP0
= 128,
303 WINED3D_RS_WRAP1
= 129,
304 WINED3D_RS_WRAP2
= 130,
305 WINED3D_RS_WRAP3
= 131,
306 WINED3D_RS_WRAP4
= 132,
307 WINED3D_RS_WRAP5
= 133,
308 WINED3D_RS_WRAP6
= 134,
309 WINED3D_RS_WRAP7
= 135,
310 WINED3D_RS_CLIPPING
= 136,
311 WINED3D_RS_LIGHTING
= 137,
312 WINED3D_RS_EXTENTS
= 138, /* d3d7 */
313 WINED3D_RS_AMBIENT
= 139,
314 WINED3D_RS_FOGVERTEXMODE
= 140,
315 WINED3D_RS_COLORVERTEX
= 141,
316 WINED3D_RS_LOCALVIEWER
= 142,
317 WINED3D_RS_NORMALIZENORMALS
= 143,
318 WINED3D_RS_COLORKEYBLENDENABLE
= 144, /* d3d7 */
319 WINED3D_RS_DIFFUSEMATERIALSOURCE
= 145,
320 WINED3D_RS_SPECULARMATERIALSOURCE
= 146,
321 WINED3D_RS_AMBIENTMATERIALSOURCE
= 147,
322 WINED3D_RS_EMISSIVEMATERIALSOURCE
= 148,
323 WINED3D_RS_VERTEXBLEND
= 151,
324 WINED3D_RS_CLIPPLANEENABLE
= 152,
325 WINED3D_RS_SOFTWAREVERTEXPROCESSING
= 153, /* d3d8 */
326 WINED3D_RS_POINTSIZE
= 154,
327 WINED3D_RS_POINTSIZE_MIN
= 155,
328 WINED3D_RS_POINTSPRITEENABLE
= 156,
329 WINED3D_RS_POINTSCALEENABLE
= 157,
330 WINED3D_RS_POINTSCALE_A
= 158,
331 WINED3D_RS_POINTSCALE_B
= 159,
332 WINED3D_RS_POINTSCALE_C
= 160,
333 WINED3D_RS_MULTISAMPLEANTIALIAS
= 161,
334 WINED3D_RS_MULTISAMPLEMASK
= 162,
335 WINED3D_RS_PATCHEDGESTYLE
= 163,
336 WINED3D_RS_PATCHSEGMENTS
= 164, /* d3d8 */
337 WINED3D_RS_DEBUGMONITORTOKEN
= 165,
338 WINED3D_RS_POINTSIZE_MAX
= 166,
339 WINED3D_RS_INDEXEDVERTEXBLENDENABLE
= 167,
340 WINED3D_RS_COLORWRITEENABLE
= 168,
341 WINED3D_RS_TWEENFACTOR
= 170,
342 WINED3D_RS_BLENDOP
= 171,
343 WINED3D_RS_POSITIONDEGREE
= 172,
344 WINED3D_RS_NORMALDEGREE
= 173,
345 WINED3D_RS_SCISSORTESTENABLE
= 174,
346 WINED3D_RS_SLOPESCALEDEPTHBIAS
= 175,
347 WINED3D_RS_ANTIALIASEDLINEENABLE
= 176,
348 WINED3D_RS_MINTESSELLATIONLEVEL
= 178,
349 WINED3D_RS_MAXTESSELLATIONLEVEL
= 179,
350 WINED3D_RS_ADAPTIVETESS_X
= 180,
351 WINED3D_RS_ADAPTIVETESS_Y
= 181,
352 WINED3D_RS_ADAPTIVETESS_Z
= 182,
353 WINED3D_RS_ADAPTIVETESS_W
= 183,
354 WINED3D_RS_ENABLEADAPTIVETESSELLATION
= 184,
355 WINED3D_RS_TWOSIDEDSTENCILMODE
= 185,
356 WINED3D_RS_CCW_STENCILFAIL
= 186,
357 WINED3D_RS_CCW_STENCILZFAIL
= 187,
358 WINED3D_RS_CCW_STENCILPASS
= 188,
359 WINED3D_RS_CCW_STENCILFUNC
= 189,
360 WINED3D_RS_COLORWRITEENABLE1
= 190,
361 WINED3D_RS_COLORWRITEENABLE2
= 191,
362 WINED3D_RS_COLORWRITEENABLE3
= 192,
363 WINED3D_RS_BLENDFACTOR
= 193,
364 WINED3D_RS_SRGBWRITEENABLE
= 194,
365 WINED3D_RS_DEPTHBIAS
= 195,
366 WINED3D_RS_WRAP8
= 198,
367 WINED3D_RS_WRAP9
= 199,
368 WINED3D_RS_WRAP10
= 200,
369 WINED3D_RS_WRAP11
= 201,
370 WINED3D_RS_WRAP12
= 202,
371 WINED3D_RS_WRAP13
= 203,
372 WINED3D_RS_WRAP14
= 204,
373 WINED3D_RS_WRAP15
= 205,
374 WINED3D_RS_SEPARATEALPHABLENDENABLE
= 206,
375 WINED3D_RS_SRCBLENDALPHA
= 207,
376 WINED3D_RS_DESTBLENDALPHA
= 208,
377 WINED3D_RS_BLENDOPALPHA
= 209,
379 #define WINEHIGHEST_RENDER_STATE WINED3D_RS_BLENDOPALPHA
383 WINED3D_BLEND_ZERO
= 1,
384 WINED3D_BLEND_ONE
= 2,
385 WINED3D_BLEND_SRCCOLOR
= 3,
386 WINED3D_BLEND_INVSRCCOLOR
= 4,
387 WINED3D_BLEND_SRCALPHA
= 5,
388 WINED3D_BLEND_INVSRCALPHA
= 6,
389 WINED3D_BLEND_DESTALPHA
= 7,
390 WINED3D_BLEND_INVDESTALPHA
= 8,
391 WINED3D_BLEND_DESTCOLOR
= 9,
392 WINED3D_BLEND_INVDESTCOLOR
= 10,
393 WINED3D_BLEND_SRCALPHASAT
= 11,
394 WINED3D_BLEND_BOTHSRCALPHA
= 12,
395 WINED3D_BLEND_BOTHINVSRCALPHA
= 13,
396 WINED3D_BLEND_BLENDFACTOR
= 14,
397 WINED3D_BLEND_INVBLENDFACTOR
= 15,
400 enum wined3d_blend_op
402 WINED3D_BLEND_OP_ADD
= 1,
403 WINED3D_BLEND_OP_SUBTRACT
= 2,
404 WINED3D_BLEND_OP_REVSUBTRACT
= 3,
405 WINED3D_BLEND_OP_MIN
= 4,
406 WINED3D_BLEND_OP_MAX
= 5,
409 enum wined3d_vertex_blend_flags
411 WINED3D_VBF_DISABLE
= 0,
412 WINED3D_VBF_1WEIGHTS
= 1,
413 WINED3D_VBF_2WEIGHTS
= 2,
414 WINED3D_VBF_3WEIGHTS
= 3,
415 WINED3D_VBF_TWEENING
= 255,
416 WINED3D_VBF_0WEIGHTS
= 256,
419 enum wined3d_cmp_func
421 WINED3D_CMP_NEVER
= 1,
422 WINED3D_CMP_LESS
= 2,
423 WINED3D_CMP_EQUAL
= 3,
424 WINED3D_CMP_LESSEQUAL
= 4,
425 WINED3D_CMP_GREATER
= 5,
426 WINED3D_CMP_NOTEQUAL
= 6,
427 WINED3D_CMP_GREATEREQUAL
= 7,
428 WINED3D_CMP_ALWAYS
= 8,
431 enum wined3d_depth_buffer_type
433 WINED3D_ZB_FALSE
= 0,
438 enum wined3d_fog_mode
440 WINED3D_FOG_NONE
= 0,
442 WINED3D_FOG_EXP2
= 2,
443 WINED3D_FOG_LINEAR
= 3,
446 enum wined3d_shade_mode
448 WINED3D_SHADE_FLAT
= 1,
449 WINED3D_SHADE_GOURAUD
= 2,
450 WINED3D_SHADE_PHONG
= 3,
453 enum wined3d_fill_mode
455 WINED3D_FILL_POINT
= 1,
456 WINED3D_FILL_WIREFRAME
= 2,
457 WINED3D_FILL_SOLID
= 3,
462 WINED3D_CULL_NONE
= 1,
464 WINED3D_CULL_CCW
= 3,
467 enum wined3d_stencil_op
469 WINED3D_STENCIL_OP_KEEP
= 1,
470 WINED3D_STENCIL_OP_ZERO
= 2,
471 WINED3D_STENCIL_OP_REPLACE
= 3,
472 WINED3D_STENCIL_OP_INCR_SAT
= 4,
473 WINED3D_STENCIL_OP_DECR_SAT
= 5,
474 WINED3D_STENCIL_OP_INVERT
= 6,
475 WINED3D_STENCIL_OP_INCR
= 7,
476 WINED3D_STENCIL_OP_DECR
= 8,
479 enum wined3d_material_color_source
481 WINED3D_MCS_MATERIAL
= 0,
482 WINED3D_MCS_COLOR1
= 1,
483 WINED3D_MCS_COLOR2
= 2,
486 enum wined3d_patch_edge_style
488 WINED3D_PATCH_EDGE_DISCRETE
= 0,
489 WINED3D_PATCH_EDGE_CONTINUOUS
= 1,
492 enum wined3d_swap_effect
494 WINED3D_SWAP_EFFECT_DISCARD
= 1,
495 WINED3D_SWAP_EFFECT_FLIP
= 2,
496 WINED3D_SWAP_EFFECT_COPY
= 3,
497 WINED3D_SWAP_EFFECT_COPY_VSYNC
= 4,
500 enum wined3d_sampler_state
502 WINED3D_SAMP_ADDRESS_U
= 1,
503 WINED3D_SAMP_ADDRESS_V
= 2,
504 WINED3D_SAMP_ADDRESS_W
= 3,
505 WINED3D_SAMP_BORDER_COLOR
= 4,
506 WINED3D_SAMP_MAG_FILTER
= 5,
507 WINED3D_SAMP_MIN_FILTER
= 6,
508 WINED3D_SAMP_MIP_FILTER
= 7,
509 WINED3D_SAMP_MIPMAP_LOD_BIAS
= 8,
510 WINED3D_SAMP_MAX_MIP_LEVEL
= 9,
511 WINED3D_SAMP_MAX_ANISOTROPY
= 10,
512 WINED3D_SAMP_SRGB_TEXTURE
= 11,
513 WINED3D_SAMP_ELEMENT_INDEX
= 12,
514 WINED3D_SAMP_DMAP_OFFSET
= 13,
516 #define WINED3D_HIGHEST_SAMPLER_STATE WINED3D_SAMP_DMAP_OFFSET
518 enum wined3d_multisample_type
520 WINED3D_MULTISAMPLE_NONE
= 0,
521 WINED3D_MULTISAMPLE_NON_MASKABLE
= 1,
522 WINED3D_MULTISAMPLE_2_SAMPLES
= 2,
523 WINED3D_MULTISAMPLE_3_SAMPLES
= 3,
524 WINED3D_MULTISAMPLE_4_SAMPLES
= 4,
525 WINED3D_MULTISAMPLE_5_SAMPLES
= 5,
526 WINED3D_MULTISAMPLE_6_SAMPLES
= 6,
527 WINED3D_MULTISAMPLE_7_SAMPLES
= 7,
528 WINED3D_MULTISAMPLE_8_SAMPLES
= 8,
529 WINED3D_MULTISAMPLE_9_SAMPLES
= 9,
530 WINED3D_MULTISAMPLE_10_SAMPLES
= 10,
531 WINED3D_MULTISAMPLE_11_SAMPLES
= 11,
532 WINED3D_MULTISAMPLE_12_SAMPLES
= 12,
533 WINED3D_MULTISAMPLE_13_SAMPLES
= 13,
534 WINED3D_MULTISAMPLE_14_SAMPLES
= 14,
535 WINED3D_MULTISAMPLE_15_SAMPLES
= 15,
536 WINED3D_MULTISAMPLE_16_SAMPLES
= 16,
539 enum wined3d_texture_stage_state
541 WINED3D_TSS_COLOR_OP
= 0,
542 WINED3D_TSS_COLOR_ARG1
= 1,
543 WINED3D_TSS_COLOR_ARG2
= 2,
544 WINED3D_TSS_ALPHA_OP
= 3,
545 WINED3D_TSS_ALPHA_ARG1
= 4,
546 WINED3D_TSS_ALPHA_ARG2
= 5,
547 WINED3D_TSS_BUMPENV_MAT00
= 6,
548 WINED3D_TSS_BUMPENV_MAT01
= 7,
549 WINED3D_TSS_BUMPENV_MAT10
= 8,
550 WINED3D_TSS_BUMPENV_MAT11
= 9,
551 WINED3D_TSS_TEXCOORD_INDEX
= 10,
552 WINED3D_TSS_BUMPENV_LSCALE
= 11,
553 WINED3D_TSS_BUMPENV_LOFFSET
= 12,
554 WINED3D_TSS_TEXTURE_TRANSFORM_FLAGS
= 13,
555 WINED3D_TSS_COLOR_ARG0
= 14,
556 WINED3D_TSS_ALPHA_ARG0
= 15,
557 WINED3D_TSS_RESULT_ARG
= 16,
558 WINED3D_TSS_CONSTANT
= 17,
559 WINED3D_TSS_INVALID
= ~0U,
561 #define WINED3D_HIGHEST_TEXTURE_STATE WINED3D_TSS_CONSTANT
563 enum wined3d_texture_transform_flags
565 WINED3D_TTFF_DISABLE
= 0,
566 WINED3D_TTFF_COUNT1
= 1,
567 WINED3D_TTFF_COUNT2
= 2,
568 WINED3D_TTFF_COUNT3
= 3,
569 WINED3D_TTFF_COUNT4
= 4,
570 WINED3D_TTFF_PROJECTED
= 256,
573 enum wined3d_texture_op
575 WINED3D_TOP_DISABLE
= 1,
576 WINED3D_TOP_SELECT_ARG1
= 2,
577 WINED3D_TOP_SELECT_ARG2
= 3,
578 WINED3D_TOP_MODULATE
= 4,
579 WINED3D_TOP_MODULATE_2X
= 5,
580 WINED3D_TOP_MODULATE_4X
= 6,
582 WINED3D_TOP_ADD_SIGNED
= 8,
583 WINED3D_TOP_ADD_SIGNED_2X
= 9,
584 WINED3D_TOP_SUBTRACT
= 10,
585 WINED3D_TOP_ADD_SMOOTH
= 11,
586 WINED3D_TOP_BLEND_DIFFUSE_ALPHA
= 12,
587 WINED3D_TOP_BLEND_TEXTURE_ALPHA
= 13,
588 WINED3D_TOP_BLEND_FACTOR_ALPHA
= 14,
589 WINED3D_TOP_BLEND_TEXTURE_ALPHA_PM
= 15,
590 WINED3D_TOP_BLEND_CURRENT_ALPHA
= 16,
591 WINED3D_TOP_PREMODULATE
= 17,
592 WINED3D_TOP_MODULATE_ALPHA_ADD_COLOR
= 18,
593 WINED3D_TOP_MODULATE_COLOR_ADD_ALPHA
= 19,
594 WINED3D_TOP_MODULATE_INVALPHA_ADD_COLOR
= 20,
595 WINED3D_TOP_MODULATE_INVCOLOR_ADD_ALPHA
= 21,
596 WINED3D_TOP_BUMPENVMAP
= 22,
597 WINED3D_TOP_BUMPENVMAP_LUMINANCE
= 23,
598 WINED3D_TOP_DOTPRODUCT3
= 24,
599 WINED3D_TOP_MULTIPLY_ADD
= 25,
600 WINED3D_TOP_LERP
= 26,
603 enum wined3d_texture_address
605 WINED3D_TADDRESS_WRAP
= 1,
606 WINED3D_TADDRESS_MIRROR
= 2,
607 WINED3D_TADDRESS_CLAMP
= 3,
608 WINED3D_TADDRESS_BORDER
= 4,
609 WINED3D_TADDRESS_MIRROR_ONCE
= 5,
612 enum wined3d_transform_state
615 WINED3D_TS_PROJECTION
= 3,
616 WINED3D_TS_TEXTURE0
= 16,
617 WINED3D_TS_TEXTURE1
= 17,
618 WINED3D_TS_TEXTURE2
= 18,
619 WINED3D_TS_TEXTURE3
= 19,
620 WINED3D_TS_TEXTURE4
= 20,
621 WINED3D_TS_TEXTURE5
= 21,
622 WINED3D_TS_TEXTURE6
= 22,
623 WINED3D_TS_TEXTURE7
= 23,
624 WINED3D_TS_WORLD
= 256, /* WINED3D_TS_WORLD_MATRIX(0) */
625 WINED3D_TS_WORLD1
= 257,
626 WINED3D_TS_WORLD2
= 258,
627 WINED3D_TS_WORLD3
= 259,
630 #define WINED3D_TS_WORLD_MATRIX(index) (enum wined3d_transform_state)(index + 256)
632 enum wined3d_basis_type
634 WINED3D_BASIS_BEZIER
= 0,
635 WINED3D_BASIS_BSPLINE
= 1,
636 WINED3D_BASIS_INTERPOLATE
= 2,
639 enum wined3d_cubemap_face
641 WINED3D_CUBEMAP_FACE_POSITIVE_X
= 0,
642 WINED3D_CUBEMAP_FACE_NEGATIVE_X
= 1,
643 WINED3D_CUBEMAP_FACE_POSITIVE_Y
= 2,
644 WINED3D_CUBEMAP_FACE_NEGATIVE_Y
= 3,
645 WINED3D_CUBEMAP_FACE_POSITIVE_Z
= 4,
646 WINED3D_CUBEMAP_FACE_NEGATIVE_Z
= 5,
649 enum wined3d_texture_filter_type
651 WINED3D_TEXF_NONE
= 0,
652 WINED3D_TEXF_POINT
= 1,
653 WINED3D_TEXF_LINEAR
= 2,
654 WINED3D_TEXF_ANISOTROPIC
= 3,
655 WINED3D_TEXF_FLAT_CUBIC
= 4,
656 WINED3D_TEXF_GAUSSIAN_CUBIC
= 5,
657 WINED3D_TEXF_PYRAMIDAL_QUAD
= 6,
658 WINED3D_TEXF_GAUSSIAN_QUAD
= 7,
661 enum wined3d_resource_type
663 WINED3D_RTYPE_BUFFER
= 1,
664 WINED3D_RTYPE_TEXTURE_2D
= 2,
665 WINED3D_RTYPE_TEXTURE_3D
= 3,
670 WINED3D_POOL_DEFAULT
= 0,
671 WINED3D_POOL_MANAGED
= 1,
672 WINED3D_POOL_SYSTEM_MEM
= 2,
673 WINED3D_POOL_SCRATCH
= 3,
676 enum wined3d_query_type
678 WINED3D_QUERY_TYPE_PIPELINE_STATISTICS
= 1,
679 WINED3D_QUERY_TYPE_SO_STATISTICS
= 2,
680 WINED3D_QUERY_TYPE_SO_OVERFLOW
= 3,
681 WINED3D_QUERY_TYPE_VCACHE
= 4,
682 WINED3D_QUERY_TYPE_RESOURCE_MANAGER
= 5,
683 WINED3D_QUERY_TYPE_VERTEX_STATS
= 6,
684 WINED3D_QUERY_TYPE_EVENT
= 8,
685 WINED3D_QUERY_TYPE_OCCLUSION
= 9,
686 WINED3D_QUERY_TYPE_TIMESTAMP
= 10,
687 WINED3D_QUERY_TYPE_TIMESTAMP_DISJOINT
= 11,
688 WINED3D_QUERY_TYPE_TIMESTAMP_FREQ
= 12,
689 WINED3D_QUERY_TYPE_PIPELINE_TIMINGS
= 13,
690 WINED3D_QUERY_TYPE_INTERFACE_TIMINGS
= 14,
691 WINED3D_QUERY_TYPE_VERTEX_TIMINGS
= 15,
692 WINED3D_QUERY_TYPE_PIXEL_TIMINGS
= 16,
693 WINED3D_QUERY_TYPE_BANDWIDTH_TIMINGS
= 17,
694 WINED3D_QUERY_TYPE_CACHE_UTILIZATION
= 18
697 struct wined3d_query_data_timestamp_disjoint
703 #define WINED3DISSUE_BEGIN (1u << 1)
704 #define WINED3DISSUE_END (1u << 0)
705 #define WINED3DGETDATA_FLUSH (1u << 0)
707 enum wined3d_stateblock_type
710 WINED3D_SBT_PIXEL_STATE
= 2,
711 WINED3D_SBT_VERTEX_STATE
= 3,
712 WINED3D_SBT_RECORDED
= 4, /* WineD3D private */
715 enum wined3d_decl_method
717 WINED3D_DECL_METHOD_DEFAULT
= 0,
718 WINED3D_DECL_METHOD_PARTIAL_U
= 1,
719 WINED3D_DECL_METHOD_PARTIAL_V
= 2,
720 WINED3D_DECL_METHOD_CROSS_UV
= 3,
721 WINED3D_DECL_METHOD_UV
= 4,
722 WINED3D_DECL_METHOD_LOOKUP
= 5,
723 WINED3D_DECL_METHOD_LOOKUP_PRESAMPLED
= 6,
726 enum wined3d_decl_usage
728 WINED3D_DECL_USAGE_POSITION
= 0,
729 WINED3D_DECL_USAGE_BLEND_WEIGHT
= 1,
730 WINED3D_DECL_USAGE_BLEND_INDICES
= 2,
731 WINED3D_DECL_USAGE_NORMAL
= 3,
732 WINED3D_DECL_USAGE_PSIZE
= 4,
733 WINED3D_DECL_USAGE_TEXCOORD
= 5,
734 WINED3D_DECL_USAGE_TANGENT
= 6,
735 WINED3D_DECL_USAGE_BINORMAL
= 7,
736 WINED3D_DECL_USAGE_TESS_FACTOR
= 8,
737 WINED3D_DECL_USAGE_POSITIONT
= 9,
738 WINED3D_DECL_USAGE_COLOR
= 10,
739 WINED3D_DECL_USAGE_FOG
= 11,
740 WINED3D_DECL_USAGE_DEPTH
= 12,
741 WINED3D_DECL_USAGE_SAMPLE
= 13
744 enum wined3d_sysval_semantic
746 WINED3D_SV_POSITION
= 1,
747 WINED3D_SV_VERTEX_ID
= 6,
748 WINED3D_SV_PRIMITIVE_ID
= 7,
749 WINED3D_SV_INSTANCE_ID
= 8,
750 WINED3D_SV_IS_FRONT_FACE
= 9,
751 WINED3D_SV_SAMPLE_INDEX
= 10,
752 WINED3D_SV_QUAD_U0_TESS_FACTOR
= 11,
753 WINED3D_SV_QUAD_V0_TESS_FACTOR
= 12,
754 WINED3D_SV_QUAD_U1_TESS_FACTOR
= 13,
755 WINED3D_SV_QUAD_V1_TESS_FACTOR
= 14,
756 WINED3D_SV_QUAD_U_INNER_TESS_FACTOR
= 15,
757 WINED3D_SV_QUAD_V_INNER_TESS_FACTOR
= 16,
758 WINED3D_SV_TRIANGLE_U_TESS_FACTOR
= 17,
759 WINED3D_SV_TRIANGLE_V_TESS_FACTOR
= 18,
760 WINED3D_SV_TRIANGLE_W_TESS_FACTOR
= 19,
761 WINED3D_SV_TRIANGLE_INNER_TESS_FACTOR
= 20,
762 WINED3D_SV_LINE_DETAIL_TESS_FACTOR
= 21,
763 WINED3D_SV_LINE_DENSITY_TESS_FACTOR
= 22,
766 enum wined3d_component_type
768 WINED3D_TYPE_UNKNOWN
= 0,
769 WINED3D_TYPE_UINT
= 1,
770 WINED3D_TYPE_INT
= 2,
771 WINED3D_TYPE_FLOAT
= 3,
774 enum wined3d_scanline_ordering
776 WINED3D_SCANLINE_ORDERING_UNKNOWN
= 0,
777 WINED3D_SCANLINE_ORDERING_PROGRESSIVE
= 1,
778 WINED3D_SCANLINE_ORDERING_INTERLACED
= 2,
781 enum wined3d_display_rotation
783 WINED3D_DISPLAY_ROTATION_UNSPECIFIED
= 0,
784 WINED3D_DISPLAY_ROTATION_0
= 1,
785 WINED3D_DISPLAY_ROTATION_90
= 2,
786 WINED3D_DISPLAY_ROTATION_180
= 3,
787 WINED3D_DISPLAY_ROTATION_270
= 4,
790 #define WINED3DCOLORWRITEENABLE_RED (1u << 0)
791 #define WINED3DCOLORWRITEENABLE_GREEN (1u << 1)
792 #define WINED3DCOLORWRITEENABLE_BLUE (1u << 2)
793 #define WINED3DCOLORWRITEENABLE_ALPHA (1u << 3)
795 #define WINED3DADAPTER_DEFAULT 0
796 #define WINED3DENUM_NO_WHQL_LEVEL 2
798 #define WINED3DTSS_TCI_PASSTHRU 0x00000
799 #define WINED3DTSS_TCI_CAMERASPACENORMAL 0x10000
800 #define WINED3DTSS_TCI_CAMERASPACEPOSITION 0x20000
801 #define WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR 0x30000
802 #define WINED3DTSS_TCI_SPHEREMAP 0x40000
804 #define WINED3DTA_SELECTMASK 0x0000000f
805 #define WINED3DTA_DIFFUSE 0x00000000
806 #define WINED3DTA_CURRENT 0x00000001
807 #define WINED3DTA_TEXTURE 0x00000002
808 #define WINED3DTA_TFACTOR 0x00000003
809 #define WINED3DTA_SPECULAR 0x00000004
810 #define WINED3DTA_TEMP 0x00000005
811 #define WINED3DTA_CONSTANT 0x00000006
812 #define WINED3DTA_COMPLEMENT 0x00000010
813 #define WINED3DTA_ALPHAREPLICATE 0x00000020
815 #define WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER 0x00000001
816 #define WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL 0x00000002
817 #define WINED3DPRESENTFLAG_DEVICECLIP 0x00000004
818 #define WINED3DPRESENTFLAG_VIDEO 0x00000010
819 #define WINED3DPRESENTFLAG_NOAUTOROTATE 0x00000020
820 #define WINED3DPRESENTFLAG_UNPRUNEDMODE 0x00000040
822 #define WINED3DDP_MAXTEXCOORD 8
824 #define WINED3DUSAGE_RENDERTARGET 0x00000001
825 #define WINED3DUSAGE_DEPTHSTENCIL 0x00000002
826 #define WINED3DUSAGE_WRITEONLY 0x00000008
827 #define WINED3DUSAGE_SOFTWAREPROCESSING 0x00000010
828 #define WINED3DUSAGE_DONOTCLIP 0x00000020
829 #define WINED3DUSAGE_POINTS 0x00000040
830 #define WINED3DUSAGE_RTPATCHES 0x00000080
831 #define WINED3DUSAGE_NPATCHES 0x00000100
832 #define WINED3DUSAGE_DYNAMIC 0x00000200
833 #define WINED3DUSAGE_AUTOGENMIPMAP 0x00000400
834 #define WINED3DUSAGE_RESTRICTED_CONTENT 0x00000800
835 #define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE_DRIVER 0x00001000
836 #define WINED3DUSAGE_RESTRICT_SHARED_RESOURCE 0x00002000
837 #define WINED3DUSAGE_DMAP 0x00004000
838 #define WINED3DUSAGE_TEXTAPI 0x10000000
839 #define WINED3DUSAGE_MASK 0x10007fff
841 #define WINED3DUSAGE_LEGACY_CUBEMAP 0x00800000
842 #define WINED3DUSAGE_TEXTURE 0x01000000
843 #define WINED3DUSAGE_OWNDC 0x02000000
844 #define WINED3DUSAGE_STATICDECL 0x04000000
845 #define WINED3DUSAGE_OVERLAY 0x08000000
847 #define WINED3DUSAGE_QUERY_LEGACYBUMPMAP 0x00008000
848 #define WINED3DUSAGE_QUERY_FILTER 0x00020000
849 #define WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING 0x00080000
850 #define WINED3DUSAGE_QUERY_SRGBREAD 0x00010000
851 #define WINED3DUSAGE_QUERY_SRGBWRITE 0x00040000
852 #define WINED3DUSAGE_QUERY_VERTEXTEXTURE 0x00100000
853 #define WINED3DUSAGE_QUERY_WRAPANDMIP 0x00200000
854 #define WINED3DUSAGE_QUERY_MASK 0x003f8000
856 #define WINED3D_MAP_READONLY 0x0010
857 #define WINED3D_MAP_NOSYSLOCK 0x0800
858 #define WINED3D_MAP_NOOVERWRITE 0x1000
859 #define WINED3D_MAP_DISCARD 0x2000
860 #define WINED3D_MAP_DONOTWAIT 0x4000
861 #define WINED3D_MAP_NO_DIRTY_UPDATE 0x8000
863 #define WINED3DPRESENT_RATE_DEFAULT 0x00000000
865 #define WINED3DPRESENT_INTERVAL_DEFAULT 0x00000000
866 #define WINED3DPRESENT_INTERVAL_ONE 0x00000001
867 #define WINED3DPRESENT_INTERVAL_TWO 0x00000002
868 #define WINED3DPRESENT_INTERVAL_THREE 0x00000004
869 #define WINED3DPRESENT_INTERVAL_FOUR 0x00000008
870 #define WINED3DPRESENT_INTERVAL_IMMEDIATE 0x80000000
872 #define WINED3DMAXUSERCLIPPLANES 32
873 #define WINED3DCLIPPLANE0 (1u << 0)
874 #define WINED3DCLIPPLANE1 (1u << 1)
875 #define WINED3DCLIPPLANE2 (1u << 2)
876 #define WINED3DCLIPPLANE3 (1u << 3)
877 #define WINED3DCLIPPLANE4 (1u << 4)
878 #define WINED3DCLIPPLANE5 (1u << 5)
880 /* FVF (Flexible Vertex Format) codes */
881 #define WINED3DFVF_RESERVED0 0x0001
882 #define WINED3DFVF_POSITION_MASK 0x400e
883 #define WINED3DFVF_XYZ 0x0002
884 #define WINED3DFVF_XYZRHW 0x0004
885 #define WINED3DFVF_XYZB1 0x0006
886 #define WINED3DFVF_XYZB2 0x0008
887 #define WINED3DFVF_XYZB3 0x000a
888 #define WINED3DFVF_XYZB4 0x000c
889 #define WINED3DFVF_XYZB5 0x000e
890 #define WINED3DFVF_XYZW 0x4002
891 #define WINED3DFVF_NORMAL 0x0010
892 #define WINED3DFVF_PSIZE 0x0020
893 #define WINED3DFVF_DIFFUSE 0x0040
894 #define WINED3DFVF_SPECULAR 0x0080
895 #define WINED3DFVF_TEXCOUNT_MASK 0x0f00
896 #define WINED3DFVF_TEXCOUNT_SHIFT 8
897 #define WINED3DFVF_TEX0 0x0000
898 #define WINED3DFVF_TEX1 0x0100
899 #define WINED3DFVF_TEX2 0x0200
900 #define WINED3DFVF_TEX3 0x0300
901 #define WINED3DFVF_TEX4 0x0400
902 #define WINED3DFVF_TEX5 0x0500
903 #define WINED3DFVF_TEX6 0x0600
904 #define WINED3DFVF_TEX7 0x0700
905 #define WINED3DFVF_TEX8 0x0800
906 #define WINED3DFVF_LASTBETA_UBYTE4 0x1000
907 #define WINED3DFVF_LASTBETA_D3DCOLOR 0x8000
908 #define WINED3DFVF_RESERVED2 0x6000
910 #define WINED3DFVF_TEXTUREFORMAT1 3u
911 #define WINED3DFVF_TEXTUREFORMAT2 0u
912 #define WINED3DFVF_TEXTUREFORMAT3 1u
913 #define WINED3DFVF_TEXTUREFORMAT4 2u
914 #define WINED3DFVF_TEXCOORDSIZE1(idx) (WINED3DFVF_TEXTUREFORMAT1 << (idx * 2 + 16))
915 #define WINED3DFVF_TEXCOORDSIZE2(idx) (WINED3DFVF_TEXTUREFORMAT2 << (idx * 2 + 16))
916 #define WINED3DFVF_TEXCOORDSIZE3(idx) (WINED3DFVF_TEXTUREFORMAT3 << (idx * 2 + 16))
917 #define WINED3DFVF_TEXCOORDSIZE4(idx) (WINED3DFVF_TEXTUREFORMAT4 << (idx * 2 + 16))
920 #define WINED3DCLEAR_TARGET 0x00000001
921 #define WINED3DCLEAR_ZBUFFER 0x00000002
922 #define WINED3DCLEAR_STENCIL 0x00000004
924 /* Stream source flags */
925 #define WINED3DSTREAMSOURCE_INDEXEDDATA (1u << 30)
926 #define WINED3DSTREAMSOURCE_INSTANCEDATA (2u << 30)
928 /* SetPrivateData flags */
929 #define WINED3DSPD_IUNKNOWN 0x00000001
931 /* IWineD3D::CreateDevice behaviour flags */
932 #define WINED3DCREATE_FPU_PRESERVE 0x00000002
933 #define WINED3DCREATE_PUREDEVICE 0x00000010
934 #define WINED3DCREATE_SOFTWARE_VERTEXPROCESSING 0x00000020
935 #define WINED3DCREATE_HARDWARE_VERTEXPROCESSING 0x00000040
936 #define WINED3DCREATE_MIXED_VERTEXPROCESSING 0x00000080
937 #define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT 0x00000100
938 #define WINED3DCREATE_ADAPTERGROUP_DEVICE 0x00000200
939 #define WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT_EX 0x00000400
940 #define WINED3DCREATE_NOWINDOWCHANGES 0x00000800
941 #define WINED3DCREATE_DISABLE_PSGP_THREADING 0x00002000
942 #define WINED3DCREATE_ENABLE_PRESENTSTATS 0x00004000
943 #define WINED3DCREATE_DISABLE_PRINTSCREEN 0x00008000
944 #define WINED3DCREATE_SCREENSAVER 0x10000000
947 #define WINED3DDMAPSAMPLER 0x100
948 #define WINED3DVERTEXTEXTURESAMPLER0 (WINED3DDMAPSAMPLER + 1)
949 #define WINED3DVERTEXTEXTURESAMPLER1 (WINED3DDMAPSAMPLER + 2)
950 #define WINED3DVERTEXTEXTURESAMPLER2 (WINED3DDMAPSAMPLER + 3)
951 #define WINED3DVERTEXTEXTURESAMPLER3 (WINED3DDMAPSAMPLER + 4)
953 #define WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD 0x00000020
954 #define WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION 0x00000080
955 #define WINED3DCAPS3_COPY_TO_VIDMEM 0x00000100
956 #define WINED3DCAPS3_COPY_TO_SYSTEMMEM 0x00000200
957 #define WINED3DCAPS3_RESERVED 0x8000001f
959 #define WINED3DDEVCAPS2_STREAMOFFSET 0x00000001
960 #define WINED3DDEVCAPS2_DMAPNPATCH 0x00000002
961 #define WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH 0x00000004
962 #define WINED3DDEVCAPS2_ADAPTIVETESSNPATCH 0x00000008
963 #define WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES 0x00000010
964 #define WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH 0x00000020
965 #define WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET 0x00000040
967 #define WINED3DDTCAPS_UBYTE4 0x00000001
968 #define WINED3DDTCAPS_UBYTE4N 0x00000002
969 #define WINED3DDTCAPS_SHORT2N 0x00000004
970 #define WINED3DDTCAPS_SHORT4N 0x00000008
971 #define WINED3DDTCAPS_USHORT2N 0x00000010
972 #define WINED3DDTCAPS_USHORT4N 0x00000020
973 #define WINED3DDTCAPS_UDEC3 0x00000040
974 #define WINED3DDTCAPS_DEC3N 0x00000080
975 #define WINED3DDTCAPS_FLOAT16_2 0x00000100
976 #define WINED3DDTCAPS_FLOAT16_4 0x00000200
978 #define WINED3DFVFCAPS_TEXCOORDCOUNTMASK 0x0000ffff
979 #define WINED3DFVFCAPS_DONOTSTRIPELEMENTS 0x00080000
980 #define WINED3DFVFCAPS_PSIZE 0x00100000
982 #define WINED3DLINECAPS_TEXTURE 0x00000001
983 #define WINED3DLINECAPS_ZTEST 0x00000002
984 #define WINED3DLINECAPS_BLEND 0x00000004
985 #define WINED3DLINECAPS_ALPHACMP 0x00000008
986 #define WINED3DLINECAPS_FOG 0x00000010
987 #define WINED3DLINECAPS_ANTIALIAS 0x00000020
989 #define WINED3DMAX30SHADERINSTRUCTIONS 32768
990 #define WINED3DMIN30SHADERINSTRUCTIONS 512
992 #define WINED3DPBLENDCAPS_ZERO 0x00000001
993 #define WINED3DPBLENDCAPS_ONE 0x00000002
994 #define WINED3DPBLENDCAPS_SRCCOLOR 0x00000004
995 #define WINED3DPBLENDCAPS_INVSRCCOLOR 0x00000008
996 #define WINED3DPBLENDCAPS_SRCALPHA 0x00000010
997 #define WINED3DPBLENDCAPS_INVSRCALPHA 0x00000020
998 #define WINED3DPBLENDCAPS_DESTALPHA 0x00000040
999 #define WINED3DPBLENDCAPS_INVDESTALPHA 0x00000080
1000 #define WINED3DPBLENDCAPS_DESTCOLOR 0x00000100
1001 #define WINED3DPBLENDCAPS_INVDESTCOLOR 0x00000200
1002 #define WINED3DPBLENDCAPS_SRCALPHASAT 0x00000400
1003 #define WINED3DPBLENDCAPS_BOTHSRCALPHA 0x00000800
1004 #define WINED3DPBLENDCAPS_BOTHINVSRCALPHA 0x00001000
1005 #define WINED3DPBLENDCAPS_BLENDFACTOR 0x00002000
1007 #define WINED3DPCMPCAPS_NEVER 0x00000001
1008 #define WINED3DPCMPCAPS_LESS 0x00000002
1009 #define WINED3DPCMPCAPS_EQUAL 0x00000004
1010 #define WINED3DPCMPCAPS_LESSEQUAL 0x00000008
1011 #define WINED3DPCMPCAPS_GREATER 0x00000010
1012 #define WINED3DPCMPCAPS_NOTEQUAL 0x00000020
1013 #define WINED3DPCMPCAPS_GREATEREQUAL 0x00000040
1014 #define WINED3DPCMPCAPS_ALWAYS 0x00000080
1016 #define WINED3DPMISCCAPS_MASKZ 0x00000002
1017 #define WINED3DPMISCCAPS_LINEPATTERNREP 0x00000004
1018 #define WINED3DPMISCCAPS_CULLNONE 0x00000010
1019 #define WINED3DPMISCCAPS_CULLCW 0x00000020
1020 #define WINED3DPMISCCAPS_CULLCCW 0x00000040
1021 #define WINED3DPMISCCAPS_COLORWRITEENABLE 0x00000080
1022 #define WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS 0x00000100
1023 #define WINED3DPMISCCAPS_CLIPTLVERTS 0x00000200
1024 #define WINED3DPMISCCAPS_TSSARGTEMP 0x00000400
1025 #define WINED3DPMISCCAPS_BLENDOP 0x00000800
1026 #define WINED3DPMISCCAPS_NULLREFERENCE 0x00001000
1027 #define WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS 0x00004000
1028 #define WINED3DPMISCCAPS_PERSTAGECONSTANT 0x00008000
1029 #define WINED3DPMISCCAPS_FOGANDSPECULARALPHA 0x00010000
1030 #define WINED3DPMISCCAPS_SEPARATEALPHABLEND 0x00020000
1031 #define WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS 0x00040000
1032 #define WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING 0x00080000
1033 #define WINED3DPMISCCAPS_FOGVERTEXCLAMPED 0x00100000
1034 #define WINED3DPMISCCAPS_POSTBLENDSRGBCONVERT 0x00200000
1036 #define WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
1037 #define WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
1038 #define WINED3DPS20_MAX_NUMTEMPS 32
1039 #define WINED3DPS20_MIN_NUMTEMPS 12
1040 #define WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH 4
1041 #define WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH 0
1042 #define WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS 512
1043 #define WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS 96
1045 #define WINED3DPS20CAPS_ARBITRARYSWIZZLE 0x00000001
1046 #define WINED3DPS20CAPS_GRADIENTINSTRUCTIONS 0x00000002
1047 #define WINED3DPS20CAPS_PREDICATION 0x00000004
1048 #define WINED3DPS20CAPS_NODEPENDENTREADLIMIT 0x00000008
1049 #define WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT 0x00000010
1051 #define WINED3DPTADDRESSCAPS_WRAP 0x00000001
1052 #define WINED3DPTADDRESSCAPS_MIRROR 0x00000002
1053 #define WINED3DPTADDRESSCAPS_CLAMP 0x00000004
1054 #define WINED3DPTADDRESSCAPS_BORDER 0x00000008
1055 #define WINED3DPTADDRESSCAPS_INDEPENDENTUV 0x00000010
1056 #define WINED3DPTADDRESSCAPS_MIRRORONCE 0x00000020
1058 #define WINED3DSTENCILCAPS_KEEP 0x00000001
1059 #define WINED3DSTENCILCAPS_ZERO 0x00000002
1060 #define WINED3DSTENCILCAPS_REPLACE 0x00000004
1061 #define WINED3DSTENCILCAPS_INCRSAT 0x00000008
1062 #define WINED3DSTENCILCAPS_DECRSAT 0x00000010
1063 #define WINED3DSTENCILCAPS_INVERT 0x00000020
1064 #define WINED3DSTENCILCAPS_INCR 0x00000040
1065 #define WINED3DSTENCILCAPS_DECR 0x00000080
1066 #define WINED3DSTENCILCAPS_TWOSIDED 0x00000100
1068 #define WINED3DTEXOPCAPS_DISABLE 0x00000001
1069 #define WINED3DTEXOPCAPS_SELECTARG1 0x00000002
1070 #define WINED3DTEXOPCAPS_SELECTARG2 0x00000004
1071 #define WINED3DTEXOPCAPS_MODULATE 0x00000008
1072 #define WINED3DTEXOPCAPS_MODULATE2X 0x00000010
1073 #define WINED3DTEXOPCAPS_MODULATE4X 0x00000020
1074 #define WINED3DTEXOPCAPS_ADD 0x00000040
1075 #define WINED3DTEXOPCAPS_ADDSIGNED 0x00000080
1076 #define WINED3DTEXOPCAPS_ADDSIGNED2X 0x00000100
1077 #define WINED3DTEXOPCAPS_SUBTRACT 0x00000200
1078 #define WINED3DTEXOPCAPS_ADDSMOOTH 0x00000400
1079 #define WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA 0x00000800
1080 #define WINED3DTEXOPCAPS_BLENDTEXTUREALPHA 0x00001000
1081 #define WINED3DTEXOPCAPS_BLENDFACTORALPHA 0x00002000
1082 #define WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM 0x00004000
1083 #define WINED3DTEXOPCAPS_BLENDCURRENTALPHA 0x00008000
1084 #define WINED3DTEXOPCAPS_PREMODULATE 0x00010000
1085 #define WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR 0x00020000
1086 #define WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA 0x00040000
1087 #define WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR 0x00080000
1088 #define WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA 0x00100000
1089 #define WINED3DTEXOPCAPS_BUMPENVMAP 0x00200000
1090 #define WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE 0x00400000
1091 #define WINED3DTEXOPCAPS_DOTPRODUCT3 0x00800000
1092 #define WINED3DTEXOPCAPS_MULTIPLYADD 0x01000000
1093 #define WINED3DTEXOPCAPS_LERP 0x02000000
1095 #define WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH 24
1096 #define WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH 0
1097 #define WINED3DVS20_MAX_NUMTEMPS 32
1098 #define WINED3DVS20_MIN_NUMTEMPS 12
1099 #define WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH 4
1100 #define WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH 1
1102 #define WINED3DVS20CAPS_PREDICATION 0x00000001
1104 #define WINED3DCAPS2_NO2DDURING3DSCENE 0x00000002
1105 #define WINED3DCAPS2_FULLSCREENGAMMA 0x00020000
1106 #define WINED3DCAPS2_CANRENDERWINDOWED 0x00080000
1107 #define WINED3DCAPS2_CANCALIBRATEGAMMA 0x00100000
1108 #define WINED3DCAPS2_RESERVED 0x02000000
1109 #define WINED3DCAPS2_CANMANAGERESOURCE 0x10000000
1110 #define WINED3DCAPS2_DYNAMICTEXTURES 0x20000000
1111 #define WINED3DCAPS2_CANAUTOGENMIPMAP 0x40000000
1113 #define WINED3DPRASTERCAPS_DITHER 0x00000001
1114 #define WINED3DPRASTERCAPS_ROP2 0x00000002
1115 #define WINED3DPRASTERCAPS_XOR 0x00000004
1116 #define WINED3DPRASTERCAPS_PAT 0x00000008
1117 #define WINED3DPRASTERCAPS_ZTEST 0x00000010
1118 #define WINED3DPRASTERCAPS_SUBPIXEL 0x00000020
1119 #define WINED3DPRASTERCAPS_SUBPIXELX 0x00000040
1120 #define WINED3DPRASTERCAPS_FOGVERTEX 0x00000080
1121 #define WINED3DPRASTERCAPS_FOGTABLE 0x00000100
1122 #define WINED3DPRASTERCAPS_STIPPLE 0x00000200
1123 #define WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT 0x00000400
1124 #define WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT 0x00000800
1125 #define WINED3DPRASTERCAPS_ANTIALIASEDGES 0x00001000
1126 #define WINED3DPRASTERCAPS_MIPMAPLODBIAS 0x00002000
1127 #define WINED3DPRASTERCAPS_ZBIAS 0x00004000
1128 #define WINED3DPRASTERCAPS_ZBUFFERLESSHSR 0x00008000
1129 #define WINED3DPRASTERCAPS_FOGRANGE 0x00010000
1130 #define WINED3DPRASTERCAPS_ANISOTROPY 0x00020000
1131 #define WINED3DPRASTERCAPS_WBUFFER 0x00040000
1132 #define WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT 0x00080000
1133 #define WINED3DPRASTERCAPS_WFOG 0x00100000
1134 #define WINED3DPRASTERCAPS_ZFOG 0x00200000
1135 #define WINED3DPRASTERCAPS_COLORPERSPECTIVE 0x00400000
1136 #define WINED3DPRASTERCAPS_SCISSORTEST 0x01000000
1137 #define WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS 0x02000000
1138 #define WINED3DPRASTERCAPS_DEPTHBIAS 0x04000000
1139 #define WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE 0x08000000
1141 #define WINED3DPSHADECAPS_COLORFLATMONO 0x00000001
1142 #define WINED3DPSHADECAPS_COLORFLATRGB 0x00000002
1143 #define WINED3DPSHADECAPS_COLORGOURAUDMONO 0x00000004
1144 #define WINED3DPSHADECAPS_COLORGOURAUDRGB 0x00000008
1145 #define WINED3DPSHADECAPS_COLORPHONGMONO 0x00000010
1146 #define WINED3DPSHADECAPS_COLORPHONGRGB 0x00000020
1147 #define WINED3DPSHADECAPS_SPECULARFLATMONO 0x00000040
1148 #define WINED3DPSHADECAPS_SPECULARFLATRGB 0x00000080
1149 #define WINED3DPSHADECAPS_SPECULARGOURAUDMONO 0x00000100
1150 #define WINED3DPSHADECAPS_SPECULARGOURAUDRGB 0x00000200
1151 #define WINED3DPSHADECAPS_SPECULARPHONGMONO 0x00000400
1152 #define WINED3DPSHADECAPS_SPECULARPHONGRGB 0x00000800
1153 #define WINED3DPSHADECAPS_ALPHAFLATBLEND 0x00001000
1154 #define WINED3DPSHADECAPS_ALPHAFLATSTIPPLED 0x00002000
1155 #define WINED3DPSHADECAPS_ALPHAGOURAUDBLEND 0x00004000
1156 #define WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED 0x00008000
1157 #define WINED3DPSHADECAPS_ALPHAPHONGBLEND 0x00010000
1158 #define WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED 0x00020000
1159 #define WINED3DPSHADECAPS_FOGFLAT 0x00040000
1160 #define WINED3DPSHADECAPS_FOGGOURAUD 0x00080000
1161 #define WINED3DPSHADECAPS_FOGPHONG 0x00100000
1163 #define WINED3DPTEXTURECAPS_PERSPECTIVE 0x00000001
1164 #define WINED3DPTEXTURECAPS_POW2 0x00000002
1165 #define WINED3DPTEXTURECAPS_ALPHA 0x00000004
1166 #define WINED3DPTEXTURECAPS_TRANSPARENCY 0x00000008
1167 #define WINED3DPTEXTURECAPS_BORDER 0x00000010
1168 #define WINED3DPTEXTURECAPS_SQUAREONLY 0x00000020
1169 #define WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE 0x00000040
1170 #define WINED3DPTEXTURECAPS_ALPHAPALETTE 0x00000080
1171 #define WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL 0x00000100
1172 #define WINED3DPTEXTURECAPS_PROJECTED 0x00000400
1173 #define WINED3DPTEXTURECAPS_CUBEMAP 0x00000800
1174 #define WINED3DPTEXTURECAPS_COLORKEYBLEND 0x00001000
1175 #define WINED3DPTEXTURECAPS_VOLUMEMAP 0x00002000
1176 #define WINED3DPTEXTURECAPS_MIPMAP 0x00004000
1177 #define WINED3DPTEXTURECAPS_MIPVOLUMEMAP 0x00008000
1178 #define WINED3DPTEXTURECAPS_MIPCUBEMAP 0x00010000
1179 #define WINED3DPTEXTURECAPS_CUBEMAP_POW2 0x00020000
1180 #define WINED3DPTEXTURECAPS_VOLUMEMAP_POW2 0x00040000
1181 #define WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV 0x00200000
1183 #define WINED3DPTFILTERCAPS_NEAREST 0x00000001
1184 #define WINED3DPTFILTERCAPS_LINEAR 0x00000002
1185 #define WINED3DPTFILTERCAPS_MIPNEAREST 0x00000004
1186 #define WINED3DPTFILTERCAPS_MIPLINEAR 0x00000008
1187 #define WINED3DPTFILTERCAPS_LINEARMIPNEAREST 0x00000010
1188 #define WINED3DPTFILTERCAPS_LINEARMIPLINEAR 0x00000020
1189 #define WINED3DPTFILTERCAPS_MINFPOINT 0x00000100
1190 #define WINED3DPTFILTERCAPS_MINFLINEAR 0x00000200
1191 #define WINED3DPTFILTERCAPS_MINFANISOTROPIC 0x00000400
1192 #define WINED3DPTFILTERCAPS_MIPFPOINT 0x00010000
1193 #define WINED3DPTFILTERCAPS_MIPFLINEAR 0x00020000
1194 #define WINED3DPTFILTERCAPS_MAGFPOINT 0x01000000
1195 #define WINED3DPTFILTERCAPS_MAGFLINEAR 0x02000000
1196 #define WINED3DPTFILTERCAPS_MAGFANISOTROPIC 0x04000000
1197 #define WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD 0x08000000
1198 #define WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD 0x10000000
1200 #define WINED3DVTXPCAPS_TEXGEN 0x00000001
1201 #define WINED3DVTXPCAPS_MATERIALSOURCE7 0x00000002
1202 #define WINED3DVTXPCAPS_VERTEXFOG 0x00000004
1203 #define WINED3DVTXPCAPS_DIRECTIONALLIGHTS 0x00000008
1204 #define WINED3DVTXPCAPS_POSITIONALLIGHTS 0x00000010
1205 #define WINED3DVTXPCAPS_LOCALVIEWER 0x00000020
1206 #define WINED3DVTXPCAPS_TWEENING 0x00000040
1207 #define WINED3DVTXPCAPS_TEXGEN_SPHEREMAP 0x00000100
1208 #define WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER 0x00000200
1210 #define WINED3DCURSORCAPS_COLOR 0x00000001
1211 #define WINED3DCURSORCAPS_LOWRES 0x00000002
1213 #define WINED3DDEVCAPS_FLOATTLVERTEX 0x00000001
1214 #define WINED3DDEVCAPS_SORTINCREASINGZ 0x00000002
1215 #define WINED3DDEVCAPS_SORTDECREASINGZ 0X00000004
1216 #define WINED3DDEVCAPS_SORTEXACT 0x00000008
1217 #define WINED3DDEVCAPS_EXECUTESYSTEMMEMORY 0x00000010
1218 #define WINED3DDEVCAPS_EXECUTEVIDEOMEMORY 0x00000020
1219 #define WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY 0x00000040
1220 #define WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY 0x00000080
1221 #define WINED3DDEVCAPS_TEXTURESYSTEMMEMORY 0x00000100
1222 #define WINED3DDEVCAPS_TEXTUREVIDEOMEMORY 0x00000200
1223 #define WINED3DDEVCAPS_DRAWPRIMTLVERTEX 0x00000400
1224 #define WINED3DDEVCAPS_CANRENDERAFTERFLIP 0x00000800
1225 #define WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM 0x00001000
1226 #define WINED3DDEVCAPS_DRAWPRIMITIVES2 0x00002000
1227 #define WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES 0x00004000
1228 #define WINED3DDEVCAPS_DRAWPRIMITIVES2EX 0x00008000
1229 #define WINED3DDEVCAPS_HWTRANSFORMANDLIGHT 0x00010000
1230 #define WINED3DDEVCAPS_CANBLTSYSTONONLOCAL 0x00020000
1231 #define WINED3DDEVCAPS_HWRASTERIZATION 0x00080000
1232 #define WINED3DDEVCAPS_PUREDEVICE 0x00100000
1233 #define WINED3DDEVCAPS_QUINTICRTPATCHES 0x00200000
1234 #define WINED3DDEVCAPS_RTPATCHES 0x00400000
1235 #define WINED3DDEVCAPS_RTPATCHHANDLEZERO 0x00800000
1236 #define WINED3DDEVCAPS_NPATCHES 0x01000000
1238 #define WINED3D_LEGACY_DEPTH_BIAS 0x00000001
1239 #define WINED3D_NO3D 0x00000002
1240 #define WINED3D_VIDMEM_ACCOUNTING 0x00000004
1241 #define WINED3D_PRESENT_CONVERSION 0x00000008
1242 #define WINED3D_RESTORE_MODE_ON_ACTIVATE 0x00000010
1243 #define WINED3D_FOCUS_MESSAGES 0x00000020
1244 #define WINED3D_HANDLE_RESTORE 0x00000040
1245 #define WINED3D_PIXEL_CENTER_INTEGER 0x00000080
1246 #define WINED3D_LEGACY_FFP_LIGHTING 0x00000100
1247 #define WINED3D_SRGB_READ_WRITE_CONTROL 0x00000200
1248 #define WINED3D_LEGACY_UNBOUND_RESOURCE_COLOR 0x00000400
1250 #define WINED3D_RESZ_CODE 0x7fa05000
1252 #define WINED3D_CKEY_DST_BLT 0x00000002
1253 #define WINED3D_CKEY_DST_OVERLAY 0x00000004
1254 #define WINED3D_CKEY_SRC_BLT 0x00000008
1255 #define WINED3D_CKEY_SRC_OVERLAY 0x00000010
1258 /* arithmetic stretching along y axis */
1259 #define WINEDDBLTFX_ARITHSTRETCHY 0x00000001
1260 /* mirror on y axis */
1261 #define WINEDDBLTFX_MIRRORLEFTRIGHT 0x00000002
1262 /* mirror on x axis */
1263 #define WINEDDBLTFX_MIRRORUPDOWN 0x00000004
1265 #define WINEDDBLTFX_NOTEARING 0x00000008
1266 /* 180 degrees clockwise rotation */
1267 #define WINEDDBLTFX_ROTATE180 0x00000010
1268 /* 270 degrees clockwise rotation */
1269 #define WINEDDBLTFX_ROTATE270 0x00000020
1270 /* 90 degrees clockwise rotation */
1271 #define WINEDDBLTFX_ROTATE90 0x00000040
1272 /* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
1273 #define WINEDDBLTFX_ZBUFFERRANGE 0x00000080
1274 /* add dwZBufferBaseDest to every source z value before compare */
1275 #define WINEDDBLTFX_ZBUFFERBASEDEST 0x00000100
1277 #define WINED3D_BLT_ASYNC 0x00000200
1278 #define WINED3D_BLT_COLOR_FILL 0x00000400
1279 #define WINED3D_BLT_FX 0x00000800
1280 #define WINED3D_BLT_DST_CKEY 0x00002000
1281 #define WINED3D_BLT_DST_CKEY_OVERRIDE 0x00004000
1282 #define WINED3D_BLT_SRC_CKEY 0x00008000
1283 #define WINED3D_BLT_SRC_CKEY_OVERRIDE 0x00010000
1284 #define WINED3D_BLT_WAIT 0x01000000
1285 #define WINED3D_BLT_DEPTH_FILL 0x02000000
1286 #define WINED3D_BLT_DO_NOT_WAIT 0x08000000
1287 #define WINED3D_BLT_ALPHA_TEST 0x80000000
1288 #define WINED3D_BLT_MASK 0x8b01ee00
1290 /* dwFlags for GetBltStatus */
1291 #define WINEDDGBS_CANBLT 0x00000001
1292 #define WINEDDGBS_ISBLTDONE 0x00000002
1294 /* dwFlags for GetFlipStatus */
1295 #define WINEDDGFS_CANFLIP 0x00000001
1296 #define WINEDDGFS_ISFLIPDONE 0x00000002
1298 /* dwFlags for Flip */
1299 #define WINEDDFLIP_WAIT 0x00000001
1300 #define WINEDDFLIP_EVEN 0x00000002 /* only valid for overlay */
1301 #define WINEDDFLIP_ODD 0x00000004 /* only valid for overlay */
1302 #define WINEDDFLIP_NOVSYNC 0x00000008
1303 #define WINEDDFLIP_STEREO 0x00000010
1304 #define WINEDDFLIP_DONOTWAIT 0x00000020
1305 #define WINEDDFLIP_INTERVAL2 0x02000000
1306 #define WINEDDFLIP_INTERVAL3 0x03000000
1307 #define WINEDDFLIP_INTERVAL4 0x04000000
1309 #define WINEDDOVER_ALPHADEST 0x00000001
1310 #define WINEDDOVER_ALPHADESTCONSTOVERRIDE 0x00000002
1311 #define WINEDDOVER_ALPHADESTNEG 0x00000004
1312 #define WINEDDOVER_ALPHADESTSURFACEOVERRIDE 0x00000008
1313 #define WINEDDOVER_ALPHAEDGEBLEND 0x00000010
1314 #define WINEDDOVER_ALPHASRC 0x00000020
1315 #define WINEDDOVER_ALPHASRCCONSTOVERRIDE 0x00000040
1316 #define WINEDDOVER_ALPHASRCNEG 0x00000080
1317 #define WINEDDOVER_ALPHASRCSURFACEOVERRIDE 0x00000100
1318 #define WINEDDOVER_HIDE 0x00000200
1319 #define WINEDDOVER_KEYDEST 0x00000400
1320 #define WINEDDOVER_KEYDESTOVERRIDE 0x00000800
1321 #define WINEDDOVER_KEYSRC 0x00001000
1322 #define WINEDDOVER_KEYSRCOVERRIDE 0x00002000
1323 #define WINEDDOVER_SHOW 0x00004000
1324 #define WINEDDOVER_ADDDIRTYRECT 0x00008000
1325 #define WINEDDOVER_REFRESHDIRTYRECTS 0x00010000
1326 #define WINEDDOVER_REFRESHALL 0x00020000
1327 #define WINEDDOVER_DDFX 0x00080000
1328 #define WINEDDOVER_AUTOFLIP 0x00100000
1329 #define WINEDDOVER_BOB 0x00200000
1330 #define WINEDDOVER_OVERRIDEBOBWEAVE 0x00400000
1331 #define WINEDDOVER_INTERLEAVED 0x00800000
1333 /* DirectDraw Caps */
1334 #define WINEDDSCAPS_RESERVED1 0x00000001
1335 #define WINEDDSCAPS_ALPHA 0x00000002
1336 #define WINEDDSCAPS_BACKBUFFER 0x00000004
1337 #define WINEDDSCAPS_COMPLEX 0x00000008
1338 #define WINEDDSCAPS_FLIP 0x00000010
1339 #define WINEDDSCAPS_FRONTBUFFER 0x00000020
1340 #define WINEDDSCAPS_OFFSCREENPLAIN 0x00000040
1341 #define WINEDDSCAPS_OVERLAY 0x00000080
1342 #define WINEDDSCAPS_PALETTE 0x00000100
1343 #define WINEDDSCAPS_PRIMARYSURFACE 0x00000200
1344 #define WINEDDSCAPS_PRIMARYSURFACELEFT 0x00000400
1345 #define WINEDDSCAPS_SYSTEMMEMORY 0x00000800
1346 #define WINEDDSCAPS_TEXTURE 0x00001000
1347 #define WINEDDSCAPS_3DDEVICE 0x00002000
1348 #define WINEDDSCAPS_VIDEOMEMORY 0x00004000
1349 #define WINEDDSCAPS_VISIBLE 0x00008000
1350 #define WINEDDSCAPS_WRITEONLY 0x00010000
1351 #define WINEDDSCAPS_ZBUFFER 0x00020000
1352 #define WINEDDSCAPS_OWNDC 0x00040000
1353 #define WINEDDSCAPS_LIVEVIDEO 0x00080000
1354 #define WINEDDSCAPS_HWCODEC 0x00100000
1355 #define WINEDDSCAPS_MODEX 0x00200000
1356 #define WINEDDSCAPS_MIPMAP 0x00400000
1357 #define WINEDDSCAPS_RESERVED2 0x00800000
1358 #define WINEDDSCAPS_ALLOCONLOAD 0x04000000
1359 #define WINEDDSCAPS_VIDEOPORT 0x08000000
1360 #define WINEDDSCAPS_LOCALVIDMEM 0x10000000
1361 #define WINEDDSCAPS_NONLOCALVIDMEM 0x20000000
1362 #define WINEDDSCAPS_STANDARDVGAMODE 0x40000000
1363 #define WINEDDSCAPS_OPTIMIZED 0x80000000
1365 #define WINEDDCKEYCAPS_DESTBLT 0x00000001
1366 #define WINEDDCKEYCAPS_DESTBLTCLRSPACE 0x00000002
1367 #define WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV 0x00000004
1368 #define WINEDDCKEYCAPS_DESTBLTYUV 0x00000008
1369 #define WINEDDCKEYCAPS_DESTOVERLAY 0x00000010
1370 #define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE 0x00000020
1371 #define WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV 0x00000040
1372 #define WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE 0x00000080
1373 #define WINEDDCKEYCAPS_DESTOVERLAYYUV 0x00000100
1374 #define WINEDDCKEYCAPS_SRCBLT 0x00000200
1375 #define WINEDDCKEYCAPS_SRCBLTCLRSPACE 0x00000400
1376 #define WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV 0x00000800
1377 #define WINEDDCKEYCAPS_SRCBLTYUV 0x00001000
1378 #define WINEDDCKEYCAPS_SRCOVERLAY 0x00002000
1379 #define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE 0x00004000
1380 #define WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV 0x00008000
1381 #define WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE 0x00010000
1382 #define WINEDDCKEYCAPS_SRCOVERLAYYUV 0x00020000
1383 #define WINEDDCKEYCAPS_NOCOSTOVERLAY 0x00040000
1385 #define WINEDDFXCAPS_BLTALPHA 0x00000001
1386 #define WINEDDFXCAPS_OVERLAYALPHA 0x00000004
1387 #define WINEDDFXCAPS_BLTARITHSTRETCHYN 0x00000010
1388 #define WINEDDFXCAPS_BLTARITHSTRETCHY 0x00000020
1389 #define WINEDDFXCAPS_BLTMIRRORLEFTRIGHT 0x00000040
1390 #define WINEDDFXCAPS_BLTMIRRORUPDOWN 0x00000080
1391 #define WINEDDFXCAPS_BLTROTATION 0x00000100
1392 #define WINEDDFXCAPS_BLTROTATION90 0x00000200
1393 #define WINEDDFXCAPS_BLTSHRINKX 0x00000400
1394 #define WINEDDFXCAPS_BLTSHRINKXN 0x00000800
1395 #define WINEDDFXCAPS_BLTSHRINKY 0x00001000
1396 #define WINEDDFXCAPS_BLTSHRINKYN 0x00002000
1397 #define WINEDDFXCAPS_BLTSTRETCHX 0x00004000
1398 #define WINEDDFXCAPS_BLTSTRETCHXN 0x00008000
1399 #define WINEDDFXCAPS_BLTSTRETCHY 0x00010000
1400 #define WINEDDFXCAPS_BLTSTRETCHYN 0x00020000
1401 #define WINEDDFXCAPS_OVERLAYARITHSTRETCHY 0x00040000
1402 #define WINEDDFXCAPS_OVERLAYARITHSTRETCHYN 0x00000008
1403 #define WINEDDFXCAPS_OVERLAYSHRINKX 0x00080000
1404 #define WINEDDFXCAPS_OVERLAYSHRINKXN 0x00100000
1405 #define WINEDDFXCAPS_OVERLAYSHRINKY 0x00200000
1406 #define WINEDDFXCAPS_OVERLAYSHRINKYN 0x00400000
1407 #define WINEDDFXCAPS_OVERLAYSTRETCHX 0x00800000
1408 #define WINEDDFXCAPS_OVERLAYSTRETCHXN 0x01000000
1409 #define WINEDDFXCAPS_OVERLAYSTRETCHY 0x02000000
1410 #define WINEDDFXCAPS_OVERLAYSTRETCHYN 0x04000000
1411 #define WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT 0x08000000
1412 #define WINEDDFXCAPS_OVERLAYMIRRORUPDOWN 0x10000000
1414 #define WINEDDCAPS_3D 0x00000001
1415 #define WINEDDCAPS_ALIGNBOUNDARYDEST 0x00000002
1416 #define WINEDDCAPS_ALIGNSIZEDEST 0x00000004
1417 #define WINEDDCAPS_ALIGNBOUNDARYSRC 0x00000008
1418 #define WINEDDCAPS_ALIGNSIZESRC 0x00000010
1419 #define WINEDDCAPS_ALIGNSTRIDE 0x00000020
1420 #define WINEDDCAPS_BLT 0x00000040
1421 #define WINEDDCAPS_BLTQUEUE 0x00000080
1422 #define WINEDDCAPS_BLTFOURCC 0x00000100
1423 #define WINEDDCAPS_BLTSTRETCH 0x00000200
1424 #define WINEDDCAPS_GDI 0x00000400
1425 #define WINEDDCAPS_OVERLAY 0x00000800
1426 #define WINEDDCAPS_OVERLAYCANTCLIP 0x00001000
1427 #define WINEDDCAPS_OVERLAYFOURCC 0x00002000
1428 #define WINEDDCAPS_OVERLAYSTRETCH 0x00004000
1429 #define WINEDDCAPS_PALETTE 0x00008000
1430 #define WINEDDCAPS_PALETTEVSYNC 0x00010000
1431 #define WINEDDCAPS_READSCANLINE 0x00020000
1432 #define WINEDDCAPS_STEREOVIEW 0x00040000
1433 #define WINEDDCAPS_VBI 0x00080000
1434 #define WINEDDCAPS_ZBLTS 0x00100000
1435 #define WINEDDCAPS_ZOVERLAYS 0x00200000
1436 #define WINEDDCAPS_COLORKEY 0x00400000
1437 #define WINEDDCAPS_ALPHA 0x00800000
1438 #define WINEDDCAPS_COLORKEYHWASSIST 0x01000000
1439 #define WINEDDCAPS_NOHARDWARE 0x02000000
1440 #define WINEDDCAPS_BLTCOLORFILL 0x04000000
1441 #define WINEDDCAPS_BANKSWITCHED 0x08000000
1442 #define WINEDDCAPS_BLTDEPTHFILL 0x10000000
1443 #define WINEDDCAPS_CANCLIP 0x20000000
1444 #define WINEDDCAPS_CANCLIPSTRETCHED 0x40000000
1445 #define WINEDDCAPS_CANBLTSYSMEM 0x80000000
1447 #define WINEDDCAPS2_CERTIFIED 0x00000001
1448 #define WINEDDCAPS2_NO2DDURING3DSCENE 0x00000002
1449 #define WINEDDCAPS2_VIDEOPORT 0x00000004
1450 #define WINEDDCAPS2_AUTOFLIPOVERLAY 0x00000008
1451 #define WINEDDCAPS2_CANBOBINTERLEAVED 0x00000010
1452 #define WINEDDCAPS2_CANBOBNONINTERLEAVED 0x00000020
1453 #define WINEDDCAPS2_COLORCONTROLOVERLAY 0x00000040
1454 #define WINEDDCAPS2_COLORCONTROLPRIMARY 0x00000080
1455 #define WINEDDCAPS2_CANDROPZ16BIT 0x00000100
1456 #define WINEDDCAPS2_NONLOCALVIDMEM 0x00000200
1457 #define WINEDDCAPS2_NONLOCALVIDMEMCAPS 0x00000400
1458 #define WINEDDCAPS2_NOPAGELOCKREQUIRED 0x00000800
1459 #define WINEDDCAPS2_WIDESURFACES 0x00001000
1460 #define WINEDDCAPS2_CANFLIPODDEVEN 0x00002000
1461 #define WINEDDCAPS2_CANBOBHARDWARE 0x00004000
1462 #define WINEDDCAPS2_COPYFOURCC 0x00008000
1463 #define WINEDDCAPS2_PRIMARYGAMMA 0x00020000
1464 #define WINEDDCAPS2_CANRENDERWINDOWED 0x00080000
1465 #define WINEDDCAPS2_CANCALIBRATEGAMMA 0x00100000
1466 #define WINEDDCAPS2_FLIPINTERVAL 0x00200000
1467 #define WINEDDCAPS2_FLIPNOVSYNC 0x00400000
1468 #define WINEDDCAPS2_CANMANAGETEXTURE 0x00800000
1469 #define WINEDDCAPS2_TEXMANINNONLOCALVIDMEM 0x01000000
1470 #define WINEDDCAPS2_STEREO 0x02000000
1471 #define WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL 0x04000000
1473 #define WINED3D_PALETTE_8BIT_ENTRIES 0x00000001
1474 #define WINED3D_PALETTE_ALLOW_256 0x00000002
1475 #define WINED3D_PALETTE_ALPHA 0x00000004
1477 #define WINED3D_TEXTURE_CREATE_MAPPABLE 0x00000001
1478 #define WINED3D_TEXTURE_CREATE_DISCARD 0x00000002
1479 #define WINED3D_TEXTURE_CREATE_GET_DC_LENIENT 0x00000004
1481 #define WINED3D_APPEND_ALIGNED_ELEMENT 0xffffffff
1483 #define WINED3D_OUTPUT_SLOT_SEMANTIC 0xffffffff
1484 #define WINED3D_OUTPUT_SLOT_UNUSED 0xfffffffe
1486 #define WINED3D_VIEW_BUFFER_RAW 0x00000001
1487 #define WINED3D_VIEW_BUFFER_APPEND 0x00000002
1488 #define WINED3D_VIEW_BUFFER_COUNTER 0x00000004
1489 #define WINED3D_VIEW_TEXTURE_CUBE 0x00000008
1490 #define WINED3D_VIEW_TEXTURE_ARRAY 0x00000010
1492 struct wined3d_display_mode
1497 enum wined3d_format_id format_id
;
1498 enum wined3d_scanline_ordering scanline_ordering
;
1501 struct wined3d_color
1524 struct wined3d_ivec4
1532 struct wined3d_matrix
1534 float _11
, _12
, _13
, _14
;
1535 float _21
, _22
, _23
, _24
;
1536 float _31
, _32
, _33
, _34
;
1537 float _41
, _42
, _43
, _44
;
1540 struct wined3d_light
1542 enum wined3d_light_type type
;
1543 struct wined3d_color diffuse
;
1544 struct wined3d_color specular
;
1545 struct wined3d_color ambient
;
1546 struct wined3d_vec3 position
;
1547 struct wined3d_vec3 direction
;
1557 struct wined3d_material
1559 struct wined3d_color diffuse
;
1560 struct wined3d_color ambient
;
1561 struct wined3d_color specular
;
1562 struct wined3d_color emissive
;
1566 struct wined3d_viewport
1576 struct wined3d_gamma_ramp
1583 struct wined3d_line_pattern
1589 struct wined3d_rect_patch_info
1591 UINT start_vertex_offset_width
;
1592 UINT start_vertex_offset_height
;
1596 enum wined3d_basis_type basis
;
1597 enum wined3d_degree_type degree
;
1600 struct wined3d_tri_patch_info
1602 UINT start_vertex_offset
;
1604 enum wined3d_basis_type basis
;
1605 enum wined3d_degree_type degree
;
1608 struct wined3d_adapter_identifier
1613 UINT description_size
;
1615 UINT device_name_size
;
1616 LARGE_INTEGER driver_version
;
1621 GUID device_identifier
;
1624 SIZE_T video_memory
;
1627 struct wined3d_swapchain_desc
1629 UINT backbuffer_width
;
1630 UINT backbuffer_height
;
1631 enum wined3d_format_id backbuffer_format
;
1632 UINT backbuffer_count
;
1633 enum wined3d_multisample_type multisample_type
;
1634 DWORD multisample_quality
;
1635 enum wined3d_swap_effect swap_effect
;
1638 BOOL enable_auto_depth_stencil
;
1639 enum wined3d_format_id auto_depth_stencil_format
;
1643 BOOL auto_restore_display_mode
;
1646 struct wined3d_resource_desc
1648 enum wined3d_resource_type resource_type
;
1649 enum wined3d_format_id format
;
1650 enum wined3d_multisample_type multisample_type
;
1651 UINT multisample_quality
;
1653 enum wined3d_pool pool
;
1660 struct wined3d_sub_resource_desc
1662 enum wined3d_format_id format
;
1663 enum wined3d_multisample_type multisample_type
;
1664 UINT multisample_quality
;
1666 enum wined3d_pool pool
;
1673 struct wined3d_clip_status
1676 DWORD clip_intersection
;
1679 enum wined3d_input_classification
1681 WINED3D_INPUT_PER_VERTEX_DATA
,
1682 WINED3D_INPUT_PER_INSTANCE_DATA
,
1685 struct wined3d_vertex_element
1687 enum wined3d_format_id format
;
1688 unsigned int input_slot
;
1689 unsigned int offset
;
1690 unsigned int output_slot
; /* D3D 8 & 10 */
1691 enum wined3d_input_classification input_slot_class
;
1692 unsigned int instance_data_step_rate
;
1698 struct wined3d_device_creation_parameters
1701 enum wined3d_device_type device_type
;
1706 struct wined3d_raster_status
1712 struct wined3d_map_desc
1719 struct wined3d_sub_resource_data
1722 unsigned int row_pitch
;
1723 unsigned int slice_pitch
;
1736 struct wined3d_vertex_shader_caps
1739 INT dynamic_flow_control_depth
;
1741 INT static_flow_control_depth
;
1744 struct wined3d_pixel_shader_caps
1747 INT dynamic_flow_control_depth
;
1749 INT static_flow_control_depth
;
1750 INT instruction_slot_count
;
1753 struct wined3d_ddraw_caps
1757 DWORD color_key_caps
;
1759 DWORD fx_alpha_caps
;
1762 DWORD svb_color_key_caps
;
1765 DWORD vsb_color_key_caps
;
1768 DWORD ssb_color_key_caps
;
1773 typedef struct _WINED3DCAPS
1775 enum wined3d_device_type DeviceType
;
1776 UINT AdapterOrdinal
;
1781 DWORD PresentationIntervals
;
1785 DWORD PrimitiveMiscCaps
;
1789 DWORD DestBlendCaps
;
1793 DWORD TextureFilterCaps
;
1794 DWORD CubeTextureFilterCaps
;
1795 DWORD VolumeTextureFilterCaps
;
1796 DWORD TextureAddressCaps
;
1797 DWORD VolumeTextureAddressCaps
;
1800 DWORD MaxTextureWidth
;
1801 DWORD MaxTextureHeight
;
1802 DWORD MaxVolumeExtent
;
1803 DWORD MaxTextureRepeat
;
1804 DWORD MaxTextureAspectRatio
;
1805 DWORD MaxAnisotropy
;
1808 float GuardBandLeft
;
1810 float GuardBandRight
;
1811 float GuardBandBottom
;
1813 float ExtentsAdjust
;
1817 DWORD TextureOpCaps
;
1818 DWORD MaxTextureBlendStages
;
1819 DWORD MaxSimultaneousTextures
;
1821 DWORD VertexProcessingCaps
;
1822 DWORD MaxActiveLights
;
1823 DWORD MaxUserClipPlanes
;
1824 DWORD MaxVertexBlendMatrices
;
1825 DWORD MaxVertexBlendMatrixIndex
;
1829 DWORD MaxPrimitiveCount
;
1830 DWORD MaxVertexIndex
;
1832 DWORD MaxStreamStride
;
1834 DWORD VertexShaderVersion
;
1835 DWORD MaxVertexShaderConst
;
1837 DWORD PixelShaderVersion
;
1838 float PixelShader1xMaxValue
;
1843 float MaxNpatchTessellationLevel
;
1844 DWORD Reserved5
; /* undocumented */
1846 UINT MasterAdapterOrdinal
;
1847 UINT AdapterOrdinalInGroup
;
1848 UINT NumberOfAdaptersInGroup
;
1850 DWORD NumSimultaneousRTs
;
1851 DWORD StretchRectFilterCaps
;
1852 struct wined3d_vertex_shader_caps VS20Caps
;
1853 struct wined3d_pixel_shader_caps PS20Caps
;
1854 DWORD VertexTextureFilterCaps
;
1855 DWORD MaxVShaderInstructionsExecuted
;
1856 DWORD MaxPShaderInstructionsExecuted
;
1857 DWORD MaxVertexShader30InstructionSlots
;
1858 DWORD MaxPixelShader30InstructionSlots
;
1859 DWORD Reserved2
; /* Not in the microsoft headers but documented */
1862 struct wined3d_ddraw_caps ddraw_caps
;
1865 struct wined3d_color_key
1867 DWORD color_space_low_value
; /* low boundary of color space that is to
1868 * be treated as Color Key, inclusive */
1869 DWORD color_space_high_value
; /* high boundary of color space that is
1870 * to be treated as Color Key, inclusive */
1873 struct wined3d_blt_fx
1877 struct wined3d_color_key dst_color_key
;
1878 struct wined3d_color_key src_color_key
;
1881 struct wined3d_buffer_desc
1886 UINT cpu_access_flags
;
1890 struct wined3d_rendertarget_view_desc
1892 enum wined3d_format_id format_id
;
1897 unsigned int start_idx
;
1902 unsigned int level_idx
;
1903 unsigned int layer_idx
;
1904 unsigned int layer_count
;
1909 struct wined3d_sampler_desc
1911 enum wined3d_texture_address address_u
;
1912 enum wined3d_texture_address address_v
;
1913 enum wined3d_texture_address address_w
;
1914 float border_color
[4];
1915 enum wined3d_texture_filter_type mag_filter
;
1916 enum wined3d_texture_filter_type min_filter
;
1917 enum wined3d_texture_filter_type mip_filter
;
1921 unsigned int max_anisotropy
;
1923 enum wined3d_cmp_func comparison_func
;
1927 struct wined3d_shader_signature_element
1929 const char *semantic_name
;
1931 enum wined3d_sysval_semantic sysval_semantic
;
1932 enum wined3d_component_type component_type
;
1937 struct wined3d_shader_signature
1940 struct wined3d_shader_signature_element
*elements
;
1943 struct wined3d_shader_desc
1945 const DWORD
*byte_code
;
1946 struct wined3d_shader_signature input_signature
;
1947 struct wined3d_shader_signature output_signature
;
1948 unsigned int max_version
;
1951 struct wined3d_shader_resource_view_desc
1953 enum wined3d_format_id format_id
;
1959 unsigned int start_idx
;
1964 unsigned int level_idx
;
1965 unsigned int level_count
;
1966 unsigned int layer_idx
;
1967 unsigned int layer_count
;
1972 struct wined3d_output_desc
1974 WCHAR device_name
[CCHDEVICENAME
];
1976 BOOL attached_to_desktop
;
1977 enum wined3d_display_rotation rotation
;
1981 struct wined3d_parent_ops
1983 void (__stdcall
*wined3d_object_destroyed
)(void *parent
);
1987 struct wined3d_buffer
;
1988 struct wined3d_device
;
1989 struct wined3d_palette
;
1990 struct wined3d_query
;
1991 struct wined3d_rendertarget_view
;
1992 struct wined3d_resource
;
1993 struct wined3d_sampler
;
1994 struct wined3d_shader
;
1995 struct wined3d_shader_resource_view
;
1996 struct wined3d_stateblock
;
1997 struct wined3d_swapchain
;
1998 struct wined3d_texture
;
1999 struct wined3d_vertex_declaration
;
2001 struct wined3d_device_parent
2003 const struct wined3d_device_parent_ops
*ops
;
2006 struct wined3d_device_parent_ops
2008 void (__cdecl
*wined3d_device_created
)(struct wined3d_device_parent
*device_parent
, struct wined3d_device
*device
);
2009 void (__cdecl
*mode_changed
)(struct wined3d_device_parent
*device_parent
);
2010 void (__cdecl
*activate
)(struct wined3d_device_parent
*device_parent
, BOOL activate
);
2011 HRESULT (__cdecl
*surface_created
)(struct wined3d_device_parent
*device_parent
,
2012 struct wined3d_texture
*texture
, unsigned int sub_resource_idx
,
2013 void **parent
, const struct wined3d_parent_ops
**parent_ops
);
2014 HRESULT (__cdecl
*volume_created
)(struct wined3d_device_parent
*device_parent
,
2015 struct wined3d_texture
*wined3d_texture
, unsigned int sub_resource_idx
,
2016 void **parent
, const struct wined3d_parent_ops
**parent_ops
);
2017 HRESULT (__cdecl
*create_swapchain_texture
)(struct wined3d_device_parent
*device_parent
, void *parent
,
2018 const struct wined3d_resource_desc
*desc
, struct wined3d_texture
**texture
);
2019 HRESULT (__cdecl
*create_swapchain
)(struct wined3d_device_parent
*device_parent
,
2020 struct wined3d_swapchain_desc
*desc
, struct wined3d_swapchain
**swapchain
);
2023 struct wined3d_private_store
2025 struct list content
;
2028 struct wined3d_private_data
2033 DWORD flags
; /* DDSPD_* */
2042 typedef HRESULT (CDECL
*wined3d_device_reset_cb
)(struct wined3d_resource
*resource
);
2044 void __stdcall
wined3d_mutex_lock(void);
2045 void __stdcall
wined3d_mutex_unlock(void);
2047 UINT __cdecl
wined3d_calculate_format_pitch(const struct wined3d
*wined3d
, UINT adapter_idx
,
2048 enum wined3d_format_id format_id
, UINT width
);
2049 HRESULT __cdecl
wined3d_check_depth_stencil_match(const struct wined3d
*wined3d
, UINT adapter_idx
,
2050 enum wined3d_device_type device_type
, enum wined3d_format_id adapter_format_id
,
2051 enum wined3d_format_id render_target_format_id
, enum wined3d_format_id depth_stencil_format_id
);
2052 HRESULT __cdecl
wined3d_check_device_format(const struct wined3d
*wined3d
, UINT adaper_idx
,
2053 enum wined3d_device_type device_type
, enum wined3d_format_id adapter_format_id
, DWORD usage
,
2054 enum wined3d_resource_type resource_type
, enum wined3d_format_id check_format_id
);
2055 HRESULT __cdecl
wined3d_check_device_format_conversion(const struct wined3d
*wined3d
, UINT adapter_idx
,
2056 enum wined3d_device_type device_type
, enum wined3d_format_id source_format_id
,
2057 enum wined3d_format_id target_format_id
);
2058 HRESULT __cdecl
wined3d_check_device_multisample_type(const struct wined3d
*wined3d
, UINT adapter_idx
,
2059 enum wined3d_device_type device_type
, enum wined3d_format_id surface_format_id
, BOOL windowed
,
2060 enum wined3d_multisample_type multisample_type
, DWORD
*quality_levels
);
2061 HRESULT __cdecl
wined3d_check_device_type(const struct wined3d
*wined3d
, UINT adapter_idx
,
2062 enum wined3d_device_type device_type
, enum wined3d_format_id display_format_id
,
2063 enum wined3d_format_id backbuffer_format_id
, BOOL windowed
);
2064 struct wined3d
* __cdecl
wined3d_create(DWORD flags
);
2065 ULONG __cdecl
wined3d_decref(struct wined3d
*wined3d
);
2066 HRESULT __cdecl
wined3d_enum_adapter_modes(const struct wined3d
*wined3d
, UINT adapter_idx
,
2067 enum wined3d_format_id format_id
, enum wined3d_scanline_ordering scanline_ordering
,
2068 UINT mode_idx
, struct wined3d_display_mode
*mode
);
2069 UINT __cdecl
wined3d_get_adapter_count(const struct wined3d
*wined3d
);
2070 HRESULT __cdecl
wined3d_get_adapter_display_mode(const struct wined3d
*wined3d
, UINT adapter_idx
,
2071 struct wined3d_display_mode
*mode
, enum wined3d_display_rotation
*rotation
);
2072 HRESULT __cdecl
wined3d_get_adapter_identifier(const struct wined3d
*wined3d
, UINT adapter_idx
,
2073 DWORD flags
, struct wined3d_adapter_identifier
*identifier
);
2074 UINT __cdecl
wined3d_get_adapter_mode_count(const struct wined3d
*wined3d
, UINT adapter_idx
,
2075 enum wined3d_format_id format_id
, enum wined3d_scanline_ordering scanline_ordering
);
2076 HRESULT __cdecl
wined3d_get_adapter_raster_status(const struct wined3d
*wined3d
, UINT adapter_idx
,
2077 struct wined3d_raster_status
*raster_status
);
2078 HRESULT __cdecl
wined3d_get_device_caps(const struct wined3d
*wined3d
, UINT adapter_idx
,
2079 enum wined3d_device_type device_type
, WINED3DCAPS
*caps
);
2080 HRESULT __cdecl
wined3d_get_output_desc(const struct wined3d
*wined3d
, unsigned int adapter_idx
,
2081 struct wined3d_output_desc
*desc
);
2082 ULONG __cdecl
wined3d_incref(struct wined3d
*wined3d
);
2083 HRESULT __cdecl
wined3d_register_software_device(struct wined3d
*wined3d
, void *init_function
);
2084 HRESULT __cdecl
wined3d_set_adapter_display_mode(struct wined3d
*wined3d
,
2085 UINT adapter_idx
, const struct wined3d_display_mode
*mode
);
2087 HRESULT __cdecl
wined3d_buffer_create(struct wined3d_device
*device
, const struct wined3d_buffer_desc
*desc
,
2088 const struct wined3d_sub_resource_data
*data
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2089 struct wined3d_buffer
**buffer
);
2090 HRESULT __cdecl
wined3d_buffer_create_ib(struct wined3d_device
*device
, UINT length
, DWORD usage
,
2091 enum wined3d_pool pool
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2092 struct wined3d_buffer
**buffer
);
2093 HRESULT __cdecl
wined3d_buffer_create_vb(struct wined3d_device
*device
, UINT length
, DWORD usage
,
2094 enum wined3d_pool pool
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2095 struct wined3d_buffer
**buffer
);
2096 ULONG __cdecl
wined3d_buffer_decref(struct wined3d_buffer
*buffer
);
2097 void * __cdecl
wined3d_buffer_get_parent(const struct wined3d_buffer
*buffer
);
2098 struct wined3d_resource
* __cdecl
wined3d_buffer_get_resource(struct wined3d_buffer
*buffer
);
2099 ULONG __cdecl
wined3d_buffer_incref(struct wined3d_buffer
*buffer
);
2100 HRESULT __cdecl
wined3d_buffer_map(struct wined3d_buffer
*buffer
, UINT offset
, UINT size
, BYTE
**data
, DWORD flags
);
2101 void __cdecl
wined3d_buffer_preload(struct wined3d_buffer
*buffer
);
2102 void __cdecl
wined3d_buffer_unmap(struct wined3d_buffer
*buffer
);
2104 HRESULT __cdecl
wined3d_device_acquire_focus_window(struct wined3d_device
*device
, HWND window
);
2105 HRESULT __cdecl
wined3d_device_begin_scene(struct wined3d_device
*device
);
2106 HRESULT __cdecl
wined3d_device_begin_stateblock(struct wined3d_device
*device
);
2107 HRESULT __cdecl
wined3d_device_clear(struct wined3d_device
*device
, DWORD rect_count
, const RECT
*rects
, DWORD flags
,
2108 const struct wined3d_color
*color
, float z
, DWORD stencil
);
2109 HRESULT __cdecl
wined3d_device_clear_rendertarget_view(struct wined3d_device
*device
,
2110 struct wined3d_rendertarget_view
*view
, const RECT
*rect
, DWORD flags
,
2111 const struct wined3d_color
*color
, float depth
, DWORD stencil
);
2112 void __cdecl
wined3d_device_copy_resource(struct wined3d_device
*device
,
2113 struct wined3d_resource
*dst_resource
, struct wined3d_resource
*src_resource
);
2114 HRESULT __cdecl
wined3d_device_copy_sub_resource_region(struct wined3d_device
*device
,
2115 struct wined3d_resource
*dst_resource
, unsigned int dst_sub_resource_idx
, unsigned int dst_x
,
2116 unsigned int dst_y
, unsigned int dst_z
, struct wined3d_resource
*src_resource
,
2117 unsigned int src_sub_resource_idx
, const struct wined3d_box
*src_box
);
2118 HRESULT __cdecl
wined3d_device_create(struct wined3d
*wined3d
, UINT adapter_idx
,
2119 enum wined3d_device_type device_type
, HWND focus_window
, DWORD behaviour_flags
, BYTE surface_alignment
,
2120 struct wined3d_device_parent
*device_parent
, struct wined3d_device
**device
);
2121 ULONG __cdecl
wined3d_device_decref(struct wined3d_device
*device
);
2122 HRESULT __cdecl
wined3d_device_draw_indexed_primitive(struct wined3d_device
*device
, UINT start_idx
, UINT index_count
);
2123 void __cdecl
wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device
*device
,
2124 UINT start_idx
, UINT index_count
, UINT start_instance
, UINT instance_count
);
2125 HRESULT __cdecl
wined3d_device_draw_primitive(struct wined3d_device
*device
, UINT start_vertex
, UINT vertex_count
);
2126 void __cdecl
wined3d_device_draw_primitive_instanced(struct wined3d_device
*device
,
2127 UINT start_vertex
, UINT vertex_count
, UINT start_instance
, UINT instance_count
);
2128 HRESULT __cdecl
wined3d_device_end_scene(struct wined3d_device
*device
);
2129 HRESULT __cdecl
wined3d_device_end_stateblock(struct wined3d_device
*device
, struct wined3d_stateblock
**stateblock
);
2130 void __cdecl
wined3d_device_evict_managed_resources(struct wined3d_device
*device
);
2131 UINT __cdecl
wined3d_device_get_available_texture_mem(const struct wined3d_device
*device
);
2132 INT __cdecl
wined3d_device_get_base_vertex_index(const struct wined3d_device
*device
);
2133 HRESULT __cdecl
wined3d_device_get_clip_plane(const struct wined3d_device
*device
,
2134 UINT plane_idx
, struct wined3d_vec4
*plane
);
2135 HRESULT __cdecl
wined3d_device_get_clip_status(const struct wined3d_device
*device
,
2136 struct wined3d_clip_status
*clip_status
);
2137 void __cdecl
wined3d_device_get_creation_parameters(const struct wined3d_device
*device
,
2138 struct wined3d_device_creation_parameters
*creation_parameters
);
2139 struct wined3d_rendertarget_view
* __cdecl
wined3d_device_get_depth_stencil_view(const struct wined3d_device
*device
);
2140 HRESULT __cdecl
wined3d_device_get_device_caps(const struct wined3d_device
*device
, WINED3DCAPS
*caps
);
2141 HRESULT __cdecl
wined3d_device_get_display_mode(const struct wined3d_device
*device
, UINT swapchain_idx
,
2142 struct wined3d_display_mode
*mode
, enum wined3d_display_rotation
*rotation
);
2143 void __cdecl
wined3d_device_get_gamma_ramp(const struct wined3d_device
*device
,
2144 UINT swapchain_idx
, struct wined3d_gamma_ramp
*ramp
);
2145 struct wined3d_shader
* __cdecl
wined3d_device_get_geometry_shader(const struct wined3d_device
*device
);
2146 struct wined3d_buffer
* __cdecl
wined3d_device_get_gs_cb(const struct wined3d_device
*device
, UINT idx
);
2147 struct wined3d_shader_resource_view
* __cdecl
wined3d_device_get_gs_resource_view(const struct wined3d_device
*device
,
2149 struct wined3d_sampler
* __cdecl
wined3d_device_get_gs_sampler(const struct wined3d_device
*device
, UINT idx
);
2150 struct wined3d_buffer
* __cdecl
wined3d_device_get_index_buffer(const struct wined3d_device
*device
,
2151 enum wined3d_format_id
*format
, unsigned int *offset
);
2152 HRESULT __cdecl
wined3d_device_get_light(const struct wined3d_device
*device
,
2153 UINT light_idx
, struct wined3d_light
*light
);
2154 HRESULT __cdecl
wined3d_device_get_light_enable(const struct wined3d_device
*device
, UINT light_idx
, BOOL
*enable
);
2155 void __cdecl
wined3d_device_get_material(const struct wined3d_device
*device
, struct wined3d_material
*material
);
2156 float __cdecl
wined3d_device_get_npatch_mode(const struct wined3d_device
*device
);
2157 struct wined3d_shader
* __cdecl
wined3d_device_get_pixel_shader(const struct wined3d_device
*device
);
2158 struct wined3d_query
* __cdecl
wined3d_device_get_predication(struct wined3d_device
*device
, BOOL
*value
);
2159 void __cdecl
wined3d_device_get_primitive_type(const struct wined3d_device
*device
,
2160 enum wined3d_primitive_type
*primitive_topology
);
2161 struct wined3d_buffer
* __cdecl
wined3d_device_get_ps_cb(const struct wined3d_device
*device
, UINT idx
);
2162 HRESULT __cdecl
wined3d_device_get_ps_consts_b(const struct wined3d_device
*device
,
2163 unsigned int start_idx
, unsigned int count
, BOOL
*constants
);
2164 HRESULT __cdecl
wined3d_device_get_ps_consts_f(const struct wined3d_device
*device
,
2165 unsigned int start_idx
, unsigned int count
, struct wined3d_vec4
*constants
);
2166 HRESULT __cdecl
wined3d_device_get_ps_consts_i(const struct wined3d_device
*device
,
2167 unsigned int start_idx
, unsigned int count
, struct wined3d_ivec4
*constants
);
2168 struct wined3d_shader_resource_view
* __cdecl
wined3d_device_get_ps_resource_view(const struct wined3d_device
*device
,
2170 struct wined3d_sampler
* __cdecl
wined3d_device_get_ps_sampler(const struct wined3d_device
*device
, UINT idx
);
2171 HRESULT __cdecl
wined3d_device_get_raster_status(const struct wined3d_device
*device
,
2172 UINT swapchain_idx
, struct wined3d_raster_status
*raster_status
);
2173 DWORD __cdecl
wined3d_device_get_render_state(const struct wined3d_device
*device
, enum wined3d_render_state state
);
2174 struct wined3d_rendertarget_view
* __cdecl
wined3d_device_get_rendertarget_view(const struct wined3d_device
*device
,
2175 unsigned int view_idx
);
2176 DWORD __cdecl
wined3d_device_get_sampler_state(const struct wined3d_device
*device
,
2177 UINT sampler_idx
, enum wined3d_sampler_state state
);
2178 void __cdecl
wined3d_device_get_scissor_rect(const struct wined3d_device
*device
, RECT
*rect
);
2179 BOOL __cdecl
wined3d_device_get_software_vertex_processing(const struct wined3d_device
*device
);
2180 struct wined3d_buffer
* __cdecl
wined3d_device_get_stream_output(struct wined3d_device
*device
,
2181 UINT idx
, UINT
*offset
);
2182 HRESULT __cdecl
wined3d_device_get_stream_source(const struct wined3d_device
*device
,
2183 UINT stream_idx
, struct wined3d_buffer
**buffer
, UINT
*offset
, UINT
*stride
);
2184 HRESULT __cdecl
wined3d_device_get_stream_source_freq(const struct wined3d_device
*device
,
2185 UINT stream_idx
, UINT
*divider
);
2186 struct wined3d_swapchain
* __cdecl
wined3d_device_get_swapchain(const struct wined3d_device
*device
,
2187 UINT swapchain_idx
);
2188 UINT __cdecl
wined3d_device_get_swapchain_count(const struct wined3d_device
*device
);
2189 struct wined3d_texture
* __cdecl
wined3d_device_get_texture(const struct wined3d_device
*device
, UINT stage
);
2190 DWORD __cdecl
wined3d_device_get_texture_stage_state(const struct wined3d_device
*device
,
2191 UINT stage
, enum wined3d_texture_stage_state state
);
2192 void __cdecl
wined3d_device_get_transform(const struct wined3d_device
*device
,
2193 enum wined3d_transform_state state
, struct wined3d_matrix
*matrix
);
2194 struct wined3d_vertex_declaration
* __cdecl
wined3d_device_get_vertex_declaration(const struct wined3d_device
*device
);
2195 struct wined3d_shader
* __cdecl
wined3d_device_get_vertex_shader(const struct wined3d_device
*device
);
2196 void __cdecl
wined3d_device_get_viewport(const struct wined3d_device
*device
, struct wined3d_viewport
*viewport
);
2197 struct wined3d_buffer
* __cdecl
wined3d_device_get_vs_cb(const struct wined3d_device
*device
, UINT idx
);
2198 HRESULT __cdecl
wined3d_device_get_vs_consts_b(const struct wined3d_device
*device
,
2199 unsigned int start_idx
, unsigned int count
, BOOL
*constants
);
2200 HRESULT __cdecl
wined3d_device_get_vs_consts_f(const struct wined3d_device
*device
,
2201 unsigned int start_idx
, unsigned int count
, struct wined3d_vec4
*constants
);
2202 HRESULT __cdecl
wined3d_device_get_vs_consts_i(const struct wined3d_device
*device
,
2203 unsigned int start_idx
, unsigned int count
, struct wined3d_ivec4
*constants
);
2204 struct wined3d_shader_resource_view
* __cdecl
wined3d_device_get_vs_resource_view(const struct wined3d_device
*device
,
2206 struct wined3d_sampler
* __cdecl
wined3d_device_get_vs_sampler(const struct wined3d_device
*device
, UINT idx
);
2207 struct wined3d
* __cdecl
wined3d_device_get_wined3d(const struct wined3d_device
*device
);
2208 ULONG __cdecl
wined3d_device_incref(struct wined3d_device
*device
);
2209 HRESULT __cdecl
wined3d_device_init_3d(struct wined3d_device
*device
, struct wined3d_swapchain_desc
*swapchain_desc
);
2210 HRESULT __cdecl
wined3d_device_init_gdi(struct wined3d_device
*device
, struct wined3d_swapchain_desc
*swapchain_desc
);
2211 void __cdecl
wined3d_device_multiply_transform(struct wined3d_device
*device
,
2212 enum wined3d_transform_state state
, const struct wined3d_matrix
*matrix
);
2213 HRESULT __cdecl
wined3d_device_process_vertices(struct wined3d_device
*device
,
2214 UINT src_start_idx
, UINT dst_idx
, UINT vertex_count
, struct wined3d_buffer
*dst_buffer
,
2215 const struct wined3d_vertex_declaration
*declaration
, DWORD flags
, DWORD dst_fvf
);
2216 void __cdecl
wined3d_device_release_focus_window(struct wined3d_device
*device
);
2217 HRESULT __cdecl
wined3d_device_reset(struct wined3d_device
*device
,
2218 const struct wined3d_swapchain_desc
*swapchain_desc
, const struct wined3d_display_mode
*mode
,
2219 wined3d_device_reset_cb callback
, BOOL reset_state
);
2220 void __cdecl
wined3d_device_restore_fullscreen_window(struct wined3d_device
*device
, HWND window
);
2221 void __cdecl
wined3d_device_set_base_vertex_index(struct wined3d_device
*device
, INT base_index
);
2222 HRESULT __cdecl
wined3d_device_set_clip_plane(struct wined3d_device
*device
,
2223 UINT plane_idx
, const struct wined3d_vec4
*plane
);
2224 HRESULT __cdecl
wined3d_device_set_clip_status(struct wined3d_device
*device
,
2225 const struct wined3d_clip_status
*clip_status
);
2226 void __cdecl
wined3d_device_set_cursor_position(struct wined3d_device
*device
,
2227 int x_screen_space
, int y_screen_space
, DWORD flags
);
2228 HRESULT __cdecl
wined3d_device_set_cursor_properties(struct wined3d_device
*device
,
2229 UINT x_hotspot
, UINT y_hotspot
, struct wined3d_texture
*texture
, unsigned int sub_resource_idx
);
2230 void __cdecl
wined3d_device_set_depth_stencil_view(struct wined3d_device
*device
,
2231 struct wined3d_rendertarget_view
*view
);
2232 HRESULT __cdecl
wined3d_device_set_dialog_box_mode(struct wined3d_device
*device
, BOOL enable_dialogs
);
2233 void __cdecl
wined3d_device_set_gamma_ramp(const struct wined3d_device
*device
,
2234 UINT swapchain_idx
, DWORD flags
, const struct wined3d_gamma_ramp
*ramp
);
2235 void __cdecl
wined3d_device_set_geometry_shader(struct wined3d_device
*device
, struct wined3d_shader
*shader
);
2236 void __cdecl
wined3d_device_set_gs_cb(struct wined3d_device
*device
, UINT idx
, struct wined3d_buffer
*buffer
);
2237 void __cdecl
wined3d_device_set_gs_resource_view(struct wined3d_device
*device
,
2238 UINT idx
, struct wined3d_shader_resource_view
*view
);
2239 void __cdecl
wined3d_device_set_gs_sampler(struct wined3d_device
*device
, UINT idx
, struct wined3d_sampler
*sampler
);
2240 void __cdecl
wined3d_device_set_index_buffer(struct wined3d_device
*device
,
2241 struct wined3d_buffer
*index_buffer
, enum wined3d_format_id format_id
, unsigned int offset
);
2242 HRESULT __cdecl
wined3d_device_set_light(struct wined3d_device
*device
,
2243 UINT light_idx
, const struct wined3d_light
*light
);
2244 HRESULT __cdecl
wined3d_device_set_light_enable(struct wined3d_device
*device
, UINT light_idx
, BOOL enable
);
2245 void __cdecl
wined3d_device_set_material(struct wined3d_device
*device
, const struct wined3d_material
*material
);
2246 void __cdecl
wined3d_device_set_multithreaded(struct wined3d_device
*device
);
2247 HRESULT __cdecl
wined3d_device_set_npatch_mode(struct wined3d_device
*device
, float segments
);
2248 void __cdecl
wined3d_device_set_pixel_shader(struct wined3d_device
*device
, struct wined3d_shader
*shader
);
2249 void __cdecl
wined3d_device_set_predication(struct wined3d_device
*device
,
2250 struct wined3d_query
*predicate
, BOOL value
);
2251 void __cdecl
wined3d_device_set_primitive_type(struct wined3d_device
*device
,
2252 enum wined3d_primitive_type primitive_topology
);
2253 void __cdecl
wined3d_device_set_ps_cb(struct wined3d_device
*device
, UINT idx
, struct wined3d_buffer
*buffer
);
2254 HRESULT __cdecl
wined3d_device_set_ps_consts_b(struct wined3d_device
*device
,
2255 unsigned int start_idx
, unsigned int count
, const BOOL
*constants
);
2256 HRESULT __cdecl
wined3d_device_set_ps_consts_f(struct wined3d_device
*device
,
2257 unsigned int start_idx
, unsigned int count
, const struct wined3d_vec4
*constants
);
2258 HRESULT __cdecl
wined3d_device_set_ps_consts_i(struct wined3d_device
*device
,
2259 unsigned int start_idx
, unsigned int count
, const struct wined3d_ivec4
*constants
);
2260 void __cdecl
wined3d_device_set_ps_resource_view(struct wined3d_device
*device
,
2261 UINT idx
, struct wined3d_shader_resource_view
*view
);
2262 void __cdecl
wined3d_device_set_ps_sampler(struct wined3d_device
*device
, UINT idx
, struct wined3d_sampler
*sampler
);
2263 void __cdecl
wined3d_device_set_render_state(struct wined3d_device
*device
,
2264 enum wined3d_render_state state
, DWORD value
);
2265 HRESULT __cdecl
wined3d_device_set_rendertarget_view(struct wined3d_device
*device
,
2266 unsigned int view_idx
, struct wined3d_rendertarget_view
*view
, BOOL set_viewport
);
2267 void __cdecl
wined3d_device_set_sampler_state(struct wined3d_device
*device
,
2268 UINT sampler_idx
, enum wined3d_sampler_state state
, DWORD value
);
2269 void __cdecl
wined3d_device_set_scissor_rect(struct wined3d_device
*device
, const RECT
*rect
);
2270 void __cdecl
wined3d_device_set_software_vertex_processing(struct wined3d_device
*device
, BOOL software
);
2271 void __cdecl
wined3d_device_set_stream_output(struct wined3d_device
*device
, UINT idx
,
2272 struct wined3d_buffer
*buffer
, UINT offset
);
2273 HRESULT __cdecl
wined3d_device_set_stream_source(struct wined3d_device
*device
,
2274 UINT stream_idx
, struct wined3d_buffer
*buffer
, UINT offset
, UINT stride
);
2275 HRESULT __cdecl
wined3d_device_set_stream_source_freq(struct wined3d_device
*device
, UINT stream_idx
, UINT divider
);
2276 HRESULT __cdecl
wined3d_device_set_texture(struct wined3d_device
*device
, UINT stage
, struct wined3d_texture
*texture
);
2277 void __cdecl
wined3d_device_set_texture_stage_state(struct wined3d_device
*device
,
2278 UINT stage
, enum wined3d_texture_stage_state state
, DWORD value
);
2279 void __cdecl
wined3d_device_set_transform(struct wined3d_device
*device
,
2280 enum wined3d_transform_state state
, const struct wined3d_matrix
*matrix
);
2281 void __cdecl
wined3d_device_set_vertex_declaration(struct wined3d_device
*device
,
2282 struct wined3d_vertex_declaration
*declaration
);
2283 void __cdecl
wined3d_device_set_vertex_shader(struct wined3d_device
*device
, struct wined3d_shader
*shader
);
2284 void __cdecl
wined3d_device_set_viewport(struct wined3d_device
*device
, const struct wined3d_viewport
*viewport
);
2285 void __cdecl
wined3d_device_set_vs_cb(struct wined3d_device
*device
, UINT idx
, struct wined3d_buffer
*buffer
);
2286 HRESULT __cdecl
wined3d_device_set_vs_consts_b(struct wined3d_device
*device
,
2287 unsigned int start_idx
, unsigned int count
, const BOOL
*constants
);
2288 HRESULT __cdecl
wined3d_device_set_vs_consts_f(struct wined3d_device
*device
,
2289 unsigned int start_idx
, unsigned int count
, const struct wined3d_vec4
*constants
);
2290 HRESULT __cdecl
wined3d_device_set_vs_consts_i(struct wined3d_device
*device
,
2291 unsigned int start_idx
, unsigned int count
, const struct wined3d_ivec4
*constants
);
2292 void __cdecl
wined3d_device_set_vs_resource_view(struct wined3d_device
*device
,
2293 UINT idx
, struct wined3d_shader_resource_view
*view
);
2294 void __cdecl
wined3d_device_set_vs_sampler(struct wined3d_device
*device
, UINT idx
, struct wined3d_sampler
*sampler
);
2295 void __cdecl
wined3d_device_setup_fullscreen_window(struct wined3d_device
*device
, HWND window
, UINT w
, UINT h
);
2296 BOOL __cdecl
wined3d_device_show_cursor(struct wined3d_device
*device
, BOOL show
);
2297 HRESULT __cdecl
wined3d_device_uninit_3d(struct wined3d_device
*device
);
2298 HRESULT __cdecl
wined3d_device_uninit_gdi(struct wined3d_device
*device
);
2299 void __cdecl
wined3d_device_update_sub_resource(struct wined3d_device
*device
, struct wined3d_resource
*resource
,
2300 unsigned int sub_resource_idx
, const struct wined3d_box
*box
, const void *data
, unsigned int row_pitch
,
2301 unsigned int depth_pitch
);
2302 HRESULT __cdecl
wined3d_device_update_texture(struct wined3d_device
*device
,
2303 struct wined3d_texture
*src_texture
, struct wined3d_texture
*dst_texture
);
2304 HRESULT __cdecl
wined3d_device_validate_device(const struct wined3d_device
*device
, DWORD
*num_passes
);
2306 HRESULT __cdecl
wined3d_palette_create(struct wined3d_device
*device
, DWORD flags
,
2307 unsigned int entry_count
, const PALETTEENTRY
*entries
, struct wined3d_palette
**palette
);
2308 ULONG __cdecl
wined3d_palette_decref(struct wined3d_palette
*palette
);
2309 HRESULT __cdecl
wined3d_palette_get_entries(const struct wined3d_palette
*palette
,
2310 DWORD flags
, DWORD start
, DWORD count
, PALETTEENTRY
*entries
);
2311 void __cdecl
wined3d_palette_apply_to_dc(const struct wined3d_palette
*palette
, HDC dc
);
2312 ULONG __cdecl
wined3d_palette_incref(struct wined3d_palette
*palette
);
2313 HRESULT __cdecl
wined3d_palette_set_entries(struct wined3d_palette
*palette
,
2314 DWORD flags
, DWORD start
, DWORD count
, const PALETTEENTRY
*entries
);
2316 HRESULT __cdecl
wined3d_query_create(struct wined3d_device
*device
,
2317 enum wined3d_query_type type
, void *parent
, struct wined3d_query
**query
);
2318 ULONG __cdecl
wined3d_query_decref(struct wined3d_query
*query
);
2319 HRESULT __cdecl
wined3d_query_get_data(struct wined3d_query
*query
, void *data
, UINT data_size
, DWORD flags
);
2320 UINT __cdecl
wined3d_query_get_data_size(const struct wined3d_query
*query
);
2321 void * __cdecl
wined3d_query_get_parent(const struct wined3d_query
*query
);
2322 enum wined3d_query_type __cdecl
wined3d_query_get_type(const struct wined3d_query
*query
);
2323 ULONG __cdecl
wined3d_query_incref(struct wined3d_query
*query
);
2324 HRESULT __cdecl
wined3d_query_issue(struct wined3d_query
*query
, DWORD flags
);
2326 static inline void wined3d_private_store_init(struct wined3d_private_store
*store
)
2328 list_init(&store
->content
);
2331 static inline struct wined3d_private_data
*wined3d_private_store_get_private_data(
2332 const struct wined3d_private_store
*store
, const GUID
*tag
)
2334 struct wined3d_private_data
*data
;
2337 LIST_FOR_EACH(entry
, &store
->content
)
2339 data
= LIST_ENTRY(entry
, struct wined3d_private_data
, entry
);
2340 if (IsEqualGUID(&data
->tag
, tag
))
2346 static inline void wined3d_private_store_free_private_data(struct wined3d_private_store
*store
,
2347 struct wined3d_private_data
*entry
)
2349 if (entry
->flags
& WINED3DSPD_IUNKNOWN
)
2350 IUnknown_Release(entry
->content
.object
);
2351 list_remove(&entry
->entry
);
2352 HeapFree(GetProcessHeap(), 0, entry
);
2355 static inline void wined3d_private_store_cleanup(struct wined3d_private_store
*store
)
2357 struct wined3d_private_data
*data
;
2358 struct list
*e1
, *e2
;
2360 LIST_FOR_EACH_SAFE(e1
, e2
, &store
->content
)
2362 data
= LIST_ENTRY(e1
, struct wined3d_private_data
, entry
);
2363 wined3d_private_store_free_private_data(store
, data
);
2367 static inline HRESULT
wined3d_private_store_set_private_data(struct wined3d_private_store
*store
,
2368 const GUID
*guid
, const void *data
, DWORD data_size
, DWORD flags
)
2370 struct wined3d_private_data
*d
, *old
;
2371 const void *ptr
= data
;
2373 if (flags
& WINED3DSPD_IUNKNOWN
)
2375 if (data_size
!= sizeof(IUnknown
*))
2376 return WINED3DERR_INVALIDCALL
;
2380 if (!(d
= HeapAlloc(GetProcessHeap(), 0,
2381 FIELD_OFFSET(struct wined3d_private_data
, content
.data
[data_size
]))))
2382 return E_OUTOFMEMORY
;
2386 d
->size
= data_size
;
2388 memcpy(d
->content
.data
, ptr
, data_size
);
2389 if (flags
& WINED3DSPD_IUNKNOWN
)
2390 IUnknown_AddRef(d
->content
.object
);
2392 old
= wined3d_private_store_get_private_data(store
, guid
);
2394 wined3d_private_store_free_private_data(store
, old
);
2395 list_add_tail(&store
->content
, &d
->entry
);
2400 void __cdecl
wined3d_resource_get_desc(const struct wined3d_resource
*resource
,
2401 struct wined3d_resource_desc
*desc
);
2402 void * __cdecl
wined3d_resource_get_parent(const struct wined3d_resource
*resource
);
2403 DWORD __cdecl
wined3d_resource_get_priority(const struct wined3d_resource
*resource
);
2404 HRESULT __cdecl
wined3d_resource_map(struct wined3d_resource
*resource
, unsigned int sub_resource_idx
,
2405 struct wined3d_map_desc
*map_desc
, const struct wined3d_box
*box
, DWORD flags
);
2406 void __cdecl
wined3d_resource_set_parent(struct wined3d_resource
*resource
, void *parent
);
2407 DWORD __cdecl
wined3d_resource_set_priority(struct wined3d_resource
*resource
, DWORD priority
);
2408 HRESULT __cdecl
wined3d_resource_unmap(struct wined3d_resource
*resource
, unsigned int sub_resource_idx
);
2410 HRESULT __cdecl
wined3d_rendertarget_view_create(const struct wined3d_rendertarget_view_desc
*desc
,
2411 struct wined3d_resource
*resource
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2412 struct wined3d_rendertarget_view
**view
);
2413 HRESULT __cdecl
wined3d_rendertarget_view_create_from_sub_resource(struct wined3d_texture
*texture
,
2414 unsigned int sub_resource_idx
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2415 struct wined3d_rendertarget_view
**view
);
2416 ULONG __cdecl
wined3d_rendertarget_view_decref(struct wined3d_rendertarget_view
*view
);
2417 void * __cdecl
wined3d_rendertarget_view_get_parent(const struct wined3d_rendertarget_view
*view
);
2418 struct wined3d_resource
* __cdecl
wined3d_rendertarget_view_get_resource(const struct wined3d_rendertarget_view
*view
);
2419 void * __cdecl
wined3d_rendertarget_view_get_sub_resource_parent(const struct wined3d_rendertarget_view
*view
);
2420 ULONG __cdecl
wined3d_rendertarget_view_incref(struct wined3d_rendertarget_view
*view
);
2421 void __cdecl
wined3d_rendertarget_view_set_parent(struct wined3d_rendertarget_view
*view
, void *parent
);
2423 HRESULT __cdecl
wined3d_sampler_create(struct wined3d_device
*device
, const struct wined3d_sampler_desc
*desc
,
2424 void *parent
, struct wined3d_sampler
**sampler
);
2425 ULONG __cdecl
wined3d_sampler_decref(struct wined3d_sampler
*sampler
);
2426 void * __cdecl
wined3d_sampler_get_parent(const struct wined3d_sampler
*sampler
);
2427 ULONG __cdecl
wined3d_sampler_incref(struct wined3d_sampler
*sampler
);
2429 HRESULT __cdecl
wined3d_shader_create_ds(struct wined3d_device
*device
, const struct wined3d_shader_desc
*desc
,
2430 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_shader
**shader
);
2431 HRESULT __cdecl
wined3d_shader_create_gs(struct wined3d_device
*device
, const struct wined3d_shader_desc
*desc
,
2432 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_shader
**shader
);
2433 HRESULT __cdecl
wined3d_shader_create_hs(struct wined3d_device
*device
, const struct wined3d_shader_desc
*desc
,
2434 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_shader
**shader
);
2435 HRESULT __cdecl
wined3d_shader_create_ps(struct wined3d_device
*device
, const struct wined3d_shader_desc
*desc
,
2436 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_shader
**shader
);
2437 HRESULT __cdecl
wined3d_shader_create_vs(struct wined3d_device
*device
, const struct wined3d_shader_desc
*desc
,
2438 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_shader
**shader
);
2439 ULONG __cdecl
wined3d_shader_decref(struct wined3d_shader
*shader
);
2440 HRESULT __cdecl
wined3d_shader_get_byte_code(const struct wined3d_shader
*shader
,
2441 void *byte_code
, UINT
*byte_code_size
);
2442 void * __cdecl
wined3d_shader_get_parent(const struct wined3d_shader
*shader
);
2443 ULONG __cdecl
wined3d_shader_incref(struct wined3d_shader
*shader
);
2444 HRESULT __cdecl
wined3d_shader_set_local_constants_float(struct wined3d_shader
*shader
,
2445 UINT start_idx
, const float *src_data
, UINT vector4f_count
);
2447 HRESULT __cdecl
wined3d_shader_resource_view_create(const struct wined3d_shader_resource_view_desc
*desc
,
2448 struct wined3d_resource
*resource
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2449 struct wined3d_shader_resource_view
**view
);
2450 ULONG __cdecl
wined3d_shader_resource_view_decref(struct wined3d_shader_resource_view
*view
);
2451 void * __cdecl
wined3d_shader_resource_view_get_parent(const struct wined3d_shader_resource_view
*view
);
2452 ULONG __cdecl
wined3d_shader_resource_view_incref(struct wined3d_shader_resource_view
*view
);
2454 void __cdecl
wined3d_stateblock_apply(const struct wined3d_stateblock
*stateblock
);
2455 void __cdecl
wined3d_stateblock_capture(struct wined3d_stateblock
*stateblock
);
2456 HRESULT __cdecl
wined3d_stateblock_create(struct wined3d_device
*device
,
2457 enum wined3d_stateblock_type type
, struct wined3d_stateblock
**stateblock
);
2458 ULONG __cdecl
wined3d_stateblock_decref(struct wined3d_stateblock
*stateblock
);
2459 ULONG __cdecl
wined3d_stateblock_incref(struct wined3d_stateblock
*stateblock
);
2461 HRESULT __cdecl
wined3d_swapchain_create(struct wined3d_device
*device
, struct wined3d_swapchain_desc
*desc
,
2462 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_swapchain
**swapchain
);
2463 ULONG __cdecl
wined3d_swapchain_decref(struct wined3d_swapchain
*swapchain
);
2464 struct wined3d_texture
* __cdecl
wined3d_swapchain_get_back_buffer(const struct wined3d_swapchain
*swapchain
,
2465 UINT backbuffer_idx
);
2466 struct wined3d_device
* __cdecl
wined3d_swapchain_get_device(const struct wined3d_swapchain
*swapchain
);
2467 HRESULT __cdecl
wined3d_swapchain_get_display_mode(const struct wined3d_swapchain
*swapchain
,
2468 struct wined3d_display_mode
*mode
, enum wined3d_display_rotation
*rotation
);
2469 HRESULT __cdecl
wined3d_swapchain_get_front_buffer_data(const struct wined3d_swapchain
*swapchain
,
2470 struct wined3d_texture
*dst_texture
, unsigned int sub_resource_idx
);
2471 HRESULT __cdecl
wined3d_swapchain_get_gamma_ramp(const struct wined3d_swapchain
*swapchain
,
2472 struct wined3d_gamma_ramp
*ramp
);
2473 void * __cdecl
wined3d_swapchain_get_parent(const struct wined3d_swapchain
*swapchain
);
2474 void __cdecl
wined3d_swapchain_get_desc(const struct wined3d_swapchain
*swapchain
,
2475 struct wined3d_swapchain_desc
*desc
);
2476 HRESULT __cdecl
wined3d_swapchain_get_raster_status(const struct wined3d_swapchain
*swapchain
,
2477 struct wined3d_raster_status
*raster_status
);
2478 ULONG __cdecl
wined3d_swapchain_incref(struct wined3d_swapchain
*swapchain
);
2479 HRESULT __cdecl
wined3d_swapchain_present(struct wined3d_swapchain
*swapchain
,
2480 const RECT
*src_rect
, const RECT
*dst_rect
, HWND dst_window_override
, DWORD flags
);
2481 HRESULT __cdecl
wined3d_swapchain_resize_buffers(struct wined3d_swapchain
*swapchain
, unsigned int buffer_count
,
2482 unsigned int width
, unsigned int height
, enum wined3d_format_id format_id
,
2483 enum wined3d_multisample_type multisample_type
, unsigned int multisample_quality
);
2484 HRESULT __cdecl
wined3d_swapchain_set_gamma_ramp(const struct wined3d_swapchain
*swapchain
,
2485 DWORD flags
, const struct wined3d_gamma_ramp
*ramp
);
2486 void __cdecl
wined3d_swapchain_set_palette(struct wined3d_swapchain
*swapchain
, struct wined3d_palette
*palette
);
2487 void __cdecl
wined3d_swapchain_set_window(struct wined3d_swapchain
*swapchain
, HWND window
);
2489 HRESULT __cdecl
wined3d_texture_add_dirty_region(struct wined3d_texture
*texture
,
2490 UINT layer
, const struct wined3d_box
*dirty_region
);
2491 HRESULT __cdecl
wined3d_texture_blt(struct wined3d_texture
*dst_texture
, unsigned int dst_idx
, const RECT
*dst_rect_in
,
2492 struct wined3d_texture
*src_texture
, unsigned int src_idx
, const RECT
*src_rect_in
, DWORD flags
,
2493 const struct wined3d_blt_fx
*fx
, enum wined3d_texture_filter_type filter
);
2494 HRESULT __cdecl
wined3d_texture_create(struct wined3d_device
*device
, const struct wined3d_resource_desc
*desc
,
2495 UINT layer_count
, UINT level_count
, DWORD flags
, const struct wined3d_sub_resource_data
*data
,
2496 void *parent
, const struct wined3d_parent_ops
*parent_ops
, struct wined3d_texture
**texture
);
2497 struct wined3d_texture
* __cdecl
wined3d_texture_from_resource(struct wined3d_resource
*resource
);
2498 ULONG __cdecl
wined3d_texture_decref(struct wined3d_texture
*texture
);
2499 void __cdecl
wined3d_texture_generate_mipmaps(struct wined3d_texture
*texture
);
2500 enum wined3d_texture_filter_type __cdecl
wined3d_texture_get_autogen_filter_type(const struct wined3d_texture
*texture
);
2501 HRESULT __cdecl
wined3d_texture_get_dc(struct wined3d_texture
*texture
, unsigned int sub_resource_idx
, HDC
*dc
);
2502 DWORD __cdecl
wined3d_texture_get_level_count(const struct wined3d_texture
*texture
);
2503 DWORD __cdecl
wined3d_texture_get_lod(const struct wined3d_texture
*texture
);
2504 HRESULT __cdecl
wined3d_texture_get_overlay_position(const struct wined3d_texture
*texture
,
2505 unsigned int sub_resource_idx
, LONG
*x
, LONG
*y
);
2506 void * __cdecl
wined3d_texture_get_parent(const struct wined3d_texture
*texture
);
2507 void __cdecl
wined3d_texture_get_pitch(const struct wined3d_texture
*texture
,
2508 unsigned int level
, unsigned int *row_pitch
, unsigned int *slice_pitch
);
2509 struct wined3d_resource
* __cdecl
wined3d_texture_get_resource(struct wined3d_texture
*texture
);
2510 HRESULT __cdecl
wined3d_texture_get_sub_resource_desc(const struct wined3d_texture
*texture
,
2511 unsigned int sub_resource_idx
, struct wined3d_sub_resource_desc
*desc
);
2512 void * __cdecl
wined3d_texture_get_sub_resource_parent(struct wined3d_texture
*texture
, unsigned int sub_resource_idx
);
2513 ULONG __cdecl
wined3d_texture_incref(struct wined3d_texture
*texture
);
2514 void __cdecl
wined3d_texture_preload(struct wined3d_texture
*texture
);
2515 HRESULT __cdecl
wined3d_texture_release_dc(struct wined3d_texture
*texture
, unsigned int sub_resource_idx
, HDC dc
);
2516 HRESULT __cdecl
wined3d_texture_set_autogen_filter_type(struct wined3d_texture
*texture
,
2517 enum wined3d_texture_filter_type filter_type
);
2518 HRESULT __cdecl
wined3d_texture_set_color_key(struct wined3d_texture
*texture
,
2519 DWORD flags
, const struct wined3d_color_key
*color_key
);
2520 DWORD __cdecl
wined3d_texture_set_lod(struct wined3d_texture
*texture
, DWORD lod
);
2521 HRESULT __cdecl
wined3d_texture_set_overlay_position(struct wined3d_texture
*texture
,
2522 unsigned int sub_resource_idx
, LONG x
, LONG y
);
2523 void __cdecl
wined3d_texture_set_sub_resource_parent(struct wined3d_texture
*texture
,
2524 unsigned int sub_resource_idx
, void *parent
);
2525 HRESULT __cdecl
wined3d_texture_update_desc(struct wined3d_texture
*texture
,
2526 UINT width
, UINT height
, enum wined3d_format_id format_id
,
2527 enum wined3d_multisample_type multisample_type
, UINT multisample_quality
,
2528 void *mem
, UINT pitch
);
2529 HRESULT __cdecl
wined3d_texture_update_overlay(struct wined3d_texture
*texture
, unsigned int sub_resource_idx
,
2530 const RECT
*src_rect
, struct wined3d_texture
*dst_texture
, unsigned int dst_sub_resource_idx
,
2531 const RECT
*dst_rect
, DWORD flags
);
2533 HRESULT __cdecl
wined3d_vertex_declaration_create(struct wined3d_device
*device
,
2534 const struct wined3d_vertex_element
*elements
, UINT element_count
, void *parent
,
2535 const struct wined3d_parent_ops
*parent_ops
, struct wined3d_vertex_declaration
**declaration
);
2536 HRESULT __cdecl
wined3d_vertex_declaration_create_from_fvf(struct wined3d_device
*device
,
2537 DWORD fvf
, void *parent
, const struct wined3d_parent_ops
*parent_ops
,
2538 struct wined3d_vertex_declaration
**declaration
);
2539 ULONG __cdecl
wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration
*declaration
);
2540 void * __cdecl
wined3d_vertex_declaration_get_parent(const struct wined3d_vertex_declaration
*declaration
);
2541 ULONG __cdecl
wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration
*declaration
);
2543 /* Return the integer base-2 logarithm of x. Undefined for x == 0. */
2544 static inline unsigned int wined3d_log2i(unsigned int x
)
2546 #ifdef HAVE___BUILTIN_CLZ
2547 return __builtin_clz(x
) ^ 0x1f;
2549 static const unsigned int l
[] =
2551 ~0u, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
2552 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
2553 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2554 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2555 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2556 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2557 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2558 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
2559 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2560 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2561 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2562 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2563 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2564 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2565 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2566 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2570 return (i
= x
>> 16) ? (x
= i
>> 8) ? l
[x
] + 24 : l
[i
] + 16 : (i
= x
>> 8) ? l
[i
] + 8 : l
[x
];
2574 #endif /* __WINE_WINED3D_H */