wined3d: Get rid of IWineD3DTexture.
[wine] / include / wine / wined3d.idl
1 /*
2  * Copyright 2002-2003 The wine-d3d team
3  * Copyright 2002-2003 Jason Edmeades
4  * Copyright 2002-2003 Raphael Junqueira
5  * Copyright 2005 Oliver Stieber
6  * Copyright 2006 Stefan Dösinger
7  * Copyright 2006 Stefan Dösinger for CodeWeavers
8  * Copyright 2007 Henri Verbeet
9  * Copyright 2008 Henri Verbeet for CodeWeavers
10  *
11  * This library is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU Lesser General Public
13  * License as published by the Free Software Foundation; either
14  * version 2.1 of the License, or (at your option) any later version.
15  *
16  * This library is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
19  * Lesser General Public License for more details.
20  *
21  * You should have received a copy of the GNU Lesser General Public
22  * License along with this library; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24  */
25
26 import "unknwn.idl";
27
28 cpp_quote("#if 0")
29 typedef HANDLE HMONITOR;
30
31 typedef struct _RGNDATAHEADER
32 {
33     DWORD dwSize;
34     DWORD iType;
35     DWORD nCount;
36     DWORD nRgnSize;
37     RECT rcBound;
38 } RGNDATAHEADER;
39
40 typedef struct _RGNDATA
41 {
42     RGNDATAHEADER rdh;
43     char Buffer[1];
44 } RGNDATA;
45
46 typedef struct _LUID
47 {
48     DWORD LowPart;
49     LONG HighPart;
50 } LUID, *PLUID;
51 cpp_quote("#endif")
52
53 cpp_quote("#define WINED3D_OK                                  S_OK")
54
55 const UINT _FACWINED3D = 0x876;
56 cpp_quote("#define MAKE_WINED3DSTATUS(code)                    MAKE_HRESULT(0, _FACWINED3D, code)")
57 cpp_quote("#define WINED3DOK_NOAUTOGEN                         MAKE_WINED3DSTATUS(2159)")
58
59 cpp_quote("#define MAKE_WINED3DHRESULT(code)                   MAKE_HRESULT(1, _FACWINED3D, code)")
60 cpp_quote("#define WINED3DERR_WRONGTEXTUREFORMAT               MAKE_WINED3DHRESULT(2072)")
61 cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLOROPERATION        MAKE_WINED3DHRESULT(2073)")
62 cpp_quote("#define WINED3DERR_UNSUPPORTEDCOLORARG              MAKE_WINED3DHRESULT(2074)")
63 cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAOPERATION        MAKE_WINED3DHRESULT(2075)")
64 cpp_quote("#define WINED3DERR_UNSUPPORTEDALPHAARG              MAKE_WINED3DHRESULT(2076)")
65 cpp_quote("#define WINED3DERR_TOOMANYOPERATIONS                MAKE_WINED3DHRESULT(2077)")
66 cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREFILTER         MAKE_WINED3DHRESULT(2078)")
67 cpp_quote("#define WINED3DERR_UNSUPPORTEDFACTORVALUE           MAKE_WINED3DHRESULT(2079)")
68 cpp_quote("#define WINED3DERR_CONFLICTINGRENDERSTATE           MAKE_WINED3DHRESULT(2081)")
69 cpp_quote("#define WINED3DERR_UNSUPPORTEDTEXTUREFILTER         MAKE_WINED3DHRESULT(2082)")
70 cpp_quote("#define WINED3DERR_CONFLICTINGTEXTUREPALETTE        MAKE_WINED3DHRESULT(2086)")
71 cpp_quote("#define WINED3DERR_DRIVERINTERNALERROR              MAKE_WINED3DHRESULT(2087)")
72 cpp_quote("#define WINED3DERR_NOTFOUND                         MAKE_WINED3DHRESULT(2150)")
73 cpp_quote("#define WINED3DERR_MOREDATA                         MAKE_WINED3DHRESULT(2151)")
74 cpp_quote("#define WINED3DERR_DEVICELOST                       MAKE_WINED3DHRESULT(2152)")
75 cpp_quote("#define WINED3DERR_DEVICENOTRESET                   MAKE_WINED3DHRESULT(2153)")
76 cpp_quote("#define WINED3DERR_NOTAVAILABLE                     MAKE_WINED3DHRESULT(2154)")
77 cpp_quote("#define WINED3DERR_OUTOFVIDEOMEMORY                 MAKE_WINED3DHRESULT(380)")
78 cpp_quote("#define WINED3DERR_INVALIDDEVICE                    MAKE_WINED3DHRESULT(2155)")
79 cpp_quote("#define WINED3DERR_INVALIDCALL                      MAKE_WINED3DHRESULT(2156)")
80 cpp_quote("#define WINED3DERR_DRIVERINVALIDCALL                MAKE_WINED3DHRESULT(2157)")
81 cpp_quote("#define WINED3DERR_WASSTILLDRAWING                  MAKE_WINED3DHRESULT(540)")
82 cpp_quote("#define WINEDDERR_NOTAOVERLAYSURFACE                MAKE_WINED3DHRESULT(580)")
83 cpp_quote("#define WINEDDERR_NOTLOCKED                         MAKE_WINED3DHRESULT(584)")
84 cpp_quote("#define WINEDDERR_NODC                              MAKE_WINED3DHRESULT(586)")
85 cpp_quote("#define WINEDDERR_DCALREADYCREATED                  MAKE_WINED3DHRESULT(620)")
86 cpp_quote("#define WINEDDERR_NOTFLIPPABLE                      MAKE_WINED3DHRESULT(582)")
87 cpp_quote("#define WINEDDERR_SURFACEBUSY                       MAKE_WINED3DHRESULT(430)")
88 cpp_quote("#define WINEDDERR_INVALIDRECT                       MAKE_WINED3DHRESULT(150)")
89 cpp_quote("#define WINEDDERR_NOCLIPLIST                        MAKE_WINED3DHRESULT(205)")
90 cpp_quote("#define WINEDDERR_OVERLAYNOTVISIBLE                 MAKE_WINED3DHRESULT(577)")
91
92 typedef DWORD WINED3DCOLOR;
93
94 typedef enum _WINED3DLIGHTTYPE
95 {
96     WINED3DLIGHT_POINT                      = 1,
97     WINED3DLIGHT_SPOT                       = 2,
98     WINED3DLIGHT_DIRECTIONAL                = 3,
99     WINED3DLIGHT_PARALLELPOINT              = 4, /* D3D7 */
100     WINED3DLIGHT_GLSPOT                     = 5, /* D3D7 */
101     WINED3DLIGHT_FORCE_DWORD                = 0x7fffffff
102 } WINED3DLIGHTTYPE;
103
104 typedef enum _WINED3DPRIMITIVETYPE
105 {
106     WINED3DPT_UNDEFINED                     = 0,
107     WINED3DPT_POINTLIST                     = 1,
108     WINED3DPT_LINELIST                      = 2,
109     WINED3DPT_LINESTRIP                     = 3,
110     WINED3DPT_TRIANGLELIST                  = 4,
111     WINED3DPT_TRIANGLESTRIP                 = 5,
112     WINED3DPT_TRIANGLEFAN                   = 6,
113     WINED3DPT_LINELIST_ADJ                  = 10,
114     WINED3DPT_LINESTRIP_ADJ                 = 11,
115     WINED3DPT_TRIANGLELIST_ADJ              = 12,
116     WINED3DPT_TRIANGLESTRIP_ADJ             = 13,
117     WINED3DPT_FORCE_DWORD                   = 0x7fffffff
118 } WINED3DPRIMITIVETYPE;
119
120 typedef enum _WINED3DDEVTYPE
121 {
122     WINED3DDEVTYPE_HAL                      = 1,
123     WINED3DDEVTYPE_REF                      = 2,
124     WINED3DDEVTYPE_SW                       = 3,
125     WINED3DDEVTYPE_NULLREF                  = 4,
126     WINED3DDEVTYPE_FORCE_DWORD              = 0xffffffff
127 } WINED3DDEVTYPE;
128
129 typedef enum _WINED3DDEGREETYPE
130 {
131     WINED3DDEGREE_LINEAR                    = 1,
132     WINED3DDEGREE_QUADRATIC                 = 2,
133     WINED3DDEGREE_CUBIC                     = 3,
134     WINED3DDEGREE_QUINTIC                   = 5,
135     WINED3DDEGREE_FORCE_DWORD               = 0x7fffffff
136 } WINED3DDEGREETYPE;
137
138 #define WINEMAKEFOURCC(ch0, ch1, ch2, ch3) \
139         ((unsigned long)(unsigned char)(ch0) | ((unsigned long)(unsigned char)(ch1) << 8) | \
140         ((unsigned long)(unsigned char)(ch2) << 16) | ((unsigned long)(unsigned char)(ch3) << 24))
141
142 enum wined3d_format_id
143 {
144     WINED3DFMT_UNKNOWN,
145     WINED3DFMT_B8G8R8_UNORM,
146     WINED3DFMT_B5G5R5X1_UNORM,
147     WINED3DFMT_B4G4R4A4_UNORM,
148     WINED3DFMT_B2G3R3_UNORM,
149     WINED3DFMT_B2G3R3A8_UNORM,
150     WINED3DFMT_B4G4R4X4_UNORM,
151     WINED3DFMT_R8G8B8X8_UNORM,
152     WINED3DFMT_B10G10R10A2_UNORM,
153     WINED3DFMT_P8_UINT_A8_UNORM,
154     WINED3DFMT_P8_UINT,
155     WINED3DFMT_L8_UNORM,
156     WINED3DFMT_L8A8_UNORM,
157     WINED3DFMT_L4A4_UNORM,
158     WINED3DFMT_R5G5_SNORM_L6_UNORM,
159     WINED3DFMT_R8G8_SNORM_L8X8_UNORM,
160     WINED3DFMT_R10G11B11_SNORM,
161     WINED3DFMT_R10G10B10_SNORM_A2_UNORM,
162     WINED3DFMT_D16_LOCKABLE,
163     WINED3DFMT_D32_UNORM,
164     WINED3DFMT_S1_UINT_D15_UNORM,
165     WINED3DFMT_X8D24_UNORM,
166     WINED3DFMT_S4X4_UINT_D24_UNORM,
167     WINED3DFMT_L16_UNORM,
168     WINED3DFMT_S8_UINT_D24_FLOAT,
169     WINED3DFMT_VERTEXDATA,
170     WINED3DFMT_R8G8_SNORM_Cx,
171     WINED3DFMT_R32G32B32A32_TYPELESS,
172     WINED3DFMT_R32G32B32A32_FLOAT,
173     WINED3DFMT_R32G32B32A32_UINT,
174     WINED3DFMT_R32G32B32A32_SINT,
175     WINED3DFMT_R32G32B32_TYPELESS,
176     WINED3DFMT_R32G32B32_FLOAT,
177     WINED3DFMT_R32G32B32_UINT,
178     WINED3DFMT_R32G32B32_SINT,
179     WINED3DFMT_R16G16B16A16_TYPELESS,
180     WINED3DFMT_R16G16B16A16_FLOAT,
181     WINED3DFMT_R16G16B16A16_UNORM,
182     WINED3DFMT_R16G16B16A16_UINT,
183     WINED3DFMT_R16G16B16A16_SNORM,
184     WINED3DFMT_R16G16B16A16_SINT,
185     WINED3DFMT_R32G32_TYPELESS,
186     WINED3DFMT_R32G32_FLOAT,
187     WINED3DFMT_R32G32_UINT,
188     WINED3DFMT_R32G32_SINT,
189     WINED3DFMT_R32G8X24_TYPELESS,
190     WINED3DFMT_D32_FLOAT_S8X24_UINT,
191     WINED3DFMT_R32_FLOAT_X8X24_TYPELESS,
192     WINED3DFMT_X32_TYPELESS_G8X24_UINT,
193     WINED3DFMT_R10G10B10A2_TYPELESS,
194     WINED3DFMT_R10G10B10A2_UNORM,
195     WINED3DFMT_R10G10B10A2_UINT,
196     WINED3DFMT_R10G10B10A2_SNORM,
197     WINED3DFMT_R11G11B10_FLOAT,
198     WINED3DFMT_R8G8B8A8_TYPELESS,
199     WINED3DFMT_R8G8B8A8_UNORM,
200     WINED3DFMT_R8G8B8A8_UNORM_SRGB,
201     WINED3DFMT_R8G8B8A8_UINT,
202     WINED3DFMT_R8G8B8A8_SNORM,
203     WINED3DFMT_R8G8B8A8_SINT,
204     WINED3DFMT_R16G16_TYPELESS,
205     WINED3DFMT_R16G16_FLOAT,
206     WINED3DFMT_R16G16_UNORM,
207     WINED3DFMT_R16G16_UINT,
208     WINED3DFMT_R16G16_SNORM,
209     WINED3DFMT_R16G16_SINT,
210     WINED3DFMT_R32_TYPELESS,
211     WINED3DFMT_D32_FLOAT,
212     WINED3DFMT_R32_FLOAT,
213     WINED3DFMT_R32_UINT,
214     WINED3DFMT_R32_SINT,
215     WINED3DFMT_R24G8_TYPELESS,
216     WINED3DFMT_D24_UNORM_S8_UINT,
217     WINED3DFMT_R24_UNORM_X8_TYPELESS,
218     WINED3DFMT_X24_TYPELESS_G8_UINT,
219     WINED3DFMT_R8G8_TYPELESS,
220     WINED3DFMT_R8G8_UNORM,
221     WINED3DFMT_R8G8_UINT,
222     WINED3DFMT_R8G8_SNORM,
223     WINED3DFMT_R8G8_SINT,
224     WINED3DFMT_R16_TYPELESS,
225     WINED3DFMT_R16_FLOAT,
226     WINED3DFMT_D16_UNORM,
227     WINED3DFMT_R16_UNORM,
228     WINED3DFMT_R16_UINT,
229     WINED3DFMT_R16_SNORM,
230     WINED3DFMT_R16_SINT,
231     WINED3DFMT_R8_TYPELESS,
232     WINED3DFMT_R8_UNORM,
233     WINED3DFMT_R8_UINT,
234     WINED3DFMT_R8_SNORM,
235     WINED3DFMT_R8_SINT,
236     WINED3DFMT_A8_UNORM,
237     WINED3DFMT_R1_UNORM,
238     WINED3DFMT_R9G9B9E5_SHAREDEXP,
239     WINED3DFMT_R8G8_B8G8_UNORM,
240     WINED3DFMT_G8R8_G8B8_UNORM,
241     WINED3DFMT_BC1_TYPELESS,
242     WINED3DFMT_BC1_UNORM,
243     WINED3DFMT_BC1_UNORM_SRGB,
244     WINED3DFMT_BC2_TYPELESS,
245     WINED3DFMT_BC2_UNORM,
246     WINED3DFMT_BC2_UNORM_SRGB,
247     WINED3DFMT_BC3_TYPELESS,
248     WINED3DFMT_BC3_UNORM,
249     WINED3DFMT_BC3_UNORM_SRGB,
250     WINED3DFMT_BC4_TYPELESS,
251     WINED3DFMT_BC4_UNORM,
252     WINED3DFMT_BC4_SNORM,
253     WINED3DFMT_BC5_TYPELESS,
254     WINED3DFMT_BC5_UNORM,
255     WINED3DFMT_BC5_SNORM,
256     WINED3DFMT_B5G6R5_UNORM,
257     WINED3DFMT_B5G5R5A1_UNORM,
258     WINED3DFMT_B8G8R8A8_UNORM,
259     WINED3DFMT_B8G8R8X8_UNORM,
260     /* FOURCC formats. */
261     WINED3DFMT_UYVY                         = WINEMAKEFOURCC('U','Y','V','Y'),
262     WINED3DFMT_YUY2                         = WINEMAKEFOURCC('Y','U','Y','2'),
263     WINED3DFMT_YV12                         = WINEMAKEFOURCC('Y','V','1','2'),
264     WINED3DFMT_DXT1                         = WINEMAKEFOURCC('D','X','T','1'),
265     WINED3DFMT_DXT2                         = WINEMAKEFOURCC('D','X','T','2'),
266     WINED3DFMT_DXT3                         = WINEMAKEFOURCC('D','X','T','3'),
267     WINED3DFMT_DXT4                         = WINEMAKEFOURCC('D','X','T','4'),
268     WINED3DFMT_DXT5                         = WINEMAKEFOURCC('D','X','T','5'),
269     WINED3DFMT_MULTI2_ARGB8                 = WINEMAKEFOURCC('M','E','T','1'),
270     WINED3DFMT_G8R8_G8B8                    = WINEMAKEFOURCC('G','R','G','B'),
271     WINED3DFMT_R8G8_B8G8                    = WINEMAKEFOURCC('R','G','B','G'),
272     WINED3DFMT_ATI2N                        = WINEMAKEFOURCC('A','T','I','2'),
273     WINED3DFMT_INST                         = WINEMAKEFOURCC('I','N','S','T'),
274     WINED3DFMT_NVDB                         = WINEMAKEFOURCC('N','V','D','B'),
275     WINED3DFMT_NVHU                         = WINEMAKEFOURCC('N','V','H','U'),
276     WINED3DFMT_NVHS                         = WINEMAKEFOURCC('N','V','H','S'),
277     WINED3DFMT_INTZ                         = WINEMAKEFOURCC('I','N','T','Z'),
278     WINED3DFMT_NULL                         = WINEMAKEFOURCC('N','U','L','L'),
279
280     WINED3DFMT_FORCE_DWORD = 0xffffffff
281 };
282
283 typedef enum _WINED3DRENDERSTATETYPE
284 {
285     WINED3DRS_ANTIALIAS                     = 2, /* d3d7 */
286     WINED3DRS_TEXTUREPERSPECTIVE            = 4, /* d3d7 */
287     WINED3DRS_WRAPU                         = 5, /* d3d7 */
288     WINED3DRS_WRAPV                         = 6, /* d3d7 */
289     WINED3DRS_ZENABLE                       = 7,
290     WINED3DRS_FILLMODE                      = 8,
291     WINED3DRS_SHADEMODE                     = 9,
292     WINED3DRS_LINEPATTERN                   = 10, /* d3d7, d3d8 */
293     WINED3DRS_MONOENABLE                    = 11, /* d3d7 */
294     WINED3DRS_ROP2                          = 12, /* d3d7 */
295     WINED3DRS_PLANEMASK                     = 13, /* d3d7 */
296     WINED3DRS_ZWRITEENABLE                  = 14,
297     WINED3DRS_ALPHATESTENABLE               = 15,
298     WINED3DRS_LASTPIXEL                     = 16,
299     WINED3DRS_SRCBLEND                      = 19,
300     WINED3DRS_DESTBLEND                     = 20,
301     WINED3DRS_CULLMODE                      = 22,
302     WINED3DRS_ZFUNC                         = 23,
303     WINED3DRS_ALPHAREF                      = 24,
304     WINED3DRS_ALPHAFUNC                     = 25,
305     WINED3DRS_DITHERENABLE                  = 26,
306     WINED3DRS_ALPHABLENDENABLE              = 27,
307     WINED3DRS_FOGENABLE                     = 28,
308     WINED3DRS_SPECULARENABLE                = 29,
309     WINED3DRS_ZVISIBLE                      = 30, /* d3d7, d3d8 */
310     WINED3DRS_SUBPIXEL                      = 31, /* d3d7 */
311     WINED3DRS_SUBPIXELX                     = 32, /* d3d7 */
312     WINED3DRS_STIPPLEDALPHA                 = 33, /* d3d7 */
313     WINED3DRS_FOGCOLOR                      = 34,
314     WINED3DRS_FOGTABLEMODE                  = 35,
315     WINED3DRS_FOGSTART                      = 36,
316     WINED3DRS_FOGEND                        = 37,
317     WINED3DRS_FOGDENSITY                    = 38,
318     WINED3DRS_STIPPLEENABLE                 = 39, /* d3d7 */
319     WINED3DRS_EDGEANTIALIAS                 = 40, /* d3d7, d3d8 */
320     WINED3DRS_COLORKEYENABLE                = 41, /* d3d7 */
321     WINED3DRS_MIPMAPLODBIAS                 = 46, /* d3d7 */
322     WINED3DRS_ZBIAS                         = 47, /* d3d7, d3d8 */
323     WINED3DRS_RANGEFOGENABLE                = 48,
324     WINED3DRS_ANISOTROPY                    = 49, /* d3d7 */
325     WINED3DRS_FLUSHBATCH                    = 50, /* d3d7 */
326     WINED3DRS_TRANSLUCENTSORTINDEPENDENT    = 51, /* d3d7 */
327     WINED3DRS_STENCILENABLE                 = 52,
328     WINED3DRS_STENCILFAIL                   = 53,
329     WINED3DRS_STENCILZFAIL                  = 54,
330     WINED3DRS_STENCILPASS                   = 55,
331     WINED3DRS_STENCILFUNC                   = 56,
332     WINED3DRS_STENCILREF                    = 57,
333     WINED3DRS_STENCILMASK                   = 58,
334     WINED3DRS_STENCILWRITEMASK              = 59,
335     WINED3DRS_TEXTUREFACTOR                 = 60,
336     WINED3DRS_WRAP0                         = 128,
337     WINED3DRS_WRAP1                         = 129,
338     WINED3DRS_WRAP2                         = 130,
339     WINED3DRS_WRAP3                         = 131,
340     WINED3DRS_WRAP4                         = 132,
341     WINED3DRS_WRAP5                         = 133,
342     WINED3DRS_WRAP6                         = 134,
343     WINED3DRS_WRAP7                         = 135,
344     WINED3DRS_CLIPPING                      = 136,
345     WINED3DRS_LIGHTING                      = 137,
346     WINED3DRS_EXTENTS                       = 138, /* d3d7 */
347     WINED3DRS_AMBIENT                       = 139,
348     WINED3DRS_FOGVERTEXMODE                 = 140,
349     WINED3DRS_COLORVERTEX                   = 141,
350     WINED3DRS_LOCALVIEWER                   = 142,
351     WINED3DRS_NORMALIZENORMALS              = 143,
352     WINED3DRS_COLORKEYBLENDENABLE           = 144, /* d3d7 */
353     WINED3DRS_DIFFUSEMATERIALSOURCE         = 145,
354     WINED3DRS_SPECULARMATERIALSOURCE        = 146,
355     WINED3DRS_AMBIENTMATERIALSOURCE         = 147,
356     WINED3DRS_EMISSIVEMATERIALSOURCE        = 148,
357     WINED3DRS_VERTEXBLEND                   = 151,
358     WINED3DRS_CLIPPLANEENABLE               = 152,
359     WINED3DRS_SOFTWAREVERTEXPROCESSING      = 153, /* d3d8 */
360     WINED3DRS_POINTSIZE                     = 154,
361     WINED3DRS_POINTSIZE_MIN                 = 155,
362     WINED3DRS_POINTSPRITEENABLE             = 156,
363     WINED3DRS_POINTSCALEENABLE              = 157,
364     WINED3DRS_POINTSCALE_A                  = 158,
365     WINED3DRS_POINTSCALE_B                  = 159,
366     WINED3DRS_POINTSCALE_C                  = 160,
367     WINED3DRS_MULTISAMPLEANTIALIAS          = 161,
368     WINED3DRS_MULTISAMPLEMASK               = 162,
369     WINED3DRS_PATCHEDGESTYLE                = 163,
370     WINED3DRS_PATCHSEGMENTS                 = 164, /* d3d8 */
371     WINED3DRS_DEBUGMONITORTOKEN             = 165,
372     WINED3DRS_POINTSIZE_MAX                 = 166,
373     WINED3DRS_INDEXEDVERTEXBLENDENABLE      = 167,
374     WINED3DRS_COLORWRITEENABLE              = 168,
375     WINED3DRS_TWEENFACTOR                   = 170,
376     WINED3DRS_BLENDOP                       = 171,
377     WINED3DRS_POSITIONDEGREE                = 172,
378     WINED3DRS_NORMALDEGREE                  = 173,
379     WINED3DRS_SCISSORTESTENABLE             = 174,
380     WINED3DRS_SLOPESCALEDEPTHBIAS           = 175,
381     WINED3DRS_ANTIALIASEDLINEENABLE         = 176,
382     WINED3DRS_MINTESSELLATIONLEVEL          = 178,
383     WINED3DRS_MAXTESSELLATIONLEVEL          = 179,
384     WINED3DRS_ADAPTIVETESS_X                = 180,
385     WINED3DRS_ADAPTIVETESS_Y                = 181,
386     WINED3DRS_ADAPTIVETESS_Z                = 182,
387     WINED3DRS_ADAPTIVETESS_W                = 183,
388     WINED3DRS_ENABLEADAPTIVETESSELLATION    = 184,
389     WINED3DRS_TWOSIDEDSTENCILMODE           = 185,
390     WINED3DRS_CCW_STENCILFAIL               = 186,
391     WINED3DRS_CCW_STENCILZFAIL              = 187,
392     WINED3DRS_CCW_STENCILPASS               = 188,
393     WINED3DRS_CCW_STENCILFUNC               = 189,
394     WINED3DRS_COLORWRITEENABLE1             = 190,
395     WINED3DRS_COLORWRITEENABLE2             = 191,
396     WINED3DRS_COLORWRITEENABLE3             = 192,
397     WINED3DRS_BLENDFACTOR                   = 193,
398     WINED3DRS_SRGBWRITEENABLE               = 194,
399     WINED3DRS_DEPTHBIAS                     = 195,
400     WINED3DRS_WRAP8                         = 198,
401     WINED3DRS_WRAP9                         = 199,
402     WINED3DRS_WRAP10                        = 200,
403     WINED3DRS_WRAP11                        = 201,
404     WINED3DRS_WRAP12                        = 202,
405     WINED3DRS_WRAP13                        = 203,
406     WINED3DRS_WRAP14                        = 204,
407     WINED3DRS_WRAP15                        = 205,
408     WINED3DRS_SEPARATEALPHABLENDENABLE      = 206,
409     WINED3DRS_SRCBLENDALPHA                 = 207,
410     WINED3DRS_DESTBLENDALPHA                = 208,
411     WINED3DRS_BLENDOPALPHA                  = 209,
412     WINED3DRS_FORCE_DWORD                   = 0x7fffffff
413 } WINED3DRENDERSTATETYPE;
414 const UINT WINEHIGHEST_RENDER_STATE         = WINED3DRS_BLENDOPALPHA;
415
416 typedef enum _WINED3DBLEND
417 {
418     WINED3DBLEND_ZERO                       =  1,
419     WINED3DBLEND_ONE                        =  2,
420     WINED3DBLEND_SRCCOLOR                   =  3,
421     WINED3DBLEND_INVSRCCOLOR                =  4,
422     WINED3DBLEND_SRCALPHA                   =  5,
423     WINED3DBLEND_INVSRCALPHA                =  6,
424     WINED3DBLEND_DESTALPHA                  =  7,
425     WINED3DBLEND_INVDESTALPHA               =  8,
426     WINED3DBLEND_DESTCOLOR                  =  9,
427     WINED3DBLEND_INVDESTCOLOR               = 10,
428     WINED3DBLEND_SRCALPHASAT                = 11,
429     WINED3DBLEND_BOTHSRCALPHA               = 12,
430     WINED3DBLEND_BOTHINVSRCALPHA            = 13,
431     WINED3DBLEND_BLENDFACTOR                = 14,
432     WINED3DBLEND_INVBLENDFACTOR             = 15,
433     WINED3DBLEND_FORCE_DWORD                = 0x7fffffff
434 } WINED3DBLEND;
435
436 typedef enum _WINED3DBLENDOP
437 {
438     WINED3DBLENDOP_ADD                      = 1,
439     WINED3DBLENDOP_SUBTRACT                 = 2,
440     WINED3DBLENDOP_REVSUBTRACT              = 3,
441     WINED3DBLENDOP_MIN                      = 4,
442     WINED3DBLENDOP_MAX                      = 5,
443     WINED3DBLENDOP_FORCE_DWORD              = 0x7fffffff
444 } WINED3DBLENDOP;
445
446 typedef enum _WINED3DVERTEXBLENDFLAGS
447 {
448     WINED3DVBF_DISABLE                      = 0,
449     WINED3DVBF_1WEIGHTS                     = 1,
450     WINED3DVBF_2WEIGHTS                     = 2,
451     WINED3DVBF_3WEIGHTS                     = 3,
452     WINED3DVBF_TWEENING                     = 255,
453     WINED3DVBF_0WEIGHTS                     = 256
454 } WINED3DVERTEXBLENDFLAGS;
455
456 typedef enum _WINED3DCMPFUNC
457 {
458     WINED3DCMP_NEVER                        = 1,
459     WINED3DCMP_LESS                         = 2,
460     WINED3DCMP_EQUAL                        = 3,
461     WINED3DCMP_LESSEQUAL                    = 4,
462     WINED3DCMP_GREATER                      = 5,
463     WINED3DCMP_NOTEQUAL                     = 6,
464     WINED3DCMP_GREATEREQUAL                 = 7,
465     WINED3DCMP_ALWAYS                       = 8,
466     WINED3DCMP_FORCE_DWORD                  = 0x7fffffff
467 } WINED3DCMPFUNC;
468
469 typedef enum _WINED3DZBUFFERTYPE
470 {
471     WINED3DZB_FALSE                         = 0,
472     WINED3DZB_TRUE                          = 1,
473     WINED3DZB_USEW                          = 2,
474     WINED3DZB_FORCE_DWORD                   = 0x7fffffff
475 } WINED3DZBUFFERTYPE;
476
477 typedef enum _WINED3DFOGMODE
478 {
479     WINED3DFOG_NONE                         = 0,
480     WINED3DFOG_EXP                          = 1,
481     WINED3DFOG_EXP2                         = 2,
482     WINED3DFOG_LINEAR                       = 3,
483     WINED3DFOG_FORCE_DWORD                  = 0x7fffffff
484 } WINED3DFOGMODE;
485
486 typedef enum _WINED3DSHADEMODE
487 {
488     WINED3DSHADE_FLAT                       = 1,
489     WINED3DSHADE_GOURAUD                    = 2,
490     WINED3DSHADE_PHONG                      = 3,
491     WINED3DSHADE_FORCE_DWORD                = 0x7fffffff
492 } WINED3DSHADEMODE;
493
494 typedef enum _WINED3DFILLMODE
495 {
496     WINED3DFILL_POINT                       = 1,
497     WINED3DFILL_WIREFRAME                   = 2,
498     WINED3DFILL_SOLID                       = 3,
499     WINED3DFILL_FORCE_DWORD                 = 0x7fffffff
500 } WINED3DFILLMODE;
501
502 typedef enum _WINED3DCULL
503 {
504     WINED3DCULL_NONE                        = 1,
505     WINED3DCULL_CW                          = 2,
506     WINED3DCULL_CCW                         = 3,
507     WINED3DCULL_FORCE_DWORD                 = 0x7fffffff
508 } WINED3DCULL;
509
510 typedef enum _WINED3DSTENCILOP
511 {
512     WINED3DSTENCILOP_KEEP                   = 1,
513     WINED3DSTENCILOP_ZERO                   = 2,
514     WINED3DSTENCILOP_REPLACE                = 3,
515     WINED3DSTENCILOP_INCRSAT                = 4,
516     WINED3DSTENCILOP_DECRSAT                = 5,
517     WINED3DSTENCILOP_INVERT                 = 6,
518     WINED3DSTENCILOP_INCR                   = 7,
519     WINED3DSTENCILOP_DECR                   = 8,
520     WINED3DSTENCILOP_FORCE_DWORD            = 0x7fffffff
521 } WINED3DSTENCILOP;
522
523 typedef enum _WINED3DMATERIALCOLORSOURCE
524 {
525     WINED3DMCS_MATERIAL                     = 0,
526     WINED3DMCS_COLOR1                       = 1,
527     WINED3DMCS_COLOR2                       = 2,
528     WINED3DMCS_FORCE_DWORD                  = 0x7fffffff
529 } WINED3DMATERIALCOLORSOURCE;
530
531 typedef enum _WINED3DPATCHEDGESTYLE
532 {
533     WINED3DPATCHEDGE_DISCRETE               = 0,
534     WINED3DPATCHEDGE_CONTINUOUS             = 1,
535     WINED3DPATCHEDGE_FORCE_DWORD            = 0x7fffffff
536 } WINED3DPATCHEDGESTYLE;
537
538 typedef enum _WINED3DBACKBUFFER_TYPE
539 {
540     WINED3DBACKBUFFER_TYPE_MONO             = 0,
541     WINED3DBACKBUFFER_TYPE_LEFT             = 1,
542     WINED3DBACKBUFFER_TYPE_RIGHT            = 2,
543     WINED3DBACKBUFFER_TYPE_FORCE_DWORD      = 0x7fffffff
544 } WINED3DBACKBUFFER_TYPE;
545
546 typedef enum _WINED3DSWAPEFFECT
547 {
548     WINED3DSWAPEFFECT_DISCARD               = 1,
549     WINED3DSWAPEFFECT_FLIP                  = 2,
550     WINED3DSWAPEFFECT_COPY                  = 3,
551     WINED3DSWAPEFFECT_COPY_VSYNC            = 4,
552     WINED3DSWAPEFFECT_FORCE_DWORD           = 0xffffffff
553 } WINED3DSWAPEFFECT;
554
555 typedef enum _WINED3DSAMPLERSTATETYPE
556 {
557     WINED3DSAMP_ADDRESSU                    = 1,
558     WINED3DSAMP_ADDRESSV                    = 2,
559     WINED3DSAMP_ADDRESSW                    = 3,
560     WINED3DSAMP_BORDERCOLOR                 = 4,
561     WINED3DSAMP_MAGFILTER                   = 5,
562     WINED3DSAMP_MINFILTER                   = 6,
563     WINED3DSAMP_MIPFILTER                   = 7,
564     WINED3DSAMP_MIPMAPLODBIAS               = 8,
565     WINED3DSAMP_MAXMIPLEVEL                 = 9,
566     WINED3DSAMP_MAXANISOTROPY               = 10,
567     WINED3DSAMP_SRGBTEXTURE                 = 11,
568     WINED3DSAMP_ELEMENTINDEX                = 12,
569     WINED3DSAMP_DMAPOFFSET                  = 13,
570     WINED3DSAMP_FORCE_DWORD                 = 0x7fffffff,
571 } WINED3DSAMPLERSTATETYPE;
572 const UINT WINED3D_HIGHEST_SAMPLER_STATE    = WINED3DSAMP_DMAPOFFSET;
573
574 typedef enum _WINED3DMULTISAMPLE_TYPE
575 {
576     WINED3DMULTISAMPLE_NONE                 = 0,
577     WINED3DMULTISAMPLE_NONMASKABLE          = 1,
578     WINED3DMULTISAMPLE_2_SAMPLES            = 2,
579     WINED3DMULTISAMPLE_3_SAMPLES            = 3,
580     WINED3DMULTISAMPLE_4_SAMPLES            = 4,
581     WINED3DMULTISAMPLE_5_SAMPLES            = 5,
582     WINED3DMULTISAMPLE_6_SAMPLES            = 6,
583     WINED3DMULTISAMPLE_7_SAMPLES            = 7,
584     WINED3DMULTISAMPLE_8_SAMPLES            = 8,
585     WINED3DMULTISAMPLE_9_SAMPLES            = 9,
586     WINED3DMULTISAMPLE_10_SAMPLES           = 10,
587     WINED3DMULTISAMPLE_11_SAMPLES           = 11,
588     WINED3DMULTISAMPLE_12_SAMPLES           = 12,
589     WINED3DMULTISAMPLE_13_SAMPLES           = 13,
590     WINED3DMULTISAMPLE_14_SAMPLES           = 14,
591     WINED3DMULTISAMPLE_15_SAMPLES           = 15,
592     WINED3DMULTISAMPLE_16_SAMPLES           = 16,
593     WINED3DMULTISAMPLE_FORCE_DWORD          = 0xffffffff
594 } WINED3DMULTISAMPLE_TYPE;
595
596 typedef enum _WINED3DTEXTURESTAGESTATETYPE
597 {
598     WINED3DTSS_COLOROP                      = 0,
599     WINED3DTSS_COLORARG1                    = 1,
600     WINED3DTSS_COLORARG2                    = 2,
601     WINED3DTSS_ALPHAOP                      = 3,
602     WINED3DTSS_ALPHAARG1                    = 4,
603     WINED3DTSS_ALPHAARG2                    = 5,
604     WINED3DTSS_BUMPENVMAT00                 = 6,
605     WINED3DTSS_BUMPENVMAT01                 = 7,
606     WINED3DTSS_BUMPENVMAT10                 = 8,
607     WINED3DTSS_BUMPENVMAT11                 = 9,
608     WINED3DTSS_TEXCOORDINDEX                = 10,
609     WINED3DTSS_BUMPENVLSCALE                = 11,
610     WINED3DTSS_BUMPENVLOFFSET               = 12,
611     WINED3DTSS_TEXTURETRANSFORMFLAGS        = 13,
612     WINED3DTSS_COLORARG0                    = 14,
613     WINED3DTSS_ALPHAARG0                    = 15,
614     WINED3DTSS_RESULTARG                    = 16,
615     WINED3DTSS_CONSTANT                     = 17,
616     WINED3DTSS_FORCE_DWORD                  = 0x7fffffff
617 } WINED3DTEXTURESTAGESTATETYPE;
618 const UINT WINED3D_HIGHEST_TEXTURE_STATE    = WINED3DTSS_CONSTANT;
619
620 typedef enum _WINED3DTEXTURETRANSFORMFLAGS
621 {
622     WINED3DTTFF_DISABLE                     = 0,
623     WINED3DTTFF_COUNT1                      = 1,
624     WINED3DTTFF_COUNT2                      = 2,
625     WINED3DTTFF_COUNT3                      = 3,
626     WINED3DTTFF_COUNT4                      = 4,
627     WINED3DTTFF_PROJECTED                   = 256,
628     WINED3DTTFF_FORCE_DWORD                 = 0x7fffffff
629 } WINED3DTEXTURETRANSFORMFLAGS;
630
631 typedef enum _WINED3DTEXTUREOP
632 {
633     WINED3DTOP_DISABLE                      = 1,
634     WINED3DTOP_SELECTARG1                   = 2,
635     WINED3DTOP_SELECTARG2                   = 3,
636     WINED3DTOP_MODULATE                     = 4,
637     WINED3DTOP_MODULATE2X                   = 5,
638     WINED3DTOP_MODULATE4X                   = 6,
639     WINED3DTOP_ADD                          = 7,
640     WINED3DTOP_ADDSIGNED                    = 8,
641     WINED3DTOP_ADDSIGNED2X                  = 9,
642     WINED3DTOP_SUBTRACT                     = 10,
643     WINED3DTOP_ADDSMOOTH                    = 11,
644     WINED3DTOP_BLENDDIFFUSEALPHA            = 12,
645     WINED3DTOP_BLENDTEXTUREALPHA            = 13,
646     WINED3DTOP_BLENDFACTORALPHA             = 14,
647     WINED3DTOP_BLENDTEXTUREALPHAPM          = 15,
648     WINED3DTOP_BLENDCURRENTALPHA            = 16,
649     WINED3DTOP_PREMODULATE                  = 17,
650     WINED3DTOP_MODULATEALPHA_ADDCOLOR       = 18,
651     WINED3DTOP_MODULATECOLOR_ADDALPHA       = 19,
652     WINED3DTOP_MODULATEINVALPHA_ADDCOLOR    = 20,
653     WINED3DTOP_MODULATEINVCOLOR_ADDALPHA    = 21,
654     WINED3DTOP_BUMPENVMAP                   = 22,
655     WINED3DTOP_BUMPENVMAPLUMINANCE          = 23,
656     WINED3DTOP_DOTPRODUCT3                  = 24,
657     WINED3DTOP_MULTIPLYADD                  = 25,
658     WINED3DTOP_LERP                         = 26,
659     WINED3DTOP_FORCE_DWORD                  = 0x7fffffff,
660 } WINED3DTEXTUREOP;
661
662 typedef enum _WINED3DTEXTUREADDRESS
663 {
664     WINED3DTADDRESS_WRAP                    = 1,
665     WINED3DTADDRESS_MIRROR                  = 2,
666     WINED3DTADDRESS_CLAMP                   = 3,
667     WINED3DTADDRESS_BORDER                  = 4,
668     WINED3DTADDRESS_MIRRORONCE              = 5,
669     WINED3DTADDRESS_FORCE_DWORD             = 0x7fffffff
670 } WINED3DTEXTUREADDRESS;
671
672 typedef enum _WINED3DTRANSFORMSTATETYPE
673 {
674     WINED3DTS_VIEW                          = 2,
675     WINED3DTS_PROJECTION                    = 3,
676     WINED3DTS_TEXTURE0                      = 16,
677     WINED3DTS_TEXTURE1                      = 17,
678     WINED3DTS_TEXTURE2                      = 18,
679     WINED3DTS_TEXTURE3                      = 19,
680     WINED3DTS_TEXTURE4                      = 20,
681     WINED3DTS_TEXTURE5                      = 21,
682     WINED3DTS_TEXTURE6                      = 22,
683     WINED3DTS_TEXTURE7                      = 23,
684     WINED3DTS_WORLD                         = 256, /*WINED3DTS_WORLDMATRIX(0)*/
685     WINED3DTS_WORLD1                        = 257,
686     WINED3DTS_WORLD2                        = 258,
687     WINED3DTS_WORLD3                        = 259,
688     WINED3DTS_FORCE_DWORD                   = 0x7fffffff
689 } WINED3DTRANSFORMSTATETYPE;
690 cpp_quote("#define WINED3DTS_WORLDMATRIX(index) (WINED3DTRANSFORMSTATETYPE)(index + 256)")
691
692 typedef enum _WINED3DBASISTYPE
693 {
694     WINED3DBASIS_BEZIER                     = 0,
695     WINED3DBASIS_BSPLINE                    = 1,
696     WINED3DBASIS_INTERPOLATE                = 2,
697     WINED3DBASIS_FORCE_DWORD                = 0x7fffffff
698 } WINED3DBASISTYPE;
699
700 typedef enum _WINED3DCUBEMAP_FACES
701 {
702     WINED3DCUBEMAP_FACE_POSITIVE_X          = 0,
703     WINED3DCUBEMAP_FACE_NEGATIVE_X          = 1,
704     WINED3DCUBEMAP_FACE_POSITIVE_Y          = 2,
705     WINED3DCUBEMAP_FACE_NEGATIVE_Y          = 3,
706     WINED3DCUBEMAP_FACE_POSITIVE_Z          = 4,
707     WINED3DCUBEMAP_FACE_NEGATIVE_Z          = 5,
708     WINED3DCUBEMAP_FACE_FORCE_DWORD         = 0xffffffff
709 } WINED3DCUBEMAP_FACES;
710
711 typedef enum _WINED3DTEXTUREFILTERTYPE
712 {
713     WINED3DTEXF_NONE                        = 0,
714     WINED3DTEXF_POINT                       = 1,
715     WINED3DTEXF_LINEAR                      = 2,
716     WINED3DTEXF_ANISOTROPIC                 = 3,
717     WINED3DTEXF_FLATCUBIC                   = 4,
718     WINED3DTEXF_GAUSSIANCUBIC               = 5,
719     WINED3DTEXF_PYRAMIDALQUAD               = 6,
720     WINED3DTEXF_GAUSSIANQUAD                = 7,
721     WINED3DTEXF_FORCE_DWORD                 = 0x7fffffff
722 } WINED3DTEXTUREFILTERTYPE;
723
724 typedef enum _WINED3DRESOURCETYPE
725 {
726     WINED3DRTYPE_SURFACE                    = 1,
727     WINED3DRTYPE_VOLUME                     = 2,
728     WINED3DRTYPE_TEXTURE                    = 3,
729     WINED3DRTYPE_VOLUMETEXTURE              = 4,
730     WINED3DRTYPE_CUBETEXTURE                = 5,
731     WINED3DRTYPE_BUFFER                     = 6,
732     WINED3DRTYPE_FORCE_DWORD                = 0x7fffffff
733 } WINED3DRESOURCETYPE;
734 const UINT WINED3DRTYPECOUNT                = WINED3DRTYPE_BUFFER + 1;
735
736 typedef enum _WINED3DPOOL
737 {
738     WINED3DPOOL_DEFAULT                     = 0,
739     WINED3DPOOL_MANAGED                     = 1,
740     WINED3DPOOL_SYSTEMMEM                   = 2,
741     WINED3DPOOL_SCRATCH                     = 3,
742     WINED3DPOOL_FORCE_DWORD                 = 0x7fffffff
743 } WINED3DPOOL;
744
745 typedef enum _WINED3DQUERYTYPE
746 {
747     WINED3DQUERYTYPE_VCACHE                 = 4,
748     WINED3DQUERYTYPE_RESOURCEMANAGER        = 5,
749     WINED3DQUERYTYPE_VERTEXSTATS            = 6,
750     WINED3DQUERYTYPE_EVENT                  = 8,
751     WINED3DQUERYTYPE_OCCLUSION              = 9,
752     WINED3DQUERYTYPE_TIMESTAMP              = 10,
753     WINED3DQUERYTYPE_TIMESTAMPDISJOINT      = 11,
754     WINED3DQUERYTYPE_TIMESTAMPFREQ          = 12,
755     WINED3DQUERYTYPE_PIPELINETIMINGS        = 13,
756     WINED3DQUERYTYPE_INTERFACETIMINGS       = 14,
757     WINED3DQUERYTYPE_VERTEXTIMINGS          = 15,
758     WINED3DQUERYTYPE_PIXELTIMINGS           = 16,
759     WINED3DQUERYTYPE_BANDWIDTHTIMINGS       = 17,
760     WINED3DQUERYTYPE_CACHEUTILIZATION       = 18
761 } WINED3DQUERYTYPE;
762
763 const UINT WINED3DISSUE_BEGIN               = (1 << 1);
764 const UINT WINED3DISSUE_END                 = (1 << 0);
765 const UINT WINED3DGETDATA_FLUSH             = (1 << 0);
766
767 typedef enum _WINED3DSTATEBLOCKTYPE
768 {
769     WINED3DSBT_INIT                         = 0,
770     WINED3DSBT_ALL                          = 1,
771     WINED3DSBT_PIXELSTATE                   = 2,
772     WINED3DSBT_VERTEXSTATE                  = 3,
773     WINED3DSBT_RECORDED                     = 4, /* WineD3D private */
774     WINED3DSBT_FORCE_DWORD                  = 0xffffffff
775 } WINED3DSTATEBLOCKTYPE;
776
777 typedef enum _WINED3DDECLMETHOD
778 {
779     WINED3DDECLMETHOD_DEFAULT               = 0,
780     WINED3DDECLMETHOD_PARTIALU              = 1,
781     WINED3DDECLMETHOD_PARTIALV              = 2,
782     WINED3DDECLMETHOD_CROSSUV               = 3,
783     WINED3DDECLMETHOD_UV                    = 4,
784     WINED3DDECLMETHOD_LOOKUP                = 5,
785     WINED3DDECLMETHOD_LOOKUPPRESAMPLED      = 6
786 } WINED3DDECLMETHOD;
787
788 typedef enum _WINED3DDECLUSAGE
789 {
790     WINED3DDECLUSAGE_POSITION               = 0,
791     WINED3DDECLUSAGE_BLENDWEIGHT            = 1,
792     WINED3DDECLUSAGE_BLENDINDICES           = 2,
793     WINED3DDECLUSAGE_NORMAL                 = 3,
794     WINED3DDECLUSAGE_PSIZE                  = 4,
795     WINED3DDECLUSAGE_TEXCOORD               = 5,
796     WINED3DDECLUSAGE_TANGENT                = 6,
797     WINED3DDECLUSAGE_BINORMAL               = 7,
798     WINED3DDECLUSAGE_TESSFACTOR             = 8,
799     WINED3DDECLUSAGE_POSITIONT              = 9,
800     WINED3DDECLUSAGE_COLOR                  = 10,
801     WINED3DDECLUSAGE_FOG                    = 11,
802     WINED3DDECLUSAGE_DEPTH                  = 12,
803     WINED3DDECLUSAGE_SAMPLE                 = 13
804 } WINED3DDECLUSAGE;
805
806 typedef enum _WINED3DSURFTYPE
807 {
808     SURFACE_UNKNOWN                         = 0,    /* Default / Unknown surface type */
809     SURFACE_OPENGL,                                 /* OpenGL surface: Renders using libGL, needed for 3D */
810     SURFACE_GDI,                                    /* User surface. No 3D, DirectDraw rendering with GDI */
811 } WINED3DSURFTYPE;
812
813 enum wined3d_sysval_semantic
814 {
815     WINED3D_SV_DEPTH = 0xffffffff,
816     WINED3D_SV_TARGET0 = 0,
817     WINED3D_SV_TARGET1 = 1,
818     WINED3D_SV_TARGET2 = 2,
819     WINED3D_SV_TARGET3 = 3,
820     WINED3D_SV_TARGET4 = 4,
821     WINED3D_SV_TARGET5 = 5,
822     WINED3D_SV_TARGET6 = 6,
823     WINED3D_SV_TARGET7 = 7,
824 };
825
826 const UINT WINED3DCOLORWRITEENABLE_RED                          = (1<<0);
827 const UINT WINED3DCOLORWRITEENABLE_GREEN                        = (1<<1);
828 const UINT WINED3DCOLORWRITEENABLE_BLUE                         = (1<<2);
829 const UINT WINED3DCOLORWRITEENABLE_ALPHA                        = (1<<3);
830
831 const UINT WINED3DADAPTER_DEFAULT                               = 0;
832 const UINT WINED3DENUM_NO_WHQL_LEVEL                            = 2;
833 const UINT WINED3DPRESENT_BACK_BUFFER_MAX                       = 3;
834
835 const UINT WINED3DTSS_TCI_PASSTHRU                              = 0x00000;
836 const UINT WINED3DTSS_TCI_CAMERASPACENORMAL                     = 0x10000;
837 const UINT WINED3DTSS_TCI_CAMERASPACEPOSITION                   = 0x20000;
838 const UINT WINED3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR           = 0x30000;
839 const UINT WINED3DTSS_TCI_SPHEREMAP                             = 0x40000;
840
841 const UINT WINED3DTA_SELECTMASK                                 = 0x0000000f;
842 const UINT WINED3DTA_DIFFUSE                                    = 0x00000000;
843 const UINT WINED3DTA_CURRENT                                    = 0x00000001;
844 const UINT WINED3DTA_TEXTURE                                    = 0x00000002;
845 const UINT WINED3DTA_TFACTOR                                    = 0x00000003;
846 const UINT WINED3DTA_SPECULAR                                   = 0x00000004;
847 const UINT WINED3DTA_TEMP                                       = 0x00000005;
848 const UINT WINED3DTA_CONSTANT                                   = 0x00000006;
849 const UINT WINED3DTA_COMPLEMENT                                 = 0x00000010;
850 const UINT WINED3DTA_ALPHAREPLICATE                             = 0x00000020;
851
852 const UINT WINED3DPRESENTFLAG_LOCKABLE_BACKBUFFER               = 0x00000001;
853 const UINT WINED3DPRESENTFLAG_DISCARD_DEPTHSTENCIL              = 0x00000002;
854 const UINT WINED3DPRESENTFLAG_DEVICECLIP                        = 0x00000004;
855 const UINT WINED3DPRESENTFLAG_VIDEO                             = 0x00000010;
856 const UINT WINED3DPRESENTFLAG_NOAUTOROTATE                      = 0x00000020;
857 const UINT WINED3DPRESENTFLAG_UNPRUNEDMODE                      = 0x00000040;
858
859 const UINT WINED3DDP_MAXTEXCOORD                                = 8;
860
861 const UINT WINED3DUSAGE_RENDERTARGET                            = 0x00000001;
862 const UINT WINED3DUSAGE_DEPTHSTENCIL                            = 0x00000002;
863 const UINT WINED3DUSAGE_WRITEONLY                               = 0x00000008;
864 const UINT WINED3DUSAGE_SOFTWAREPROCESSING                      = 0x00000010;
865 const UINT WINED3DUSAGE_DONOTCLIP                               = 0x00000020;
866 const UINT WINED3DUSAGE_POINTS                                  = 0x00000040;
867 const UINT WINED3DUSAGE_RTPATCHES                               = 0x00000080;
868 const UINT WINED3DUSAGE_NPATCHES                                = 0x00000100;
869 const UINT WINED3DUSAGE_DYNAMIC                                 = 0x00000200;
870 const UINT WINED3DUSAGE_AUTOGENMIPMAP                           = 0x00000400;
871 const UINT WINED3DUSAGE_DMAP                                    = 0x00004000;
872 const UINT WINED3DUSAGE_MASK                                    = 0x00004fff;
873 const UINT WINED3DUSAGE_STATICDECL                              = 0x40000000;
874 const UINT WINED3DUSAGE_OVERLAY                                 = 0x80000000;
875
876 const UINT WINED3DUSAGE_QUERY_LEGACYBUMPMAP                     = 0x00008000;
877 const UINT WINED3DUSAGE_QUERY_FILTER                            = 0x00020000;
878 const UINT WINED3DUSAGE_QUERY_POSTPIXELSHADER_BLENDING          = 0x00080000;
879 const UINT WINED3DUSAGE_QUERY_SRGBREAD                          = 0x00010000;
880 const UINT WINED3DUSAGE_QUERY_SRGBWRITE                         = 0x00040000;
881 const UINT WINED3DUSAGE_QUERY_VERTEXTEXTURE                     = 0x00100000;
882 const UINT WINED3DUSAGE_QUERY_WRAPANDMIP                        = 0x00200000;
883 const UINT WINED3DUSAGE_QUERY_MASK                              = 0x003f8000;
884
885 const UINT WINED3DLOCK_READONLY                                 = 0x0010;
886 const UINT WINED3DLOCK_NOSYSLOCK                                = 0x0800;
887 const UINT WINED3DLOCK_NOOVERWRITE                              = 0x1000;
888 const UINT WINED3DLOCK_DISCARD                                  = 0x2000;
889 const UINT WINED3DLOCK_DONOTWAIT                                = 0x4000;
890 const UINT WINED3DLOCK_NO_DIRTY_UPDATE                          = 0x8000;
891
892 const UINT WINED3DPRESENT_RATE_DEFAULT                          = 0x000000000;
893
894 const UINT WINED3DPRESENT_INTERVAL_DEFAULT                      = 0x00000000;
895 const UINT WINED3DPRESENT_INTERVAL_ONE                          = 0x00000001;
896 const UINT WINED3DPRESENT_INTERVAL_TWO                          = 0x00000002;
897 const UINT WINED3DPRESENT_INTERVAL_THREE                        = 0x00000004;
898 const UINT WINED3DPRESENT_INTERVAL_FOUR                         = 0x00000008;
899 const UINT WINED3DPRESENT_INTERVAL_IMMEDIATE                    = 0x80000000;
900
901 const UINT WINED3DMAXUSERCLIPPLANES                             = 32;
902 const UINT WINED3DCLIPPLANE0                                    = (1 << 0);
903 const UINT WINED3DCLIPPLANE1                                    = (1 << 1);
904 const UINT WINED3DCLIPPLANE2                                    = (1 << 2);
905 const UINT WINED3DCLIPPLANE3                                    = (1 << 3);
906 const UINT WINED3DCLIPPLANE4                                    = (1 << 4);
907 const UINT WINED3DCLIPPLANE5                                    = (1 << 5);
908
909 /* FVF (Flexible Vertex Format) codes */
910 const UINT WINED3DFVF_RESERVED0                                 = 0x0001;
911 const UINT WINED3DFVF_POSITION_MASK                             = 0x400e;
912 const UINT WINED3DFVF_XYZ                                       = 0x0002;
913 const UINT WINED3DFVF_XYZRHW                                    = 0x0004;
914 const UINT WINED3DFVF_XYZB1                                     = 0x0006;
915 const UINT WINED3DFVF_XYZB2                                     = 0x0008;
916 const UINT WINED3DFVF_XYZB3                                     = 0x000a;
917 const UINT WINED3DFVF_XYZB4                                     = 0x000c;
918 const UINT WINED3DFVF_XYZB5                                     = 0x000e;
919 const UINT WINED3DFVF_XYZW                                      = 0x4002;
920 const UINT WINED3DFVF_NORMAL                                    = 0x0010;
921 const UINT WINED3DFVF_PSIZE                                     = 0x0020;
922 const UINT WINED3DFVF_DIFFUSE                                   = 0x0040;
923 const UINT WINED3DFVF_SPECULAR                                  = 0x0080;
924 const UINT WINED3DFVF_TEXCOUNT_MASK                             = 0x0f00;
925 const UINT WINED3DFVF_TEXCOUNT_SHIFT                            = 8;
926 const UINT WINED3DFVF_TEX0                                      = 0x0000;
927 const UINT WINED3DFVF_TEX1                                      = 0x0100;
928 const UINT WINED3DFVF_TEX2                                      = 0x0200;
929 const UINT WINED3DFVF_TEX3                                      = 0x0300;
930 const UINT WINED3DFVF_TEX4                                      = 0x0400;
931 const UINT WINED3DFVF_TEX5                                      = 0x0500;
932 const UINT WINED3DFVF_TEX6                                      = 0x0600;
933 const UINT WINED3DFVF_TEX7                                      = 0x0700;
934 const UINT WINED3DFVF_TEX8                                      = 0x0800;
935 const UINT WINED3DFVF_LASTBETA_UBYTE4                           = 0x1000;
936 const UINT WINED3DFVF_LASTBETA_D3DCOLOR                         = 0x8000;
937 const UINT WINED3DFVF_RESERVED2                                 = 0x6000;
938
939 const UINT WINED3DFVF_TEXTUREFORMAT1                            = 3;
940 const UINT WINED3DFVF_TEXTUREFORMAT2                            = 0;
941 const UINT WINED3DFVF_TEXTUREFORMAT3                            = 1;
942 const UINT WINED3DFVF_TEXTUREFORMAT4                            = 2;
943 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE1(CoordIndex) (WINED3DFVF_TEXTUREFORMAT1 << (CoordIndex*2 + 16))")
944 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE2(CoordIndex) (WINED3DFVF_TEXTUREFORMAT2)")
945 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE3(CoordIndex) (WINED3DFVF_TEXTUREFORMAT3 << (CoordIndex*2 + 16))")
946 cpp_quote("#define WINED3DFVF_TEXCOORDSIZE4(CoordIndex) (WINED3DFVF_TEXTUREFORMAT4 << (CoordIndex*2 + 16))")
947
948 /* Clear flags */
949 const UINT WINED3DCLEAR_TARGET                                  = 0x00000001;
950 const UINT WINED3DCLEAR_ZBUFFER                                 = 0x00000002;
951 const UINT WINED3DCLEAR_STENCIL                                 = 0x00000004;
952
953 /* Stream source flags */
954 const UINT WINED3DSTREAMSOURCE_INDEXEDDATA                      = (1 << 30);
955 const UINT WINED3DSTREAMSOURCE_INSTANCEDATA                     = (2 << 30);
956
957 /* SetPrivateData flags */
958 const UINT WINED3DSPD_IUNKNOWN                                  = 0x00000001;
959
960 /* IWineD3D::CreateDevice behaviour flags */
961 const UINT WINED3DCREATE_FPU_PRESERVE                           = 0x00000002;
962 const UINT WINED3DCREATE_PUREDEVICE                             = 0x00000010;
963 const UINT WINED3DCREATE_SOFTWARE_VERTEXPROCESSING              = 0x00000020;
964 const UINT WINED3DCREATE_HARDWARE_VERTEXPROCESSING              = 0x00000040;
965 const UINT WINED3DCREATE_MIXED_VERTEXPROCESSING                 = 0x00000080;
966 const UINT WINED3DCREATE_DISABLE_DRIVER_MANAGEMENT              = 0x00000100;
967 const UINT WINED3DCREATE_ADAPTERGROUP_DEVICE                    = 0x00000200;
968
969 /* VTF defines */
970 const UINT WINED3DDMAPSAMPLER                                   = 0x100;
971 const UINT WINED3DVERTEXTEXTURESAMPLER0                         = (WINED3DDMAPSAMPLER + 1);
972 const UINT WINED3DVERTEXTEXTURESAMPLER1                         = (WINED3DDMAPSAMPLER + 2);
973 const UINT WINED3DVERTEXTEXTURESAMPLER2                         = (WINED3DDMAPSAMPLER + 3);
974 const UINT WINED3DVERTEXTEXTURESAMPLER3                         = (WINED3DDMAPSAMPLER + 4);
975
976 const UINT WINED3DCAPS3_ALPHA_FULLSCREEN_FLIP_OR_DISCARD        = 0x00000020;
977 const UINT WINED3DCAPS3_LINEAR_TO_SRGB_PRESENTATION             = 0x00000080;
978 const UINT WINED3DCAPS3_COPY_TO_VIDMEM                          = 0x00000100;
979 const UINT WINED3DCAPS3_COPY_TO_SYSTEMMEM                       = 0x00000200;
980 const UINT WINED3DCAPS3_RESERVED                                = 0x8000001f;
981
982 const UINT WINED3DDEVCAPS2_STREAMOFFSET                         = 0x00000001;
983 const UINT WINED3DDEVCAPS2_DMAPNPATCH                           = 0x00000002;
984 const UINT WINED3DDEVCAPS2_ADAPTIVETESSRTPATCH                  = 0x00000004;
985 const UINT WINED3DDEVCAPS2_ADAPTIVETESSNPATCH                   = 0x00000008;
986 const UINT WINED3DDEVCAPS2_CAN_STRETCHRECT_FROM_TEXTURES        = 0x00000010;
987 const UINT WINED3DDEVCAPS2_PRESAMPLEDDMAPNPATCH                 = 0x00000020;
988 const UINT WINED3DDEVCAPS2_VERTEXELEMENTSCANSHARESTREAMOFFSET   = 0x00000040;
989
990 const UINT WINED3DDTCAPS_UBYTE4                                 = 0x00000001;
991 const UINT WINED3DDTCAPS_UBYTE4N                                = 0x00000002;
992 const UINT WINED3DDTCAPS_SHORT2N                                = 0x00000004;
993 const UINT WINED3DDTCAPS_SHORT4N                                = 0x00000008;
994 const UINT WINED3DDTCAPS_USHORT2N                               = 0x00000010;
995 const UINT WINED3DDTCAPS_USHORT4N                               = 0x00000020;
996 const UINT WINED3DDTCAPS_UDEC3                                  = 0x00000040;
997 const UINT WINED3DDTCAPS_DEC3N                                  = 0x00000080;
998 const UINT WINED3DDTCAPS_FLOAT16_2                              = 0x00000100;
999 const UINT WINED3DDTCAPS_FLOAT16_4                              = 0x00000200;
1000
1001 const UINT WINED3DFVFCAPS_TEXCOORDCOUNTMASK                     = 0x0000ffff;
1002 const UINT WINED3DFVFCAPS_DONOTSTRIPELEMENTS                    = 0x00080000;
1003 const UINT WINED3DFVFCAPS_PSIZE                                 = 0x00100000;
1004
1005 const UINT WINED3DLINECAPS_TEXTURE                              = 0x00000001;
1006 const UINT WINED3DLINECAPS_ZTEST                                = 0x00000002;
1007 const UINT WINED3DLINECAPS_BLEND                                = 0x00000004;
1008 const UINT WINED3DLINECAPS_ALPHACMP                             = 0x00000008;
1009 const UINT WINED3DLINECAPS_FOG                                  = 0x00000010;
1010 const UINT WINED3DLINECAPS_ANTIALIAS                            = 0x00000020;
1011
1012 const UINT WINED3DMAX30SHADERINSTRUCTIONS                       = 32768;
1013 const UINT WINED3DMIN30SHADERINSTRUCTIONS                       = 512;
1014
1015 const UINT WINED3DPBLENDCAPS_ZERO                               = 0x00000001;
1016 const UINT WINED3DPBLENDCAPS_ONE                                = 0x00000002;
1017 const UINT WINED3DPBLENDCAPS_SRCCOLOR                           = 0x00000004;
1018 const UINT WINED3DPBLENDCAPS_INVSRCCOLOR                        = 0x00000008;
1019 const UINT WINED3DPBLENDCAPS_SRCALPHA                           = 0x00000010;
1020 const UINT WINED3DPBLENDCAPS_INVSRCALPHA                        = 0x00000020;
1021 const UINT WINED3DPBLENDCAPS_DESTALPHA                          = 0x00000040;
1022 const UINT WINED3DPBLENDCAPS_INVDESTALPHA                       = 0x00000080;
1023 const UINT WINED3DPBLENDCAPS_DESTCOLOR                          = 0x00000100;
1024 const UINT WINED3DPBLENDCAPS_INVDESTCOLOR                       = 0x00000200;
1025 const UINT WINED3DPBLENDCAPS_SRCALPHASAT                        = 0x00000400;
1026 const UINT WINED3DPBLENDCAPS_BOTHSRCALPHA                       = 0x00000800;
1027 const UINT WINED3DPBLENDCAPS_BOTHINVSRCALPHA                    = 0x00001000;
1028 const UINT WINED3DPBLENDCAPS_BLENDFACTOR                        = 0x00002000;
1029
1030 const UINT WINED3DPCMPCAPS_NEVER                                = 0x00000001;
1031 const UINT WINED3DPCMPCAPS_LESS                                 = 0x00000002;
1032 const UINT WINED3DPCMPCAPS_EQUAL                                = 0x00000004;
1033 const UINT WINED3DPCMPCAPS_LESSEQUAL                            = 0x00000008;
1034 const UINT WINED3DPCMPCAPS_GREATER                              = 0x00000010;
1035 const UINT WINED3DPCMPCAPS_NOTEQUAL                             = 0x00000020;
1036 const UINT WINED3DPCMPCAPS_GREATEREQUAL                         = 0x00000040;
1037 const UINT WINED3DPCMPCAPS_ALWAYS                               = 0x00000080;
1038
1039 const UINT WINED3DPMISCCAPS_MASKZ                               = 0x00000002;
1040 const UINT WINED3DPMISCCAPS_LINEPATTERNREP                      = 0x00000004;
1041 const UINT WINED3DPMISCCAPS_CULLNONE                            = 0x00000010;
1042 const UINT WINED3DPMISCCAPS_CULLCW                              = 0x00000020;
1043 const UINT WINED3DPMISCCAPS_CULLCCW                             = 0x00000040;
1044 const UINT WINED3DPMISCCAPS_COLORWRITEENABLE                    = 0x00000080;
1045 const UINT WINED3DPMISCCAPS_CLIPPLANESCALEDPOINTS               = 0x00000100;
1046 const UINT WINED3DPMISCCAPS_CLIPTLVERTS                         = 0x00000200;
1047 const UINT WINED3DPMISCCAPS_TSSARGTEMP                          = 0x00000400;
1048 const UINT WINED3DPMISCCAPS_BLENDOP                             = 0x00000800;
1049 const UINT WINED3DPMISCCAPS_NULLREFERENCE                       = 0x00001000;
1050 const UINT WINED3DPMISCCAPS_INDEPENDENTWRITEMASKS               = 0x00004000;
1051 const UINT WINED3DPMISCCAPS_PERSTAGECONSTANT                    = 0x00008000;
1052 const UINT WINED3DPMISCCAPS_FOGANDSPECULARALPHA                 = 0x00010000;
1053 const UINT WINED3DPMISCCAPS_SEPARATEALPHABLEND                  = 0x00020000;
1054 const UINT WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS             = 0x00040000;
1055 const UINT WINED3DPMISCCAPS_MRTPOSTPIXELSHADERBLENDING          = 0x00080000;
1056 const UINT WINED3DPMISCCAPS_FOGVERTEXCLAMPED                    = 0x00100000;
1057
1058 const UINT WINED3DPS20_MAX_DYNAMICFLOWCONTROLDEPTH              = 24;
1059 const UINT WINED3DPS20_MIN_DYNAMICFLOWCONTROLDEPTH              = 0;
1060 const UINT WINED3DPS20_MAX_NUMTEMPS                             = 32;
1061 const UINT WINED3DPS20_MIN_NUMTEMPS                             = 12;
1062 const UINT WINED3DPS20_MAX_STATICFLOWCONTROLDEPTH               = 4;
1063 const UINT WINED3DPS20_MIN_STATICFLOWCONTROLDEPTH               = 0;
1064 const UINT WINED3DPS20_MAX_NUMINSTRUCTIONSLOTS                  = 512;
1065 const UINT WINED3DPS20_MIN_NUMINSTRUCTIONSLOTS                  = 96;
1066
1067 const UINT WINED3DPS20CAPS_ARBITRARYSWIZZLE                     = 0x00000001;
1068 const UINT WINED3DPS20CAPS_GRADIENTINSTRUCTIONS                 = 0x00000002;
1069 const UINT WINED3DPS20CAPS_PREDICATION                          = 0x00000004;
1070 const UINT WINED3DPS20CAPS_NODEPENDENTREADLIMIT                 = 0x00000008;
1071 const UINT WINED3DPS20CAPS_NOTEXINSTRUCTIONLIMIT                = 0x00000010;
1072
1073 const UINT WINED3DPTADDRESSCAPS_WRAP                            = 0x00000001;
1074 const UINT WINED3DPTADDRESSCAPS_MIRROR                          = 0x00000002;
1075 const UINT WINED3DPTADDRESSCAPS_CLAMP                           = 0x00000004;
1076 const UINT WINED3DPTADDRESSCAPS_BORDER                          = 0x00000008;
1077 const UINT WINED3DPTADDRESSCAPS_INDEPENDENTUV                   = 0x00000010;
1078 const UINT WINED3DPTADDRESSCAPS_MIRRORONCE                      = 0x00000020;
1079
1080 const UINT WINED3DSTENCILCAPS_KEEP                              = 0x00000001;
1081 const UINT WINED3DSTENCILCAPS_ZERO                              = 0x00000002;
1082 const UINT WINED3DSTENCILCAPS_REPLACE                           = 0x00000004;
1083 const UINT WINED3DSTENCILCAPS_INCRSAT                           = 0x00000008;
1084 const UINT WINED3DSTENCILCAPS_DECRSAT                           = 0x00000010;
1085 const UINT WINED3DSTENCILCAPS_INVERT                            = 0x00000020;
1086 const UINT WINED3DSTENCILCAPS_INCR                              = 0x00000040;
1087 const UINT WINED3DSTENCILCAPS_DECR                              = 0x00000080;
1088 const UINT WINED3DSTENCILCAPS_TWOSIDED                          = 0x00000100;
1089
1090 const UINT WINED3DTEXOPCAPS_DISABLE                             = 0x00000001;
1091 const UINT WINED3DTEXOPCAPS_SELECTARG1                          = 0x00000002;
1092 const UINT WINED3DTEXOPCAPS_SELECTARG2                          = 0x00000004;
1093 const UINT WINED3DTEXOPCAPS_MODULATE                            = 0x00000008;
1094 const UINT WINED3DTEXOPCAPS_MODULATE2X                          = 0x00000010;
1095 const UINT WINED3DTEXOPCAPS_MODULATE4X                          = 0x00000020;
1096 const UINT WINED3DTEXOPCAPS_ADD                                 = 0x00000040;
1097 const UINT WINED3DTEXOPCAPS_ADDSIGNED                           = 0x00000080;
1098 const UINT WINED3DTEXOPCAPS_ADDSIGNED2X                         = 0x00000100;
1099 const UINT WINED3DTEXOPCAPS_SUBTRACT                            = 0x00000200;
1100 const UINT WINED3DTEXOPCAPS_ADDSMOOTH                           = 0x00000400;
1101 const UINT WINED3DTEXOPCAPS_BLENDDIFFUSEALPHA                   = 0x00000800;
1102 const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHA                   = 0x00001000;
1103 const UINT WINED3DTEXOPCAPS_BLENDFACTORALPHA                    = 0x00002000;
1104 const UINT WINED3DTEXOPCAPS_BLENDTEXTUREALPHAPM                 = 0x00004000;
1105 const UINT WINED3DTEXOPCAPS_BLENDCURRENTALPHA                   = 0x00008000;
1106 const UINT WINED3DTEXOPCAPS_PREMODULATE                         = 0x00010000;
1107 const UINT WINED3DTEXOPCAPS_MODULATEALPHA_ADDCOLOR              = 0x00020000;
1108 const UINT WINED3DTEXOPCAPS_MODULATECOLOR_ADDALPHA              = 0x00040000;
1109 const UINT WINED3DTEXOPCAPS_MODULATEINVALPHA_ADDCOLOR           = 0x00080000;
1110 const UINT WINED3DTEXOPCAPS_MODULATEINVCOLOR_ADDALPHA           = 0x00100000;
1111 const UINT WINED3DTEXOPCAPS_BUMPENVMAP                          = 0x00200000;
1112 const UINT WINED3DTEXOPCAPS_BUMPENVMAPLUMINANCE                 = 0x00400000;
1113 const UINT WINED3DTEXOPCAPS_DOTPRODUCT3                         = 0x00800000;
1114 const UINT WINED3DTEXOPCAPS_MULTIPLYADD                         = 0x01000000;
1115 const UINT WINED3DTEXOPCAPS_LERP                                = 0x02000000;
1116
1117 const UINT WINED3DVS20_MAX_DYNAMICFLOWCONTROLDEPTH              = 24;
1118 const UINT WINED3DVS20_MIN_DYNAMICFLOWCONTROLDEPTH              = 0;
1119 const UINT WINED3DVS20_MAX_NUMTEMPS                             = 32;
1120 const UINT WINED3DVS20_MIN_NUMTEMPS                             = 12;
1121 const UINT WINED3DVS20_MAX_STATICFLOWCONTROLDEPTH               = 4;
1122 const UINT WINED3DVS20_MIN_STATICFLOWCONTROLDEPTH               = 1;
1123
1124 const UINT WINED3DVS20CAPS_PREDICATION                          = 0x00000001;
1125
1126 const UINT WINED3DCAPS2_NO2DDURING3DSCENE                       = 0x00000002;
1127 const UINT WINED3DCAPS2_FULLSCREENGAMMA                         = 0x00020000;
1128 const UINT WINED3DCAPS2_CANRENDERWINDOWED                       = 0x00080000;
1129 const UINT WINED3DCAPS2_CANCALIBRATEGAMMA                       = 0x00100000;
1130 const UINT WINED3DCAPS2_RESERVED                                = 0x02000000;
1131 const UINT WINED3DCAPS2_CANMANAGERESOURCE                       = 0x10000000;
1132 const UINT WINED3DCAPS2_DYNAMICTEXTURES                         = 0x20000000;
1133 const UINT WINED3DCAPS2_CANAUTOGENMIPMAP                        = 0x40000000;
1134
1135 const UINT WINED3DPRASTERCAPS_DITHER                            = 0x00000001;
1136 const UINT WINED3DPRASTERCAPS_ROP2                              = 0x00000002;
1137 const UINT WINED3DPRASTERCAPS_XOR                               = 0x00000004;
1138 const UINT WINED3DPRASTERCAPS_PAT                               = 0x00000008;
1139 const UINT WINED3DPRASTERCAPS_ZTEST                             = 0x00000010;
1140 const UINT WINED3DPRASTERCAPS_SUBPIXEL                          = 0x00000020;
1141 const UINT WINED3DPRASTERCAPS_SUBPIXELX                         = 0x00000040;
1142 const UINT WINED3DPRASTERCAPS_FOGVERTEX                         = 0x00000080;
1143 const UINT WINED3DPRASTERCAPS_FOGTABLE                          = 0x00000100;
1144 const UINT WINED3DPRASTERCAPS_STIPPLE                           = 0x00000200;
1145 const UINT WINED3DPRASTERCAPS_ANTIALIASSORTDEPENDENT            = 0x00000400;
1146 const UINT WINED3DPRASTERCAPS_ANTIALIASSORTINDEPENDENT          = 0x00000800;
1147 const UINT WINED3DPRASTERCAPS_ANTIALIASEDGES                    = 0x00001000;
1148 const UINT WINED3DPRASTERCAPS_MIPMAPLODBIAS                     = 0x00002000;
1149 const UINT WINED3DPRASTERCAPS_ZBIAS                             = 0x00004000;
1150 const UINT WINED3DPRASTERCAPS_ZBUFFERLESSHSR                    = 0x00008000;
1151 const UINT WINED3DPRASTERCAPS_FOGRANGE                          = 0x00010000;
1152 const UINT WINED3DPRASTERCAPS_ANISOTROPY                        = 0x00020000;
1153 const UINT WINED3DPRASTERCAPS_WBUFFER                           = 0x00040000;
1154 const UINT WINED3DPRASTERCAPS_TRANSLUCENTSORTINDEPENDENT        = 0x00080000;
1155 const UINT WINED3DPRASTERCAPS_WFOG                              = 0x00100000;
1156 const UINT WINED3DPRASTERCAPS_ZFOG                              = 0x00200000;
1157 const UINT WINED3DPRASTERCAPS_COLORPERSPECTIVE                  = 0x00400000;
1158 const UINT WINED3DPRASTERCAPS_SCISSORTEST                       = 0x01000000;
1159 const UINT WINED3DPRASTERCAPS_SLOPESCALEDEPTHBIAS               = 0x02000000;
1160 const UINT WINED3DPRASTERCAPS_DEPTHBIAS                         = 0x04000000;
1161 const UINT WINED3DPRASTERCAPS_MULTISAMPLE_TOGGLE                = 0x08000000;
1162
1163 const UINT WINED3DPSHADECAPS_COLORFLATMONO                      = 0x00000001;
1164 const UINT WINED3DPSHADECAPS_COLORFLATRGB                       = 0x00000002;
1165 const UINT WINED3DPSHADECAPS_COLORGOURAUDMONO                   = 0x00000004;
1166 const UINT WINED3DPSHADECAPS_COLORGOURAUDRGB                    = 0x00000008;
1167 const UINT WINED3DPSHADECAPS_COLORPHONGMONO                     = 0x00000010;
1168 const UINT WINED3DPSHADECAPS_COLORPHONGRGB                      = 0x00000020;
1169 const UINT WINED3DPSHADECAPS_SPECULARFLATMONO                   = 0x00000040;
1170 const UINT WINED3DPSHADECAPS_SPECULARFLATRGB                    = 0x00000080;
1171 const UINT WINED3DPSHADECAPS_SPECULARGOURAUDMONO                = 0x00000100;
1172 const UINT WINED3DPSHADECAPS_SPECULARGOURAUDRGB                 = 0x00000200;
1173 const UINT WINED3DPSHADECAPS_SPECULARPHONGMONO                  = 0x00000400;
1174 const UINT WINED3DPSHADECAPS_SPECULARPHONGRGB                   = 0x00000800;
1175 const UINT WINED3DPSHADECAPS_ALPHAFLATBLEND                     = 0x00001000;
1176 const UINT WINED3DPSHADECAPS_ALPHAFLATSTIPPLED                  = 0x00002000;
1177 const UINT WINED3DPSHADECAPS_ALPHAGOURAUDBLEND                  = 0x00004000;
1178 const UINT WINED3DPSHADECAPS_ALPHAGOURAUDSTIPPLED               = 0x00008000;
1179 const UINT WINED3DPSHADECAPS_ALPHAPHONGBLEND                    = 0x00010000;
1180 const UINT WINED3DPSHADECAPS_ALPHAPHONGSTIPPLED                 = 0x00020000;
1181 const UINT WINED3DPSHADECAPS_FOGFLAT                            = 0x00040000;
1182 const UINT WINED3DPSHADECAPS_FOGGOURAUD                         = 0x00080000;
1183 const UINT WINED3DPSHADECAPS_FOGPHONG                           = 0x00100000;
1184
1185 const UINT WINED3DPTEXTURECAPS_PERSPECTIVE                      = 0x00000001;
1186 const UINT WINED3DPTEXTURECAPS_POW2                             = 0x00000002;
1187 const UINT WINED3DPTEXTURECAPS_ALPHA                            = 0x00000004;
1188 const UINT WINED3DPTEXTURECAPS_TRANSPARENCY                     = 0x00000008;
1189 const UINT WINED3DPTEXTURECAPS_BORDER                           = 0x00000010;
1190 const UINT WINED3DPTEXTURECAPS_SQUAREONLY                       = 0x00000020;
1191 const UINT WINED3DPTEXTURECAPS_TEXREPEATNOTSCALEDBYSIZE         = 0x00000040;
1192 const UINT WINED3DPTEXTURECAPS_ALPHAPALETTE                     = 0x00000080;
1193 const UINT WINED3DPTEXTURECAPS_NONPOW2CONDITIONAL               = 0x00000100;
1194 const UINT WINED3DPTEXTURECAPS_PROJECTED                        = 0x00000400;
1195 const UINT WINED3DPTEXTURECAPS_CUBEMAP                          = 0x00000800;
1196 const UINT WINED3DPTEXTURECAPS_COLORKEYBLEND                    = 0x00001000;
1197 const UINT WINED3DPTEXTURECAPS_VOLUMEMAP                        = 0x00002000;
1198 const UINT WINED3DPTEXTURECAPS_MIPMAP                           = 0x00004000;
1199 const UINT WINED3DPTEXTURECAPS_MIPVOLUMEMAP                     = 0x00008000;
1200 const UINT WINED3DPTEXTURECAPS_MIPCUBEMAP                       = 0x00010000;
1201 const UINT WINED3DPTEXTURECAPS_CUBEMAP_POW2                     = 0x00020000;
1202 const UINT WINED3DPTEXTURECAPS_VOLUMEMAP_POW2                   = 0x00040000;
1203 const UINT WINED3DPTEXTURECAPS_NOPROJECTEDBUMPENV               = 0x00200000;
1204
1205 const UINT WINED3DPTFILTERCAPS_NEAREST                          = 0x00000001;
1206 const UINT WINED3DPTFILTERCAPS_LINEAR                           = 0x00000002;
1207 const UINT WINED3DPTFILTERCAPS_MIPNEAREST                       = 0x00000004;
1208 const UINT WINED3DPTFILTERCAPS_MIPLINEAR                        = 0x00000008;
1209 const UINT WINED3DPTFILTERCAPS_LINEARMIPNEAREST                 = 0x00000010;
1210 const UINT WINED3DPTFILTERCAPS_LINEARMIPLINEAR                  = 0x00000020;
1211 const UINT WINED3DPTFILTERCAPS_MINFPOINT                        = 0x00000100;
1212 const UINT WINED3DPTFILTERCAPS_MINFLINEAR                       = 0x00000200;
1213 const UINT WINED3DPTFILTERCAPS_MINFANISOTROPIC                  = 0x00000400;
1214 const UINT WINED3DPTFILTERCAPS_MIPFPOINT                        = 0x00010000;
1215 const UINT WINED3DPTFILTERCAPS_MIPFLINEAR                       = 0x00020000;
1216 const UINT WINED3DPTFILTERCAPS_MAGFPOINT                        = 0x01000000;
1217 const UINT WINED3DPTFILTERCAPS_MAGFLINEAR                       = 0x02000000;
1218 const UINT WINED3DPTFILTERCAPS_MAGFANISOTROPIC                  = 0x04000000;
1219 const UINT WINED3DPTFILTERCAPS_MAGFPYRAMIDALQUAD                = 0x08000000;
1220 const UINT WINED3DPTFILTERCAPS_MAGFGAUSSIANQUAD                 = 0x10000000;
1221
1222 const UINT WINED3DVTXPCAPS_TEXGEN                               = 0x00000001;
1223 const UINT WINED3DVTXPCAPS_MATERIALSOURCE7                      = 0x00000002;
1224 const UINT WINED3DVTXPCAPS_VERTEXFOG                            = 0x00000004;
1225 const UINT WINED3DVTXPCAPS_DIRECTIONALLIGHTS                    = 0x00000008;
1226 const UINT WINED3DVTXPCAPS_POSITIONALLIGHTS                     = 0x00000010;
1227 const UINT WINED3DVTXPCAPS_LOCALVIEWER                          = 0x00000020;
1228 const UINT WINED3DVTXPCAPS_TWEENING                             = 0x00000040;
1229 const UINT WINED3DVTXPCAPS_TEXGEN_SPHEREMAP                     = 0x00000100;
1230 const UINT WINED3DVTXPCAPS_NO_TEXGEN_NONLOCALVIEWER             = 0x00000200;
1231
1232 const UINT WINED3DCURSORCAPS_COLOR                              = 0x00000001;
1233 const UINT WINED3DCURSORCAPS_LOWRES                             = 0x00000002;
1234
1235 const UINT WINED3DDEVCAPS_FLOATTLVERTEX                         = 0x00000001;
1236 const UINT WINED3DDEVCAPS_SORTINCREASINGZ                       = 0x00000002;
1237 const UINT WINED3DDEVCAPS_SORTDECREASINGZ                       = 0X00000004;
1238 const UINT WINED3DDEVCAPS_SORTEXACT                             = 0x00000008;
1239 const UINT WINED3DDEVCAPS_EXECUTESYSTEMMEMORY                   = 0x00000010;
1240 const UINT WINED3DDEVCAPS_EXECUTEVIDEOMEMORY                    = 0x00000020;
1241 const UINT WINED3DDEVCAPS_TLVERTEXSYSTEMMEMORY                  = 0x00000040;
1242 const UINT WINED3DDEVCAPS_TLVERTEXVIDEOMEMORY                   = 0x00000080;
1243 const UINT WINED3DDEVCAPS_TEXTURESYSTEMMEMORY                   = 0x00000100;
1244 const UINT WINED3DDEVCAPS_TEXTUREVIDEOMEMORY                    = 0x00000200;
1245 const UINT WINED3DDEVCAPS_DRAWPRIMTLVERTEX                      = 0x00000400;
1246 const UINT WINED3DDEVCAPS_CANRENDERAFTERFLIP                    = 0x00000800;
1247 const UINT WINED3DDEVCAPS_TEXTURENONLOCALVIDMEM                 = 0x00001000;
1248 const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2                       = 0x00002000;
1249 const UINT WINED3DDEVCAPS_SEPARATETEXTUREMEMORIES               = 0x00004000;
1250 const UINT WINED3DDEVCAPS_DRAWPRIMITIVES2EX                     = 0x00008000;
1251 const UINT WINED3DDEVCAPS_HWTRANSFORMANDLIGHT                   = 0x00010000;
1252 const UINT WINED3DDEVCAPS_CANBLTSYSTONONLOCAL                   = 0x00020000;
1253 const UINT WINED3DDEVCAPS_HWRASTERIZATION                       = 0x00080000;
1254 const UINT WINED3DDEVCAPS_PUREDEVICE                            = 0x00100000;
1255 const UINT WINED3DDEVCAPS_QUINTICRTPATCHES                      = 0x00200000;
1256 const UINT WINED3DDEVCAPS_RTPATCHES                             = 0x00400000;
1257 const UINT WINED3DDEVCAPS_RTPATCHHANDLEZERO                     = 0x00800000;
1258 const UINT WINED3DDEVCAPS_NPATCHES                              = 0x01000000;
1259
1260 /* dwDDFX */
1261 /* arithmetic stretching along y axis */
1262 const UINT WINEDDBLTFX_ARITHSTRETCHY                            = 0x00000001;
1263 /* mirror on y axis */
1264 const UINT WINEDDBLTFX_MIRRORLEFTRIGHT                          = 0x00000002;
1265 /* mirror on x axis */
1266 const UINT WINEDDBLTFX_MIRRORUPDOWN                             = 0x00000004;
1267 /* do not tear */
1268 const UINT WINEDDBLTFX_NOTEARING                                = 0x00000008;
1269 /* 180 degrees clockwise rotation */
1270 const UINT WINEDDBLTFX_ROTATE180                                = 0x00000010;
1271 /* 270 degrees clockwise rotation */
1272 const UINT WINEDDBLTFX_ROTATE270                                = 0x00000020;
1273 /* 90 degrees clockwise rotation */
1274 const UINT WINEDDBLTFX_ROTATE90                                 = 0x00000040;
1275 /* dwZBufferLow and dwZBufferHigh specify limits to the copied Z values */
1276 const UINT WINEDDBLTFX_ZBUFFERRANGE                             = 0x00000080;
1277 /* add dwZBufferBaseDest to every source z value before compare */
1278 const UINT WINEDDBLTFX_ZBUFFERBASEDEST                          = 0x00000100;
1279
1280 /* dwFlags for Blt* */
1281 const UINT WINEDDBLT_ALPHADEST                                  = 0x00000001;
1282 const UINT WINEDDBLT_ALPHADESTCONSTOVERRIDE                     = 0x00000002;
1283 const UINT WINEDDBLT_ALPHADESTNEG                               = 0x00000004;
1284 const UINT WINEDDBLT_ALPHADESTSURFACEOVERRIDE                   = 0x00000008;
1285 const UINT WINEDDBLT_ALPHAEDGEBLEND                             = 0x00000010;
1286 const UINT WINEDDBLT_ALPHASRC                                   = 0x00000020;
1287 const UINT WINEDDBLT_ALPHASRCCONSTOVERRIDE                      = 0x00000040;
1288 const UINT WINEDDBLT_ALPHASRCNEG                                = 0x00000080;
1289 const UINT WINEDDBLT_ALPHASRCSURFACEOVERRIDE                    = 0x00000100;
1290 const UINT WINEDDBLT_ASYNC                                      = 0x00000200;
1291 const UINT WINEDDBLT_COLORFILL                                  = 0x00000400;
1292 const UINT WINEDDBLT_DDFX                                       = 0x00000800;
1293 const UINT WINEDDBLT_DDROPS                                     = 0x00001000;
1294 const UINT WINEDDBLT_KEYDEST                                    = 0x00002000;
1295 const UINT WINEDDBLT_KEYDESTOVERRIDE                            = 0x00004000;
1296 const UINT WINEDDBLT_KEYSRC                                     = 0x00008000;
1297 const UINT WINEDDBLT_KEYSRCOVERRIDE                             = 0x00010000;
1298 const UINT WINEDDBLT_ROP                                        = 0x00020000;
1299 const UINT WINEDDBLT_ROTATIONANGLE                              = 0x00040000;
1300 const UINT WINEDDBLT_ZBUFFER                                    = 0x00080000;
1301 const UINT WINEDDBLT_ZBUFFERDESTCONSTOVERRIDE                   = 0x00100000;
1302 const UINT WINEDDBLT_ZBUFFERDESTOVERRIDE                        = 0x00200000;
1303 const UINT WINEDDBLT_ZBUFFERSRCCONSTOVERRIDE                    = 0x00400000;
1304 const UINT WINEDDBLT_ZBUFFERSRCOVERRIDE                         = 0x00800000;
1305 const UINT WINEDDBLT_WAIT                                       = 0x01000000;
1306 const UINT WINEDDBLT_DEPTHFILL                                  = 0x02000000;
1307 const UINT WINEDDBLT_DONOTWAIT                                  = 0x08000000;
1308
1309 /* dwTrans for BltFast */
1310 const UINT WINEDDBLTFAST_NOCOLORKEY                             = 0x00000000;
1311 const UINT WINEDDBLTFAST_SRCCOLORKEY                            = 0x00000001;
1312 const UINT WINEDDBLTFAST_DESTCOLORKEY                           = 0x00000002;
1313 const UINT WINEDDBLTFAST_WAIT                                   = 0x00000010;
1314 const UINT WINEDDBLTFAST_DONOTWAIT                              = 0x00000020;
1315
1316 /* DDSURFACEDESC.dwFlags */
1317 const UINT WINEDDSD_CAPS                                        = 0x00000001;
1318 const UINT WINEDDSD_HEIGHT                                      = 0x00000002;
1319 const UINT WINEDDSD_WIDTH                                       = 0x00000004;
1320 const UINT WINEDDSD_PITCH                                       = 0x00000008;
1321 const UINT WINEDDSD_BACKBUFFERCOUNT                             = 0x00000020;
1322 const UINT WINEDDSD_ZBUFFERBITDEPTH                             = 0x00000040;
1323 const UINT WINEDDSD_ALPHABITDEPTH                               = 0x00000080;
1324 const UINT WINEDDSD_LPSURFACE                                   = 0x00000800;
1325 const UINT WINEDDSD_PIXELFORMAT                                 = 0x00001000;
1326 const UINT WINEDDSD_CKDESTOVERLAY                               = 0x00002000;
1327 const UINT WINEDDSD_CKDESTBLT                                   = 0x00004000;
1328 const UINT WINEDDSD_CKSRCOVERLAY                                = 0x00008000;
1329 const UINT WINEDDSD_CKSRCBLT                                    = 0x00010000;
1330 const UINT WINEDDSD_MIPMAPCOUNT                                 = 0x00020000;
1331 const UINT WINEDDSD_REFRESHRATE                                 = 0x00040000;
1332 const UINT WINEDDSD_LINEARSIZE                                  = 0x00080000;
1333 const UINT WINEDDSD_TEXTURESTAGE                                = 0x00100000;
1334 const UINT WINEDDSD_FVF                                         = 0x00200000;
1335 const UINT WINEDDSD_SRCVBHANDLE                                 = 0x00400000;
1336 const UINT WINEDDSD_ALL                                         = 0x007ff9ee;
1337
1338 /* Set/Get Colour Key Flags */
1339 const UINT WINEDDCKEY_COLORSPACE                                = 0x00000001; /* Struct is single colour space */
1340 const UINT WINEDDCKEY_DESTBLT                                   = 0x00000002; /* To be used as dest for blt */
1341 const UINT WINEDDCKEY_DESTOVERLAY                               = 0x00000004; /* To be used as dest for CK overlays */
1342 const UINT WINEDDCKEY_SRCBLT                                    = 0x00000008; /* To be used as src for blt */
1343 const UINT WINEDDCKEY_SRCOVERLAY                                = 0x00000010; /* To be used as src for CK overlays */
1344
1345 /* dwFlags for GetBltStatus */
1346 const UINT WINEDDGBS_CANBLT                                     = 0x00000001;
1347 const UINT WINEDDGBS_ISBLTDONE                                  = 0x00000002;
1348
1349 /* dwFlags for GetFlipStatus */
1350 const UINT WINEDDGFS_CANFLIP                                    = 0x00000001;
1351 const UINT WINEDDGFS_ISFLIPDONE                                 = 0x00000002;
1352
1353 /* dwFlags for Flip */
1354 const UINT WINEDDFLIP_WAIT                                      = 0x00000001;
1355 const UINT WINEDDFLIP_EVEN                                      = 0x00000002; /* only valid for overlay */
1356 const UINT WINEDDFLIP_ODD                                       = 0x00000004; /* only valid for overlay */
1357 const UINT WINEDDFLIP_NOVSYNC                                   = 0x00000008;
1358 const UINT WINEDDFLIP_STEREO                                    = 0x00000010;
1359 const UINT WINEDDFLIP_DONOTWAIT                                 = 0x00000020;
1360 const UINT WINEDDFLIP_INTERVAL2                                 = 0x02000000;
1361 const UINT WINEDDFLIP_INTERVAL3                                 = 0x03000000;
1362 const UINT WINEDDFLIP_INTERVAL4                                 = 0x04000000;
1363
1364 const UINT WINEDDOVER_ALPHADEST                                 = 0x00000001;
1365 const UINT WINEDDOVER_ALPHADESTCONSTOVERRIDE                    = 0x00000002;
1366 const UINT WINEDDOVER_ALPHADESTNEG                              = 0x00000004;
1367 const UINT WINEDDOVER_ALPHADESTSURFACEOVERRIDE                  = 0x00000008;
1368 const UINT WINEDDOVER_ALPHAEDGEBLEND                            = 0x00000010;
1369 const UINT WINEDDOVER_ALPHASRC                                  = 0x00000020;
1370 const UINT WINEDDOVER_ALPHASRCCONSTOVERRIDE                     = 0x00000040;
1371 const UINT WINEDDOVER_ALPHASRCNEG                               = 0x00000080;
1372 const UINT WINEDDOVER_ALPHASRCSURFACEOVERRIDE                   = 0x00000100;
1373 const UINT WINEDDOVER_HIDE                                      = 0x00000200;
1374 const UINT WINEDDOVER_KEYDEST                                   = 0x00000400;
1375 const UINT WINEDDOVER_KEYDESTOVERRIDE                           = 0x00000800;
1376 const UINT WINEDDOVER_KEYSRC                                    = 0x00001000;
1377 const UINT WINEDDOVER_KEYSRCOVERRIDE                            = 0x00002000;
1378 const UINT WINEDDOVER_SHOW                                      = 0x00004000;
1379 const UINT WINEDDOVER_ADDDIRTYRECT                              = 0x00008000;
1380 const UINT WINEDDOVER_REFRESHDIRTYRECTS                         = 0x00010000;
1381 const UINT WINEDDOVER_REFRESHALL                                = 0x00020000;
1382 const UINT WINEDDOVER_DDFX                                      = 0x00080000;
1383 const UINT WINEDDOVER_AUTOFLIP                                  = 0x00100000;
1384 const UINT WINEDDOVER_BOB                                       = 0x00200000;
1385 const UINT WINEDDOVER_OVERRIDEBOBWEAVE                          = 0x00400000;
1386 const UINT WINEDDOVER_INTERLEAVED                               = 0x00800000;
1387
1388 /* DirectDraw Caps */
1389 const UINT WINEDDSCAPS_RESERVED1                                = 0x00000001;
1390 const UINT WINEDDSCAPS_ALPHA                                    = 0x00000002;
1391 const UINT WINEDDSCAPS_BACKBUFFER                               = 0x00000004;
1392 const UINT WINEDDSCAPS_COMPLEX                                  = 0x00000008;
1393 const UINT WINEDDSCAPS_FLIP                                     = 0x00000010;
1394 const UINT WINEDDSCAPS_FRONTBUFFER                              = 0x00000020;
1395 const UINT WINEDDSCAPS_OFFSCREENPLAIN                           = 0x00000040;
1396 const UINT WINEDDSCAPS_OVERLAY                                  = 0x00000080;
1397 const UINT WINEDDSCAPS_PALETTE                                  = 0x00000100;
1398 const UINT WINEDDSCAPS_PRIMARYSURFACE                           = 0x00000200;
1399 const UINT WINEDDSCAPS_PRIMARYSURFACELEFT                       = 0x00000400;
1400 const UINT WINEDDSCAPS_SYSTEMMEMORY                             = 0x00000800;
1401 const UINT WINEDDSCAPS_TEXTURE                                  = 0x00001000;
1402 const UINT WINEDDSCAPS_3DDEVICE                                 = 0x00002000;
1403 const UINT WINEDDSCAPS_VIDEOMEMORY                              = 0x00004000;
1404 const UINT WINEDDSCAPS_VISIBLE                                  = 0x00008000;
1405 const UINT WINEDDSCAPS_WRITEONLY                                = 0x00010000;
1406 const UINT WINEDDSCAPS_ZBUFFER                                  = 0x00020000;
1407 const UINT WINEDDSCAPS_OWNDC                                    = 0x00040000;
1408 const UINT WINEDDSCAPS_LIVEVIDEO                                = 0x00080000;
1409 const UINT WINEDDSCAPS_HWCODEC                                  = 0x00100000;
1410 const UINT WINEDDSCAPS_MODEX                                    = 0x00200000;
1411 const UINT WINEDDSCAPS_MIPMAP                                   = 0x00400000;
1412 const UINT WINEDDSCAPS_RESERVED2                                = 0x00800000;
1413 const UINT WINEDDSCAPS_ALLOCONLOAD                              = 0x04000000;
1414 const UINT WINEDDSCAPS_VIDEOPORT                                = 0x08000000;
1415 const UINT WINEDDSCAPS_LOCALVIDMEM                              = 0x10000000;
1416 const UINT WINEDDSCAPS_NONLOCALVIDMEM                           = 0x20000000;
1417 const UINT WINEDDSCAPS_STANDARDVGAMODE                          = 0x40000000;
1418 const UINT WINEDDSCAPS_OPTIMIZED                                = 0x80000000;
1419
1420 const UINT WINEDDCKEYCAPS_DESTBLT                               = 0x00000001;
1421 const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACE                       = 0x00000002;
1422 const UINT WINEDDCKEYCAPS_DESTBLTCLRSPACEYUV                    = 0x00000004;
1423 const UINT WINEDDCKEYCAPS_DESTBLTYUV                            = 0x00000008;
1424 const UINT WINEDDCKEYCAPS_DESTOVERLAY                           = 0x00000010;
1425 const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACE                   = 0x00000020;
1426 const UINT WINEDDCKEYCAPS_DESTOVERLAYCLRSPACEYUV                = 0x00000040;
1427 const UINT WINEDDCKEYCAPS_DESTOVERLAYONEACTIVE                  = 0x00000080;
1428 const UINT WINEDDCKEYCAPS_DESTOVERLAYYUV                        = 0x00000100;
1429 const UINT WINEDDCKEYCAPS_SRCBLT                                = 0x00000200;
1430 const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACE                        = 0x00000400;
1431 const UINT WINEDDCKEYCAPS_SRCBLTCLRSPACEYUV                     = 0x00000800;
1432 const UINT WINEDDCKEYCAPS_SRCBLTYUV                             = 0x00001000;
1433 const UINT WINEDDCKEYCAPS_SRCOVERLAY                            = 0x00002000;
1434 const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACE                    = 0x00004000;
1435 const UINT WINEDDCKEYCAPS_SRCOVERLAYCLRSPACEYUV                 = 0x00008000;
1436 const UINT WINEDDCKEYCAPS_SRCOVERLAYONEACTIVE                   = 0x00010000;
1437 const UINT WINEDDCKEYCAPS_SRCOVERLAYYUV                         = 0x00020000;
1438 const UINT WINEDDCKEYCAPS_NOCOSTOVERLAY                         = 0x00040000;
1439
1440 const UINT WINEDDFXCAPS_BLTALPHA                                = 0x00000001;
1441 const UINT WINEDDFXCAPS_OVERLAYALPHA                            = 0x00000004;
1442 const UINT WINEDDFXCAPS_BLTARITHSTRETCHYN                       = 0x00000010;
1443 const UINT WINEDDFXCAPS_BLTARITHSTRETCHY                        = 0x00000020;
1444 const UINT WINEDDFXCAPS_BLTMIRRORLEFTRIGHT                      = 0x00000040;
1445 const UINT WINEDDFXCAPS_BLTMIRRORUPDOWN                         = 0x00000080;
1446 const UINT WINEDDFXCAPS_BLTROTATION                             = 0x00000100;
1447 const UINT WINEDDFXCAPS_BLTROTATION90                           = 0x00000200;
1448 const UINT WINEDDFXCAPS_BLTSHRINKX                              = 0x00000400;
1449 const UINT WINEDDFXCAPS_BLTSHRINKXN                             = 0x00000800;
1450 const UINT WINEDDFXCAPS_BLTSHRINKY                              = 0x00001000;
1451 const UINT WINEDDFXCAPS_BLTSHRINKYN                             = 0x00002000;
1452 const UINT WINEDDFXCAPS_BLTSTRETCHX                             = 0x00004000;
1453 const UINT WINEDDFXCAPS_BLTSTRETCHXN                            = 0x00008000;
1454 const UINT WINEDDFXCAPS_BLTSTRETCHY                             = 0x00010000;
1455 const UINT WINEDDFXCAPS_BLTSTRETCHYN                            = 0x00020000;
1456 const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHY                    = 0x00040000;
1457 const UINT WINEDDFXCAPS_OVERLAYARITHSTRETCHYN                   = 0x00000008;
1458 const UINT WINEDDFXCAPS_OVERLAYSHRINKX                          = 0x00080000;
1459 const UINT WINEDDFXCAPS_OVERLAYSHRINKXN                         = 0x00100000;
1460 const UINT WINEDDFXCAPS_OVERLAYSHRINKY                          = 0x00200000;
1461 const UINT WINEDDFXCAPS_OVERLAYSHRINKYN                         = 0x00400000;
1462 const UINT WINEDDFXCAPS_OVERLAYSTRETCHX                         = 0x00800000;
1463 const UINT WINEDDFXCAPS_OVERLAYSTRETCHXN                        = 0x01000000;
1464 const UINT WINEDDFXCAPS_OVERLAYSTRETCHY                         = 0x02000000;
1465 const UINT WINEDDFXCAPS_OVERLAYSTRETCHYN                        = 0x04000000;
1466 const UINT WINEDDFXCAPS_OVERLAYMIRRORLEFTRIGHT                  = 0x08000000;
1467 const UINT WINEDDFXCAPS_OVERLAYMIRRORUPDOWN                     = 0x10000000;
1468
1469 const UINT WINEDDCAPS_3D                                        = 0x00000001;
1470 const UINT WINEDDCAPS_ALIGNBOUNDARYDEST                         = 0x00000002;
1471 const UINT WINEDDCAPS_ALIGNSIZEDEST                             = 0x00000004;
1472 const UINT WINEDDCAPS_ALIGNBOUNDARYSRC                          = 0x00000008;
1473 const UINT WINEDDCAPS_ALIGNSIZESRC                              = 0x00000010;
1474 const UINT WINEDDCAPS_ALIGNSTRIDE                               = 0x00000020;
1475 const UINT WINEDDCAPS_BLT                                       = 0x00000040;
1476 const UINT WINEDDCAPS_BLTQUEUE                                  = 0x00000080;
1477 const UINT WINEDDCAPS_BLTFOURCC                                 = 0x00000100;
1478 const UINT WINEDDCAPS_BLTSTRETCH                                = 0x00000200;
1479 const UINT WINEDDCAPS_GDI                                       = 0x00000400;
1480 const UINT WINEDDCAPS_OVERLAY                                   = 0x00000800;
1481 const UINT WINEDDCAPS_OVERLAYCANTCLIP                           = 0x00001000;
1482 const UINT WINEDDCAPS_OVERLAYFOURCC                             = 0x00002000;
1483 const UINT WINEDDCAPS_OVERLAYSTRETCH                            = 0x00004000;
1484 const UINT WINEDDCAPS_PALETTE                                   = 0x00008000;
1485 const UINT WINEDDCAPS_PALETTEVSYNC                              = 0x00010000;
1486 const UINT WINEDDCAPS_READSCANLINE                              = 0x00020000;
1487 const UINT WINEDDCAPS_STEREOVIEW                                = 0x00040000;
1488 const UINT WINEDDCAPS_VBI                                       = 0x00080000;
1489 const UINT WINEDDCAPS_ZBLTS                                     = 0x00100000;
1490 const UINT WINEDDCAPS_ZOVERLAYS                                 = 0x00200000;
1491 const UINT WINEDDCAPS_COLORKEY                                  = 0x00400000;
1492 const UINT WINEDDCAPS_ALPHA                                     = 0x00800000;
1493 const UINT WINEDDCAPS_COLORKEYHWASSIST                          = 0x01000000;
1494 const UINT WINEDDCAPS_NOHARDWARE                                = 0x02000000;
1495 const UINT WINEDDCAPS_BLTCOLORFILL                              = 0x04000000;
1496 const UINT WINEDDCAPS_BANKSWITCHED                              = 0x08000000;
1497 const UINT WINEDDCAPS_BLTDEPTHFILL                              = 0x10000000;
1498 const UINT WINEDDCAPS_CANCLIP                                   = 0x20000000;
1499 const UINT WINEDDCAPS_CANCLIPSTRETCHED                          = 0x40000000;
1500 const UINT WINEDDCAPS_CANBLTSYSMEM                              = 0x80000000;
1501
1502 const UINT WINEDDCAPS2_CERTIFIED                                = 0x00000001;
1503 const UINT WINEDDCAPS2_NO2DDURING3DSCENE                        = 0x00000002;
1504 const UINT WINEDDCAPS2_VIDEOPORT                                = 0x00000004;
1505 const UINT WINEDDCAPS2_AUTOFLIPOVERLAY                          = 0x00000008;
1506 const UINT WINEDDCAPS2_CANBOBINTERLEAVED                        = 0x00000010;
1507 const UINT WINEDDCAPS2_CANBOBNONINTERLEAVED                     = 0x00000020;
1508 const UINT WINEDDCAPS2_COLORCONTROLOVERLAY                      = 0x00000040;
1509 const UINT WINEDDCAPS2_COLORCONTROLPRIMARY                      = 0x00000080;
1510 const UINT WINEDDCAPS2_CANDROPZ16BIT                            = 0x00000100;
1511 const UINT WINEDDCAPS2_NONLOCALVIDMEM                           = 0x00000200;
1512 const UINT WINEDDCAPS2_NONLOCALVIDMEMCAPS                       = 0x00000400;
1513 const UINT WINEDDCAPS2_NOPAGELOCKREQUIRED                       = 0x00000800;
1514 const UINT WINEDDCAPS2_WIDESURFACES                             = 0x00001000;
1515 const UINT WINEDDCAPS2_CANFLIPODDEVEN                           = 0x00002000;
1516 const UINT WINEDDCAPS2_CANBOBHARDWARE                           = 0x00004000;
1517 const UINT WINEDDCAPS2_COPYFOURCC                               = 0x00008000;
1518 const UINT WINEDDCAPS2_PRIMARYGAMMA                             = 0x00020000;
1519 const UINT WINEDDCAPS2_CANRENDERWINDOWED                        = 0x00080000;
1520 const UINT WINEDDCAPS2_CANCALIBRATEGAMMA                        = 0x00100000;
1521 const UINT WINEDDCAPS2_FLIPINTERVAL                             = 0x00200000;
1522 const UINT WINEDDCAPS2_FLIPNOVSYNC                              = 0x00400000;
1523 const UINT WINEDDCAPS2_CANMANAGETEXTURE                         = 0x00800000;
1524 const UINT WINEDDCAPS2_TEXMANINNONLOCALVIDMEM                   = 0x01000000;
1525 const UINT WINEDDCAPS2_STEREO                                   = 0x02000000;
1526 const UINT WINEDDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL              = 0x04000000;
1527
1528 /* DDCAPS.d */
1529 const UINT WINEDDPCAPS_4BIT                                     = 0x00000001;
1530 const UINT WINEDDPCAPS_8BITENTRIES                              = 0x00000002;
1531 const UINT WINEDDPCAPS_8BIT                                     = 0x00000004;
1532 const UINT WINEDDPCAPS_INITIALIZE                               = 0x00000008;
1533 const UINT WINEDDPCAPS_PRIMARYSURFACE                           = 0x00000010;
1534 const UINT WINEDDPCAPS_PRIMARYSURFACELEFT                       = 0x00000020;
1535 const UINT WINEDDPCAPS_ALLOW256                                 = 0x00000040;
1536 const UINT WINEDDPCAPS_VSYNC                                    = 0x00000080;
1537 const UINT WINEDDPCAPS_1BIT                                     = 0x00000100;
1538 const UINT WINEDDPCAPS_2BIT                                     = 0x00000200;
1539 const UINT WINEDDPCAPS_ALPHA                                    = 0x00000400;
1540
1541 typedef struct _WINED3DDISPLAYMODE
1542 {
1543     UINT Width;
1544     UINT Height;
1545     UINT RefreshRate;
1546     enum wined3d_format_id Format;
1547 } WINED3DDISPLAYMODE;
1548
1549 typedef struct _WINED3DCOLORVALUE
1550 {
1551     float r;
1552     float g;
1553     float b;
1554     float a;
1555 } WINED3DCOLORVALUE;
1556
1557 typedef struct _WINED3DVECTOR
1558 {
1559     float x;
1560     float y;
1561     float z;
1562 } WINED3DVECTOR;
1563
1564 typedef struct _WINED3DMATRIX
1565 {
1566     union
1567     {
1568         struct
1569         {
1570             float _11, _12, _13, _14;
1571             float _21, _22, _23, _24;
1572             float _31, _32, _33, _34;
1573             float _41, _42, _43, _44;
1574         } DUMMYSTRUCTNAME;
1575         float m[4][4];
1576     } DUMMYUNIONNAME;
1577 } WINED3DMATRIX;
1578
1579 typedef struct _WINED3DLIGHT
1580 {
1581     WINED3DLIGHTTYPE Type;
1582     WINED3DCOLORVALUE Diffuse;
1583     WINED3DCOLORVALUE Specular;
1584     WINED3DCOLORVALUE Ambient;
1585     WINED3DVECTOR Position;
1586     WINED3DVECTOR Direction;
1587     float Range;
1588     float Falloff;
1589     float Attenuation0;
1590     float Attenuation1;
1591     float Attenuation2;
1592     float Theta;
1593     float Phi;
1594 } WINED3DLIGHT;
1595
1596 typedef struct _WINED3DMATERIAL
1597 {
1598     WINED3DCOLORVALUE Diffuse;
1599     WINED3DCOLORVALUE Ambient;
1600     WINED3DCOLORVALUE Specular;
1601     WINED3DCOLORVALUE Emissive;
1602     float Power;
1603 } WINED3DMATERIAL;
1604
1605 typedef struct _WINED3DVIEWPORT
1606 {
1607     DWORD X;
1608     DWORD Y;
1609     DWORD Width;
1610     DWORD Height;
1611     float MinZ;
1612     float MaxZ;
1613 } WINED3DVIEWPORT;
1614
1615 typedef struct _WINED3DGAMMARAMP
1616 {
1617     WORD red[256];
1618     WORD green[256];
1619     WORD blue[256];
1620 } WINED3DGAMMARAMP;
1621
1622 typedef struct _WINED3DLINEPATTERN
1623 {
1624     WORD wRepeatFactor;
1625     WORD wLinePattern;
1626 } WINED3DLINEPATTERN;
1627
1628 typedef struct _WINEDD3DRECTPATCH_INFO
1629 {
1630     UINT StartVertexOffsetWidth;
1631     UINT StartVertexOffsetHeight;
1632     UINT Width;
1633     UINT Height;
1634     UINT Stride;
1635     WINED3DBASISTYPE Basis;
1636     WINED3DDEGREETYPE Degree;
1637 } WINED3DRECTPATCH_INFO;
1638
1639 typedef struct _WINED3DTRIPATCH_INFO
1640 {
1641     UINT StartVertexOffset;
1642     UINT NumVertices;
1643     WINED3DBASISTYPE Basis;
1644     WINED3DDEGREETYPE Degree;
1645 } WINED3DTRIPATCH_INFO;
1646
1647 typedef struct _WINED3DADAPTER_IDENTIFIER
1648 {
1649     char *driver;
1650     UINT driver_size;
1651     char *description;
1652     UINT description_size;
1653     char *device_name;
1654     UINT device_name_size;
1655     LARGE_INTEGER driver_version;
1656     DWORD vendor_id;
1657     DWORD device_id;
1658     DWORD subsystem_id;
1659     DWORD revision;
1660     GUID device_identifier;
1661     DWORD whql_level;
1662     LUID adapter_luid;
1663     SIZE_T video_memory;
1664 } WINED3DADAPTER_IDENTIFIER;
1665
1666 typedef struct _WINED3DPRESENT_PARAMETERS
1667 {
1668     UINT BackBufferWidth;
1669     UINT BackBufferHeight;
1670     enum wined3d_format_id BackBufferFormat;
1671     UINT BackBufferCount;
1672     WINED3DMULTISAMPLE_TYPE MultiSampleType;
1673     DWORD MultiSampleQuality;
1674     WINED3DSWAPEFFECT SwapEffect;
1675     HWND hDeviceWindow;
1676     BOOL Windowed;
1677     BOOL EnableAutoDepthStencil;
1678     enum wined3d_format_id AutoDepthStencilFormat;
1679     DWORD Flags;
1680     UINT FullScreen_RefreshRateInHz;
1681     UINT PresentationInterval;
1682     BOOL AutoRestoreDisplayMode;
1683 } WINED3DPRESENT_PARAMETERS;
1684
1685 struct wined3d_resource_desc
1686 {
1687     WINED3DRESOURCETYPE resource_type;
1688     enum wined3d_format_id format;
1689     WINED3DMULTISAMPLE_TYPE multisample_type;
1690     UINT multisample_quality;
1691     DWORD usage;
1692     WINED3DPOOL pool;
1693     UINT width;
1694     UINT height;
1695     UINT depth;
1696     UINT size;
1697 };
1698
1699 typedef struct _WINED3DCLIPSTATUS
1700 {
1701    DWORD ClipUnion;
1702    DWORD ClipIntersection;
1703 } WINED3DCLIPSTATUS;
1704
1705 typedef struct _WINED3DVERTEXELEMENT
1706 {
1707     enum wined3d_format_id format;
1708     WORD input_slot;
1709     WORD offset;
1710     UINT output_slot; /* D3D 8 & 10 */
1711     BYTE method;
1712     BYTE usage;
1713     BYTE usage_idx;
1714 } WINED3DVERTEXELEMENT;
1715
1716 typedef struct _WINED3DDEVICE_CREATION_PARAMETERS
1717 {
1718     UINT AdapterOrdinal;
1719     WINED3DDEVTYPE DeviceType;
1720     HWND hFocusWindow;
1721     DWORD BehaviorFlags;
1722 } WINED3DDEVICE_CREATION_PARAMETERS;
1723
1724 typedef struct _WINED3DDEVINFO_BANDWIDTHTIMINGS
1725 {
1726     float MaxBandwidthUtilized;
1727     float FrontEndUploadMemoryUtilizedPercent;
1728     float VertexRateUtilizedPercent;
1729     float TriangleSetupRateUtilizedPercent;
1730     float FillRateUtilizedPercent;
1731 } WINED3DDEVINFO_BANDWIDTHTIMINGS;
1732
1733 typedef struct _WINED3DDEVINFO_CACHEUTILIZATION
1734 {
1735     float TextureCacheHitRate;
1736     float PostTransformVertexCacheHitRate;
1737 } WINED3DDEVINFO_CACHEUTILIZATION;
1738
1739 typedef struct _WINED3DDEVINFO_INTERFACETIMINGS
1740 {
1741     float WaitingForGPUToUseApplicationResourceTimePercent;
1742     float WaitingForGPUToAcceptMoreCommandsTimePercent;
1743     float WaitingForGPUToStayWithinLatencyTimePercent;
1744     float WaitingForGPUExclusiveResourceTimePercent;
1745     float WaitingForGPUOtherTimePercent;
1746 } WINED3DDEVINFO_INTERFACETIMINGS;
1747
1748 typedef struct _WINED3DDEVINFO_PIPELINETIMINGS
1749 {
1750     float VertexProcessingTimePercent;
1751     float PixelProcessingTimePercent;
1752     float OtherGPUProcessingTimePercent;
1753     float GPUIdleTimePercent;
1754 } WINED3DDEVINFO_PIPELINETIMINGS;
1755
1756 typedef struct _WINED3DDEVINFO_STAGETIMINGS
1757 {
1758     float MemoryProcessingPercent;
1759     float ComputationProcessingPercent;
1760 } WINED3DDEVINFO_STAGETIMINGS;
1761
1762 typedef struct _WINED3DRASTER_STATUS
1763 {
1764     BOOL InVBlank;
1765     UINT ScanLine;
1766 } WINED3DRASTER_STATUS;
1767
1768 typedef struct WINED3DRESOURCESTATS
1769 {
1770     BOOL bThrashing;
1771     DWORD ApproxBytesDownloaded;
1772     DWORD NumEvicts;
1773     DWORD NumVidCreates;
1774     DWORD LastPri;
1775     DWORD NumUsed;
1776     DWORD NumUsedInVidMem;
1777     DWORD WorkingSet;
1778     DWORD WorkingSetBytes;
1779     DWORD TotalManaged;
1780     DWORD TotalBytes;
1781 } WINED3DRESOURCESTATS;
1782
1783 typedef struct _WINED3DDEVINFO_RESOURCEMANAGER
1784 {
1785     WINED3DRESOURCESTATS stats[WINED3DRTYPECOUNT];
1786 } WINED3DDEVINFO_RESOURCEMANAGER;
1787
1788 typedef struct _WINED3DDEVINFO_VERTEXSTATS
1789 {
1790     DWORD NumRenderedTriangles;
1791     DWORD NumExtraClippingTriangles;
1792 } WINED3DDEVINFO_VERTEXSTATS;
1793
1794 typedef struct _WINED3DLOCKED_RECT
1795 {
1796     INT Pitch;
1797     void *pBits;
1798 } WINED3DLOCKED_RECT;
1799
1800 typedef struct _WINED3DLOCKED_BOX
1801 {
1802     INT RowPitch;
1803     INT SlicePitch;
1804     void *pBits;
1805 } WINED3DLOCKED_BOX;
1806
1807 typedef struct _WINED3DBOX
1808 {
1809     UINT Left;
1810     UINT Top;
1811     UINT Right;
1812     UINT Bottom;
1813     UINT Front;
1814     UINT Back;
1815 } WINED3DBOX;
1816
1817 /*Vertex cache optimization hints.*/
1818 typedef struct WINED3DDEVINFO_VCACHE
1819 {
1820     DWORD Pattern;      /* Must be a 4 char code FOURCC (e.g. CACH) */
1821     DWORD OptMethod;    /* 0 to get the longest  strips, 1 vertex cache */
1822     DWORD CacheSize;    /* Cache size to use (only valid if OptMethod==1) */
1823     DWORD MagicNumber;  /* Internal for deciding when to restart strips,
1824                            non user modifiable (only valid if OptMethod==1) */
1825 } WINED3DDEVINFO_VCACHE;
1826
1827 typedef struct WineDirect3DStridedData
1828 {
1829     enum wined3d_format_id format;   /* Format of the data */
1830     const BYTE *lpData;     /* Pointer to start of data */
1831     DWORD dwStride;         /* Stride between occurrences of this data */
1832 } WineDirect3DStridedData;
1833
1834 typedef struct WineDirect3DVertexStridedData
1835 {
1836     WineDirect3DStridedData position;
1837     WineDirect3DStridedData normal;
1838     WineDirect3DStridedData diffuse;
1839     WineDirect3DStridedData specular;
1840     WineDirect3DStridedData texCoords[WINED3DDP_MAXTEXCOORD];
1841     BOOL position_transformed;
1842 } WineDirect3DVertexStridedData;
1843
1844 typedef struct _WINED3DVSHADERCAPS2_0
1845 {
1846     DWORD Caps;
1847     INT DynamicFlowControlDepth;
1848     INT NumTemps;
1849     INT StaticFlowControlDepth;
1850 } WINED3DVSHADERCAPS2_0;
1851
1852 typedef struct _WINED3DPSHADERCAPS2_0
1853 {
1854     DWORD Caps;
1855     INT DynamicFlowControlDepth;
1856     INT NumTemps;
1857     INT StaticFlowControlDepth;
1858     INT NumInstructionSlots;
1859 } WINED3DPSHADERCAPS2_0;
1860
1861 typedef struct _WINEDDCAPS
1862 {
1863     DWORD Caps;
1864     DWORD Caps2;
1865     DWORD CKeyCaps;
1866     DWORD FXCaps;
1867     DWORD FXAlphaCaps;
1868     DWORD PalCaps;
1869     DWORD SVCaps;
1870     DWORD SVBCaps;
1871     DWORD SVBCKeyCaps;
1872     DWORD SVBFXCaps;
1873     DWORD VSBCaps;
1874     DWORD VSBCKeyCaps;
1875     DWORD VSBFXCaps;
1876     DWORD SSBCaps;
1877     DWORD SSBCKeyCaps;
1878     DWORD SSBFXCaps;
1879     DWORD ddsCaps;
1880     DWORD StrideAlign;
1881 } WINEDDCAPS;
1882
1883 typedef struct _WINED3DCAPS
1884 {
1885     WINED3DDEVTYPE DeviceType;
1886     UINT AdapterOrdinal;
1887
1888     DWORD Caps;
1889     DWORD Caps2;
1890     DWORD Caps3;
1891     DWORD PresentationIntervals;
1892
1893     DWORD CursorCaps;
1894     DWORD DevCaps;
1895     DWORD PrimitiveMiscCaps;
1896     DWORD RasterCaps;
1897     DWORD ZCmpCaps;
1898     DWORD SrcBlendCaps;
1899     DWORD DestBlendCaps;
1900     DWORD AlphaCmpCaps;
1901     DWORD ShadeCaps;
1902     DWORD TextureCaps;
1903     DWORD TextureFilterCaps;
1904     DWORD CubeTextureFilterCaps;
1905     DWORD VolumeTextureFilterCaps;
1906     DWORD TextureAddressCaps;
1907     DWORD VolumeTextureAddressCaps;
1908     DWORD LineCaps;
1909
1910     DWORD MaxTextureWidth;
1911     DWORD MaxTextureHeight;
1912     DWORD MaxVolumeExtent;
1913     DWORD MaxTextureRepeat;
1914     DWORD MaxTextureAspectRatio;
1915     DWORD MaxAnisotropy;
1916     float MaxVertexW;
1917
1918     float GuardBandLeft;
1919     float GuardBandTop;
1920     float GuardBandRight;
1921     float GuardBandBottom;
1922
1923     float ExtentsAdjust;
1924     DWORD StencilCaps;
1925
1926     DWORD FVFCaps;
1927     DWORD TextureOpCaps;
1928     DWORD MaxTextureBlendStages;
1929     DWORD MaxSimultaneousTextures;
1930
1931     DWORD VertexProcessingCaps;
1932     DWORD MaxActiveLights;
1933     DWORD MaxUserClipPlanes;
1934     DWORD MaxVertexBlendMatrices;
1935     DWORD MaxVertexBlendMatrixIndex;
1936
1937     float MaxPointSize;
1938
1939     DWORD MaxPrimitiveCount;
1940     DWORD MaxVertexIndex;
1941     DWORD MaxStreams;
1942     DWORD MaxStreamStride;
1943
1944     DWORD VertexShaderVersion;
1945     DWORD MaxVertexShaderConst;
1946
1947     DWORD PixelShaderVersion;
1948     float PixelShader1xMaxValue;
1949
1950     /* DX 9 */
1951     DWORD DevCaps2;
1952
1953     float MaxNpatchTessellationLevel;
1954     DWORD Reserved5; /* undocumented */
1955
1956     UINT MasterAdapterOrdinal;
1957     UINT AdapterOrdinalInGroup;
1958     UINT NumberOfAdaptersInGroup;
1959     DWORD DeclTypes;
1960     DWORD NumSimultaneousRTs;
1961     DWORD StretchRectFilterCaps;
1962     WINED3DVSHADERCAPS2_0 VS20Caps;
1963     WINED3DPSHADERCAPS2_0 PS20Caps;
1964     DWORD VertexTextureFilterCaps;
1965     DWORD MaxVShaderInstructionsExecuted;
1966     DWORD MaxPShaderInstructionsExecuted;
1967     DWORD MaxVertexShader30InstructionSlots;
1968     DWORD MaxPixelShader30InstructionSlots;
1969     DWORD Reserved2; /* Not in the microsoft headers but documented */
1970     DWORD Reserved3;
1971
1972     WINEDDCAPS DirectDrawCaps;
1973 } WINED3DCAPS;
1974
1975 /* DirectDraw types */
1976
1977 typedef struct _WINEDDCOLORKEY
1978 {
1979     DWORD dwColorSpaceLowValue;     /* low boundary of color space that is to
1980                                      * be treated as Color Key, inclusive */
1981     DWORD dwColorSpaceHighValue;    /* high boundary of color space that is
1982                                      * to be treated as Color Key, inclusive */
1983 } WINEDDCOLORKEY,*LPWINEDDCOLORKEY;
1984
1985 typedef struct _WINEDDBLTFX
1986 {
1987     DWORD dwSize;                                   /* size of structure */
1988     DWORD dwDDFX;                                   /* FX operations */
1989     DWORD dwROP;                                    /* Win32 raster operations */
1990     DWORD dwDDROP;                                  /* Raster operations new for DirectDraw */
1991     DWORD dwRotationAngle;                          /* Rotation angle for blt */
1992     DWORD dwZBufferOpCode;                          /* ZBuffer compares */
1993     DWORD dwZBufferLow;                             /* Low limit of Z buffer */
1994     DWORD dwZBufferHigh;                            /* High limit of Z buffer */
1995     DWORD dwZBufferBaseDest;                        /* Destination base value */
1996     DWORD dwZDestConstBitDepth;                     /* Bit depth used to specify Z constant for destination */
1997     union
1998     {
1999         DWORD dwZDestConst;                         /* Constant to use as Z buffer for dest */
2000         struct IWineD3DSurface *lpDDSZBufferDest;   /* Surface to use as Z buffer for dest */
2001     } DUMMYUNIONNAME1;
2002     DWORD dwZSrcConstBitDepth;                      /* Bit depth used to specify Z constant for source */
2003     union
2004     {
2005         DWORD dwZSrcConst;                          /* Constant to use as Z buffer for src */
2006         struct IWineD3DSurface *lpDDSZBufferSrc;    /* Surface to use as Z buffer for src */
2007     } DUMMYUNIONNAME2;
2008     DWORD dwAlphaEdgeBlendBitDepth;                 /* Bit depth used to specify constant for alpha edge blend */
2009     DWORD dwAlphaEdgeBlend;                         /* Alpha for edge blending */
2010     DWORD dwReserved;
2011     DWORD dwAlphaDestConstBitDepth;                 /* Bit depth used to specify alpha constant for destination */
2012     union
2013     {
2014         DWORD dwAlphaDestConst;                     /* Constant to use as Alpha Channel */
2015         struct IWineD3DSurface *lpDDSAlphaDest;     /* Surface to use as Alpha Channel */
2016     } DUMMYUNIONNAME3;
2017     DWORD dwAlphaSrcConstBitDepth;                  /* Bit depth used to specify alpha constant for source */
2018     union
2019     {
2020         DWORD dwAlphaSrcConst;                      /* Constant to use as Alpha Channel */
2021         struct IWineD3DSurface *lpDDSAlphaSrc;      /* Surface to use as Alpha Channel */
2022     } DUMMYUNIONNAME4;
2023     union
2024     {
2025         DWORD dwFillColor;                          /* color in RGB or Palettized */
2026         DWORD dwFillDepth;                          /* depth value for z-buffer */
2027         DWORD dwFillPixel;                          /* pixel val for RGBA or RGBZ */
2028         struct IWineD3DSurface *lpDDSPattern;       /* Surface to use as pattern */
2029     } DUMMYUNIONNAME5;
2030     WINEDDCOLORKEY ddckDestColorkey;                /* DestColorkey override */
2031     WINEDDCOLORKEY ddckSrcColorkey;                 /* SrcColorkey override */
2032 } WINEDDBLTFX,*LPWINEDDBLTFX;
2033
2034 typedef struct _WINEDDOVERLAYFX
2035 {
2036     DWORD dwSize;                                   /* size of structure */
2037     DWORD dwAlphaEdgeBlendBitDepth;                 /* Bit depth used to specify constant for alpha edge blend */
2038     DWORD dwAlphaEdgeBlend;                         /* Constant to use as alpha for edge blend */
2039     DWORD dwReserved;
2040     DWORD dwAlphaDestConstBitDepth;                 /* Bit depth used to specify alpha constant for destination */
2041     union
2042     {
2043         DWORD dwAlphaDestConst;                     /* Constant to use as alpha channel for dest */
2044         struct IWineD3DSurface *lpDDSAlphaDest;     /* Surface to use as alpha channel for dest */
2045     } DUMMYUNIONNAME1;
2046     DWORD dwAlphaSrcConstBitDepth;                  /* Bit depth used to specify alpha constant for source */
2047     union
2048     {
2049         DWORD dwAlphaSrcConst;                      /* Constant to use as alpha channel for src */
2050         struct IWineD3DSurface *lpDDSAlphaSrc;      /* Surface to use as alpha channel for src */
2051     } DUMMYUNIONNAME2;
2052     WINEDDCOLORKEY dckDestColorkey;                 /* DestColorkey override */
2053     WINEDDCOLORKEY dckSrcColorkey;                  /* SrcColorkey override */
2054     DWORD dwDDFX;                                   /* Overlay FX */
2055     DWORD dwFlags;                                  /* flags */
2056 } WINEDDOVERLAYFX;
2057
2058 struct wined3d_buffer_desc
2059 {
2060     UINT byte_width;
2061     DWORD usage;
2062     UINT bind_flags;
2063     UINT cpu_access_flags;
2064     UINT misc_flags;
2065 };
2066
2067 struct wined3d_shader_signature_element
2068 {
2069     const char *semantic_name;
2070     UINT semantic_idx;
2071     enum wined3d_sysval_semantic sysval_semantic;
2072     DWORD component_type;
2073     UINT register_idx;
2074     DWORD mask;
2075 };
2076
2077 struct wined3d_shader_signature
2078 {
2079     UINT element_count;
2080     struct wined3d_shader_signature_element *elements;
2081     char *string_data;
2082 };
2083
2084 struct wined3d_parent_ops
2085 {
2086     void (__stdcall *wined3d_object_destroyed)(void *parent);
2087 };
2088
2089 interface IWineD3DSurface;
2090 interface IWineD3DVolume;
2091 interface IWineD3DSwapChain;
2092 interface IWineD3DDevice;
2093 struct wined3d;
2094 struct wined3d_buffer;
2095 struct wined3d_clipper;
2096 struct wined3d_palette;
2097 struct wined3d_query;
2098 struct wined3d_resource;
2099 struct wined3d_stateblock;
2100 struct wined3d_vertex_declaration;
2101
2102 [
2103     object,
2104     local,
2105     uuid(aeb62dfc-bdcb-4f02-9519-1eeea00c15cd)
2106 ]
2107 interface IWineD3DDeviceParent : IUnknown
2108 {
2109     void WineD3DDeviceCreated(
2110         [in] IWineD3DDevice *device
2111     );
2112
2113     HRESULT CreateSurface(
2114         [in] void *container_parent,
2115         [in] UINT width,
2116         [in] UINT height,
2117         [in] enum wined3d_format_id format_id,
2118         [in] DWORD usage,
2119         [in] WINED3DPOOL pool,
2120         [in] UINT level,
2121         [in] WINED3DCUBEMAP_FACES face,
2122         [out] IWineD3DSurface **surface
2123     );
2124
2125     HRESULT CreateRenderTarget(
2126         [in] void *container_parent,
2127         [in] UINT width,
2128         [in] UINT height,
2129         [in] enum wined3d_format_id format_id,
2130         [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2131         [in] DWORD multisample_quality,
2132         [in] BOOL lockable,
2133         [out] IWineD3DSurface **surface
2134     );
2135
2136     HRESULT CreateDepthStencilSurface(
2137         [in] UINT width,
2138         [in] UINT height,
2139         [in] enum wined3d_format_id format_id,
2140         [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2141         [in] DWORD multisample_quality,
2142         [in] BOOL discard,
2143         [out] IWineD3DSurface **surface
2144     );
2145
2146     HRESULT CreateVolume(
2147         [in] void *container_parent,
2148         [in] UINT width,
2149         [in] UINT height,
2150         [in] UINT depth,
2151         [in] enum wined3d_format_id format_id,
2152         [in] WINED3DPOOL pool,
2153         [in] DWORD usage,
2154         [out] IWineD3DVolume **volume
2155     );
2156
2157     HRESULT CreateSwapChain(
2158         [in, out] WINED3DPRESENT_PARAMETERS *present_parameters,
2159         [out] IWineD3DSwapChain **swapchain
2160     );
2161 }
2162 typedef ULONG (__stdcall *D3DCB_DESTROYSWAPCHAINFN)(IWineD3DSwapChain *pSwapChain);
2163 typedef HRESULT (__stdcall *D3DCB_ENUMRESOURCES)(struct wined3d_resource *resource, void *pData);
2164
2165 [
2166     object,
2167     local,
2168     uuid(46799311-8e0e-40ce-b2ec-ddb99f18fcb4)
2169 ]
2170 interface IWineD3DBase : IUnknown
2171 {
2172     void *GetParent(
2173     );
2174 }
2175
2176 [
2177     object,
2178     local,
2179     uuid(1f3bfb34-6f30-11d9-c687-00046142c14f)
2180 ]
2181 interface IWineD3DResource : IWineD3DBase
2182 {
2183     HRESULT SetPrivateData(
2184         [in] REFGUID guid,
2185         [in] const void *data,
2186         [in] DWORD data_size,
2187         [in] DWORD flags
2188     );
2189     HRESULT GetPrivateData(
2190         [in] REFGUID guid,
2191         [out] void *data,
2192         [in, out] DWORD *data_size
2193     );
2194     HRESULT FreePrivateData(
2195         [in] REFGUID guid
2196     );
2197     DWORD SetPriority(
2198         [in] DWORD new_priority
2199     );
2200     DWORD GetPriority(
2201     );
2202     void PreLoad(
2203     );
2204     WINED3DRESOURCETYPE GetType(
2205     );
2206 }
2207
2208 [
2209     object,
2210     local,
2211     uuid(f7d8abf4-fb93-43e4-9c96-4618cf9b3cbc)
2212 ]
2213 interface IWineD3DRendertargetView : IWineD3DBase
2214 {
2215     HRESULT GetResource(
2216         [out] struct wined3d_resource **resource
2217     );
2218 }
2219
2220 [
2221     object,
2222     local,
2223     uuid(37cd5526-6f30-11d9-c687-00046142c14f)
2224 ]
2225 interface IWineD3DSurface : IWineD3DResource
2226 {
2227     struct wined3d_resource *GetResource(
2228     );
2229     HRESULT Map(
2230         [out] WINED3DLOCKED_RECT *locked_rect,
2231         [in] const RECT *rect,
2232         [in] DWORD flags
2233     );
2234     HRESULT Unmap(
2235     );
2236     HRESULT GetDC(
2237         [out] HDC *dc
2238     );
2239     HRESULT ReleaseDC(
2240         [in] HDC dc
2241     );
2242     HRESULT Flip(
2243         [in] IWineD3DSurface *override,
2244         [in] DWORD flags
2245     );
2246     HRESULT Blt(
2247         [in] const RECT *dst_rect,
2248         [in] IWineD3DSurface *src_surface,
2249         [in] const RECT *src_rect,
2250         [in] DWORD flags,
2251         [in] const WINEDDBLTFX *blt_fx,
2252         [in] WINED3DTEXTUREFILTERTYPE filter
2253     );
2254     HRESULT GetBltStatus(
2255         [in] DWORD flags
2256     );
2257     HRESULT GetFlipStatus(
2258         [in] DWORD flags
2259     );
2260     HRESULT IsLost(
2261     );
2262     HRESULT Restore(
2263     );
2264     HRESULT BltFast(
2265         [in] DWORD dst_x,
2266         [in] DWORD dst_y,
2267         [in] IWineD3DSurface *src_surface,
2268         [in] const RECT *src_rect,
2269         [in] DWORD trans
2270     );
2271     HRESULT GetPalette(
2272         [out] struct wined3d_palette **palette
2273     );
2274     HRESULT SetPalette(
2275         [in] struct wined3d_palette *palette
2276     );
2277     HRESULT SetColorKey(
2278         [in] DWORD flags,
2279         [in] const WINEDDCOLORKEY *color_key
2280     );
2281     DWORD GetPitch(
2282     );
2283     HRESULT SetMem(
2284         [in] void *mem
2285     );
2286     HRESULT SetOverlayPosition(
2287         [in] LONG x,
2288         [in] LONG y
2289     );
2290     HRESULT GetOverlayPosition(
2291         [out] LONG *x,
2292         [out] LONG *y
2293     );
2294     HRESULT UpdateOverlayZOrder(
2295         [in] DWORD flags,
2296         [in] IWineD3DSurface *ref
2297     );
2298     HRESULT UpdateOverlay(
2299         [in] const RECT *src_rect,
2300         [in] IWineD3DSurface *dst_surface,
2301         [in] const RECT *dst_rect,
2302         [in] DWORD flags,
2303         [in] const WINEDDOVERLAYFX *fx
2304     );
2305     HRESULT SetClipper(
2306         [in] struct wined3d_clipper *clipper
2307     );
2308     HRESULT GetClipper(
2309         [out] struct wined3d_clipper **clipper
2310     );
2311     HRESULT SetFormat(
2312         [in] enum wined3d_format_id format_id
2313     );
2314     HRESULT PrivateSetup(
2315     );
2316     WINED3DSURFTYPE GetImplType(
2317     );
2318 }
2319
2320 [
2321     object,
2322     local,
2323     uuid(24769ed8-6f30-11d9-c687-00046142c14f)
2324 ]
2325 interface IWineD3DVolume : IWineD3DResource
2326 {
2327     struct wined3d_resource *GetResource(
2328     );
2329     HRESULT Map(
2330         [out] WINED3DLOCKED_BOX *locked_box,
2331         [in] const WINED3DBOX *box,
2332         [in] DWORD flags
2333     );
2334     HRESULT Unmap(
2335     );
2336 }
2337
2338 [
2339     object,
2340     local,
2341     uuid(3c2aebf6-6f30-11d9-c687-00046142c14f)
2342 ]
2343 interface IWineD3DBaseTexture : IWineD3DResource
2344 {
2345     DWORD SetLOD(
2346         [in] DWORD new_lod
2347     );
2348     DWORD GetLOD(
2349     );
2350     DWORD GetLevelCount(
2351     );
2352     HRESULT SetAutoGenFilterType(
2353         WINED3DTEXTUREFILTERTYPE filter_type
2354     );
2355     WINED3DTEXTUREFILTERTYPE GetAutoGenFilterType(
2356     );
2357     void GenerateMipSubLevels(
2358     );
2359     BOOL IsCondNP2(
2360     );
2361     struct wined3d_resource *GetSubResource(
2362         [in] UINT sub_resource_idx
2363     );
2364     HRESULT AddDirtyRegion(
2365         [in] UINT layer,
2366         [in] const WINED3DBOX *dirty_region
2367     );
2368 }
2369
2370 [
2371     object,
2372     local,
2373     uuid(41752900-6f30-11d9-c687-00046142c14f)
2374 ]
2375 interface IWineD3DCubeTexture : IWineD3DBaseTexture
2376 {
2377 }
2378
2379 [
2380     object,
2381     local,
2382     uuid(34d01b10-6f30-11d9-c687-00046142c14f)
2383 ]
2384 interface IWineD3DSwapChain : IWineD3DBase
2385 {
2386     void Destroy(
2387     );
2388     HRESULT GetDevice(
2389         [out] IWineD3DDevice **device
2390     );
2391     HRESULT Present(
2392         [in] const RECT *src_rect,
2393         [in] const RECT *dst_rect,
2394         [in] HWND dst_window_override,
2395         [in] const RGNDATA *dirty_region,
2396         [in] DWORD flags
2397     );
2398     HRESULT SetDestWindowOverride(
2399         [in] HWND window
2400     );
2401     HRESULT GetFrontBufferData(
2402         [in] IWineD3DSurface *dst_surface
2403     );
2404     HRESULT GetBackBuffer(
2405         [in] UINT backbuffer_idx,
2406         [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
2407         [out] IWineD3DSurface **backbuffer
2408     );
2409     HRESULT GetRasterStatus(
2410         [out] WINED3DRASTER_STATUS *raster_status
2411     );
2412     HRESULT GetDisplayMode(
2413         [out] WINED3DDISPLAYMODE *mode
2414     );
2415     HRESULT GetPresentParameters(
2416         [out] WINED3DPRESENT_PARAMETERS *present_parameters
2417     );
2418     HRESULT SetGammaRamp(
2419         [in] DWORD flags,
2420         [in] const WINED3DGAMMARAMP *ramp
2421     );
2422     HRESULT GetGammaRamp(
2423         [out] WINED3DGAMMARAMP *ramp
2424     );
2425 }
2426
2427 [
2428     object,
2429     local,
2430     uuid(eac93065-a4df-446f-86a1-9ef2bca40a3c)
2431 ]
2432 interface IWineD3DBaseShader : IWineD3DBase
2433 {
2434     HRESULT GetFunction(
2435         [out] void *data,
2436         [in, out] UINT *data_size
2437     );
2438 }
2439
2440 [
2441     object,
2442     local,
2443     uuid(7f7a2b60-6f30-11d9-c687-00046142c14f)
2444 ]
2445 interface IWineD3DVertexShader : IWineD3DBaseShader
2446 {
2447     HRESULT SetLocalConstantsF(
2448         [in] UINT start_idx,
2449         [in] const float *src_data,
2450         [in] UINT vector4f_count
2451     );
2452 }
2453
2454 [
2455     object,
2456     local,
2457     uuid(8276c113-388b-49d1-ad8b-c9dd8bcbabcd)
2458 ]
2459 interface IWineD3DGeometryShader : IWineD3DBaseShader
2460 {
2461 }
2462
2463 [
2464     object,
2465     local,
2466     uuid(818503da-6f30-11d9-c687-00046142c14f)
2467 ]
2468 interface IWineD3DPixelShader : IWineD3DBaseShader
2469 {
2470 }
2471
2472 [
2473     object,
2474     local,
2475     uuid(6d10a2ce-09d0-4a53-a427-11388f9f8ca5)
2476 ]
2477 interface IWineD3DDevice : IUnknown
2478 {
2479     HRESULT CreateBuffer(
2480         [in] struct wined3d_buffer_desc *desc,
2481         [in] const void *data,
2482         [in] void *parent,
2483         [in] const struct wined3d_parent_ops *parent_ops,
2484         [out] struct wined3d_buffer **buffer
2485     );
2486     HRESULT CreateVertexBuffer(
2487         [in] UINT length,
2488         [in] DWORD usage,
2489         [in] WINED3DPOOL pool,
2490         [in] void *parent,
2491         [in] const struct wined3d_parent_ops *parent_ops,
2492         [out] struct wined3d_buffer **vertex_buffer
2493     );
2494     HRESULT CreateIndexBuffer(
2495         [in] UINT length,
2496         [in] DWORD usage,
2497         [in] WINED3DPOOL pool,
2498         [in] void *parent,
2499         [in] const struct wined3d_parent_ops *parent_ops,
2500         [out] struct wined3d_buffer **index_buffer
2501     );
2502     HRESULT CreateStateBlock(
2503         [in] WINED3DSTATEBLOCKTYPE type,
2504         [out] struct wined3d_stateblock **stateblock
2505     );
2506     HRESULT CreateSurface(
2507         [in] UINT width,
2508         [in] UINT height,
2509         [in] enum wined3d_format_id format_id,
2510         [in] BOOL lockable,
2511         [in] BOOL discard,
2512         [in] UINT level,
2513         [in] DWORD usage,
2514         [in] WINED3DPOOL pool,
2515         [in] WINED3DMULTISAMPLE_TYPE multisample_type,
2516         [in] DWORD multisample_quality,
2517         [in] WINED3DSURFTYPE surface_type,
2518         [in] void *parent,
2519         [in] const struct wined3d_parent_ops *parent_ops,
2520         [out] IWineD3DSurface **surface
2521     );
2522     HRESULT CreateRendertargetView(
2523         [in] struct wined3d_resource *resource,
2524         [in] void *parent,
2525         [out] IWineD3DRendertargetView **rendertarget_view
2526     );
2527     HRESULT CreateTexture(
2528         [in] UINT width,
2529         [in] UINT height,
2530         [in] UINT levels,
2531         [in] DWORD usage,
2532         [in] enum wined3d_format_id format_id,
2533         [in] WINED3DPOOL pool,
2534         [in] void *parent,
2535         [in] const struct wined3d_parent_ops *parent_ops,
2536         [out] IWineD3DBaseTexture **texture
2537     );
2538     HRESULT CreateVolumeTexture(
2539         [in] UINT width,
2540         [in] UINT height,
2541         [in] UINT depth,
2542         [in] UINT levels,
2543         [in] DWORD usage,
2544         [in] enum wined3d_format_id format_id,
2545         [in] WINED3DPOOL pool,
2546         [in] void *parent,
2547         [in] const struct wined3d_parent_ops *parent_ops,
2548         [out] IWineD3DBaseTexture **texture
2549     );
2550     HRESULT CreateVolume(
2551         [in] UINT width,
2552         [in] UINT height,
2553         [in] UINT depth,
2554         [in] DWORD usage,
2555         [in] enum wined3d_format_id format_id,
2556         [in] WINED3DPOOL pool,
2557         [in] void *parent,
2558         [in] const struct wined3d_parent_ops *parent_ops,
2559         [out] IWineD3DVolume **volume
2560     );
2561     HRESULT CreateCubeTexture(
2562         [in] UINT edge_length,
2563         [in] UINT levels,
2564         [in] DWORD usage,
2565         [in] enum wined3d_format_id format_id,
2566         [in] WINED3DPOOL pool,
2567         [in] void *parent,
2568         [in] const struct wined3d_parent_ops *parent_ops,
2569         [out] IWineD3DCubeTexture **texture
2570     );
2571     HRESULT CreateQuery(
2572         [in] WINED3DQUERYTYPE type,
2573         [out] struct wined3d_query **query
2574     );
2575     HRESULT CreateSwapChain(
2576         [in] WINED3DPRESENT_PARAMETERS *present_parameters,
2577         [in] WINED3DSURFTYPE surface_type,
2578         [in] void *parent,
2579         [out] IWineD3DSwapChain **swapchain
2580     );
2581     HRESULT CreateVertexDeclaration(
2582         [in] const WINED3DVERTEXELEMENT *elements,
2583         [in] UINT element_count,
2584         [in] void *parent,
2585         [in] const struct wined3d_parent_ops *parent_ops,
2586         [out] struct wined3d_vertex_declaration **declaration
2587     );
2588     HRESULT CreateVertexDeclarationFromFVF(
2589         [in] DWORD fvf,
2590         [in] void *parent,
2591         [in] const struct wined3d_parent_ops *parent_ops,
2592         [out] struct wined3d_vertex_declaration **declaration
2593     );
2594     HRESULT CreateVertexShader(
2595         [in] const DWORD *function,
2596         [in] const struct wined3d_shader_signature *output_signature,
2597         [in] void *parent,
2598         [in] const struct wined3d_parent_ops *parent_ops,
2599         [out] IWineD3DVertexShader **shader
2600     );
2601     HRESULT CreateGeometryShader(
2602         [in] const DWORD *byte_code,
2603         [in] const struct wined3d_shader_signature *output_signature,
2604         [in] void *parent,
2605         [in] const struct wined3d_parent_ops *parent_ops,
2606         [out] IWineD3DGeometryShader **shader
2607     );
2608     HRESULT CreatePixelShader(
2609         [in] const DWORD *function,
2610         [in] const struct wined3d_shader_signature *output_signature,
2611         [in] void *parent,
2612         [in] const struct wined3d_parent_ops *parent_ops,
2613         [out] IWineD3DPixelShader **shader
2614     );
2615     HRESULT CreatePalette(
2616         [in] DWORD flags,
2617         [in] const PALETTEENTRY *palette_entry,
2618         [in] void *parent,
2619         [out] struct wined3d_palette **palette
2620     );
2621     HRESULT Init3D(
2622         [in] WINED3DPRESENT_PARAMETERS *present_parameters
2623     );
2624     HRESULT InitGDI(
2625         [in] WINED3DPRESENT_PARAMETERS *present_parameters
2626     );
2627     HRESULT Uninit3D(
2628         [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2629     );
2630     HRESULT UninitGDI(
2631         [in] D3DCB_DESTROYSWAPCHAINFN destroy_swapchain_callback
2632     );
2633     void SetMultithreaded(
2634     );
2635     HRESULT EvictManagedResources(
2636     );
2637     UINT GetAvailableTextureMem(
2638     );
2639     HRESULT GetBackBuffer(
2640         [in] UINT swapchain_idx,
2641         [in] UINT backbuffer_idx,
2642         [in] WINED3DBACKBUFFER_TYPE backbuffer_type,
2643         [out] IWineD3DSurface **backbuffer
2644     );
2645     HRESULT GetCreationParameters(
2646         [out] WINED3DDEVICE_CREATION_PARAMETERS *creation_parameters
2647     );
2648     HRESULT GetDeviceCaps(
2649         [out] WINED3DCAPS *caps
2650     );
2651     HRESULT GetDirect3D(
2652         [out] struct wined3d **d3d
2653     );
2654     HRESULT GetDisplayMode(
2655         [in] UINT swapchain_idx,
2656         [out] WINED3DDISPLAYMODE *mode
2657     );
2658     HRESULT SetDisplayMode(
2659         [in] UINT swapchain_idx,
2660         [in] const WINED3DDISPLAYMODE *mode
2661     );
2662     UINT GetNumberOfSwapChains(
2663     );
2664     HRESULT GetRasterStatus(
2665         [in] UINT swapchain_idx,
2666         [out] WINED3DRASTER_STATUS *raster_status
2667     );
2668     HRESULT GetSwapChain(
2669         [in] UINT swapchain_idx,
2670         [out] IWineD3DSwapChain **swapchain
2671     );
2672     HRESULT Reset(
2673         [in] WINED3DPRESENT_PARAMETERS *present_parameters
2674     );
2675     HRESULT SetDialogBoxMode(
2676         [in] BOOL enable_dialogs
2677     );
2678     HRESULT SetCursorProperties(
2679         [in] UINT x_hotspot,
2680         [in] UINT y_hotspot,
2681         [in] IWineD3DSurface *cursor_surface
2682     );
2683     void SetCursorPosition(
2684         [in] int x_screen_space,
2685         [in] int y_screen_space,
2686         [in] DWORD flags
2687     );
2688     BOOL ShowCursor(
2689         [in] BOOL show
2690     );
2691     HRESULT SetClipPlane(
2692         [in] DWORD plane_idx,
2693         [in] const float *plane
2694     );
2695     HRESULT GetClipPlane(
2696         [in] DWORD plane_idx,
2697         [out] float *plane
2698     );
2699     HRESULT SetClipStatus(
2700         [in] const WINED3DCLIPSTATUS *clip_status
2701     );
2702     HRESULT GetClipStatus(
2703         [out] WINED3DCLIPSTATUS *clip_status
2704     );
2705     HRESULT SetCurrentTexturePalette(
2706         [in] UINT palette_number
2707     );
2708     HRESULT GetCurrentTexturePalette(
2709         [out] UINT *palette_number
2710     );
2711     HRESULT SetDepthStencilSurface(
2712         [in] IWineD3DSurface *depth_stencil
2713     );
2714     HRESULT GetDepthStencilSurface(
2715         [out] IWineD3DSurface **depth_stencil
2716     );
2717     void SetGammaRamp(
2718         [in] UINT swapchain_idx,
2719         [in] DWORD flags,
2720         [in] const WINED3DGAMMARAMP *ramp
2721     );
2722     void GetGammaRamp(
2723         [in] UINT swapchain_idx,
2724         [out] WINED3DGAMMARAMP *ramp
2725     );
2726     HRESULT SetIndexBuffer(
2727         [in] struct wined3d_buffer *index_buffer,
2728         [in] enum wined3d_format_id format_id
2729     );
2730     HRESULT GetIndexBuffer(
2731         [out] struct wined3d_buffer **index_buffer
2732     );
2733     HRESULT SetBaseVertexIndex(
2734         [in] INT base_index
2735     );
2736     HRESULT GetBaseVertexIndex(
2737         [out] INT *base_index
2738     );
2739     HRESULT SetLight(
2740         [in] DWORD light_idx,
2741         [in] const WINED3DLIGHT *light
2742     );
2743     HRESULT GetLight(
2744         [in] DWORD light_idx,
2745         [out] WINED3DLIGHT *light
2746     );
2747     HRESULT SetLightEnable(
2748         [in] DWORD light_idx,
2749         [in] BOOL enable
2750     );
2751     HRESULT GetLightEnable(
2752         [in] DWORD light_idx,
2753         [out] BOOL *enable
2754     );
2755     HRESULT SetMaterial(
2756         [in] const WINED3DMATERIAL *material
2757     );
2758     HRESULT GetMaterial(
2759         [out] WINED3DMATERIAL *material
2760     );
2761     HRESULT SetNPatchMode(
2762         [in] float segments
2763     );
2764     float GetNPatchMode(
2765     );
2766     HRESULT SetPaletteEntries(
2767         [in] UINT palette_number,
2768         [in] const PALETTEENTRY *entries
2769     );
2770     HRESULT GetPaletteEntries(
2771         [in] UINT palette_number,
2772         [out] PALETTEENTRY *entries
2773     );
2774     HRESULT SetPixelShader(
2775         [in] IWineD3DPixelShader *shader
2776     );
2777     IWineD3DPixelShader *GetPixelShader(
2778     );
2779     HRESULT SetPixelShaderConstantB(
2780         [in] UINT start_register,
2781         [in] const BOOL *constants,
2782         [in] UINT bool_count
2783     );
2784     HRESULT GetPixelShaderConstantB(
2785         [in] UINT start_register,
2786         [out] BOOL *constants,
2787         [in] UINT bool_count
2788     );
2789     HRESULT SetPixelShaderConstantI(
2790         [in] UINT start_register,
2791         [in] const int *constants,
2792         [in] UINT vector4i_count
2793     );
2794     HRESULT GetPixelShaderConstantI(
2795         [in] UINT start_register,
2796         [out] int *constants,
2797         [in] UINT vector4i_count
2798     );
2799     HRESULT SetPixelShaderConstantF(
2800         [in] UINT start_register,
2801         [in] const float *constants,
2802         [in] UINT vector4f_count
2803     );
2804     HRESULT GetPixelShaderConstantF(
2805         [in] UINT start_register,
2806         [out] float *constants,
2807         [in] UINT vector4f_count
2808     );
2809     HRESULT SetRenderState(
2810         [in] WINED3DRENDERSTATETYPE state,
2811         [in] DWORD value
2812     );
2813     HRESULT GetRenderState(
2814         [in] WINED3DRENDERSTATETYPE state,
2815         [out] DWORD *value
2816     );
2817     HRESULT SetRenderTarget(
2818         [in] DWORD render_target_idx,
2819         [in] IWineD3DSurface *render_target,
2820         [in] BOOL set_viewport
2821     );
2822     HRESULT GetRenderTarget(
2823         [in] DWORD render_target_idx,
2824         [out] IWineD3DSurface **render_target
2825     );
2826     HRESULT SetSamplerState(
2827         [in] DWORD sampler_idx,
2828         [in] WINED3DSAMPLERSTATETYPE state,
2829         [in] DWORD value
2830     );
2831     HRESULT GetSamplerState(
2832         [in] DWORD sampler_idx,
2833         [in] WINED3DSAMPLERSTATETYPE state,
2834         [out] DWORD *value
2835     );
2836     HRESULT SetScissorRect(
2837         [in] const RECT *rect
2838     );
2839     HRESULT GetScissorRect(
2840         [out] RECT *rect
2841     );
2842     HRESULT SetSoftwareVertexProcessing(
2843         [in] BOOL software
2844     );
2845     BOOL GetSoftwareVertexProcessing(
2846     );
2847     HRESULT SetStreamSource(
2848         [in] UINT stream_idx,
2849         [in] struct wined3d_buffer *buffer,
2850         [in] UINT offset,
2851         [in] UINT stride
2852     );
2853     HRESULT GetStreamSource(
2854         [in] UINT stream_idx,
2855         [out] struct wined3d_buffer **buffer,
2856         [out] UINT *offset,
2857         [out] UINT *stride
2858     );
2859     HRESULT SetStreamSourceFreq(
2860         [in] UINT stream_idx,
2861         [in] UINT divider
2862     );
2863     HRESULT GetStreamSourceFreq(
2864         [in] UINT stream_idx,
2865         [out] UINT *divider
2866     );
2867     HRESULT SetTexture(
2868         [in] DWORD stage,
2869         [in] IWineD3DBaseTexture *texture
2870     );
2871     HRESULT GetTexture(
2872         [in] DWORD stage,
2873         [out] IWineD3DBaseTexture **texture
2874     );
2875     HRESULT SetTextureStageState(
2876         [in] DWORD stage,
2877         [in] WINED3DTEXTURESTAGESTATETYPE state,
2878         [in] DWORD value
2879     );
2880     HRESULT GetTextureStageState(
2881         [in] DWORD stage,
2882         [in] WINED3DTEXTURESTAGESTATETYPE state,
2883         [out] DWORD *value
2884     );
2885     HRESULT SetTransform(
2886         [in] WINED3DTRANSFORMSTATETYPE state,
2887         [in] const WINED3DMATRIX *matrix
2888     );
2889     HRESULT GetTransform(
2890         [in] WINED3DTRANSFORMSTATETYPE state,
2891         [out] WINED3DMATRIX *matrix
2892     );
2893     HRESULT SetVertexDeclaration(
2894         [in] struct wined3d_vertex_declaration *declaration
2895     );
2896     HRESULT GetVertexDeclaration(
2897         [out] struct wined3d_vertex_declaration **declaration
2898     );
2899     HRESULT SetVertexShader(
2900         [in] IWineD3DVertexShader *shader
2901     );
2902     IWineD3DVertexShader *GetVertexShader(
2903     );
2904     HRESULT SetVertexShaderConstantB(
2905         [in] UINT start_register,
2906         [in] const BOOL *constants,
2907         [in] UINT bool_count
2908     );
2909     HRESULT GetVertexShaderConstantB(
2910         [in] UINT start_register,
2911         [out] BOOL *constants,
2912         [in] UINT bool_count
2913     );
2914     HRESULT SetVertexShaderConstantI(
2915         [in] UINT start_register,
2916         [in] const int *constants,
2917         [in] UINT vector4i_count
2918     );
2919     HRESULT GetVertexShaderConstantI(
2920         [in] UINT start_register,
2921         [out] int *constants,
2922         [in] UINT vector4i_count
2923     );
2924     HRESULT SetVertexShaderConstantF(
2925         [in] UINT start_register,
2926         [in] const float *constants,
2927         [in] UINT vector4f_count
2928     );
2929     HRESULT GetVertexShaderConstantF(
2930         [in] UINT start_register,
2931         [out] float *constants,
2932         [in] UINT vector4f_count
2933     );
2934     HRESULT SetViewport(
2935         [in] const WINED3DVIEWPORT *viewport
2936     );
2937     HRESULT GetViewport(
2938         [out] WINED3DVIEWPORT *viewport
2939     );
2940     HRESULT MultiplyTransform(
2941         [in] WINED3DTRANSFORMSTATETYPE state,
2942         [in] const WINED3DMATRIX *matrix
2943     );
2944     HRESULT ValidateDevice(
2945         [out] DWORD *num_passes
2946     );
2947     HRESULT ProcessVertices(
2948         [in] UINT src_start_idx,
2949         [in] UINT dst_idx,
2950         [in] UINT vertex_count,
2951         [in] struct wined3d_buffer *dst_buffer,
2952         [in] struct wined3d_vertex_declaration *declaration,
2953         [in] DWORD flags,
2954         [in] DWORD DestFVF
2955     );
2956     HRESULT BeginStateBlock(
2957     );
2958     HRESULT EndStateBlock(
2959         [out] struct wined3d_stateblock **stateblock
2960     );
2961     HRESULT BeginScene(
2962     );
2963     HRESULT EndScene(
2964     );
2965     HRESULT Present(
2966         [in] const RECT *src_rect,
2967         [in] const RECT *dst_rect,
2968         [in] HWND dst_window_override,
2969         [in] const RGNDATA *dirty_region
2970     );
2971     HRESULT Clear(
2972         [in] DWORD rect_count,
2973         [in] const RECT *rects,
2974         [in] DWORD flags,
2975         [in] WINED3DCOLOR color,
2976         [in] float z,
2977         [in] DWORD stencil
2978     );
2979     void ClearRendertargetView(
2980         [in] IWineD3DRendertargetView *rendertarget_view,
2981         [in] const WINED3DCOLORVALUE *color
2982     );
2983     void SetPrimitiveType(
2984         [in] WINED3DPRIMITIVETYPE primitive_topology
2985     );
2986     void GetPrimitiveType(
2987         [out] WINED3DPRIMITIVETYPE *primitive_topology
2988     );
2989     HRESULT DrawPrimitive(
2990         [in] UINT start_vertex,
2991         [in] UINT vertex_count
2992     );
2993     HRESULT DrawIndexedPrimitive(
2994         [in] UINT start_idx,
2995         [in] UINT index_count
2996     );
2997     HRESULT DrawPrimitiveUP(
2998         [in] UINT vertex_count,
2999         [in] const void *stream_data,
3000         [in] UINT stream_stride
3001     );
3002     HRESULT DrawIndexedPrimitiveUP(
3003         [in] UINT index_count,
3004         [in] const void *index_data,
3005         [in] enum wined3d_format_id index_data_format_id,
3006         [in] const void *stream_data,
3007         [in] UINT stream_stride
3008     );
3009     HRESULT DrawPrimitiveStrided(
3010         [in] UINT vertex_count,
3011         [in] const WineDirect3DVertexStridedData *strided_data
3012     );
3013     HRESULT DrawIndexedPrimitiveStrided(
3014         [in] UINT index_count,
3015         [in] const WineDirect3DVertexStridedData *strided_data,
3016         [in] UINT vertex_count,
3017         [in] const void *index_data,
3018         [in] enum wined3d_format_id index_data_format_id
3019     );
3020     HRESULT DrawRectPatch(
3021         [in] UINT handle,
3022         [in] const float *num_segs,
3023         [in] const WINED3DRECTPATCH_INFO *rect_patch_info
3024     );
3025     HRESULT DrawTriPatch(
3026         [in] UINT handle,
3027         [in] const float *num_segs,
3028         [in] const WINED3DTRIPATCH_INFO *tri_patch_info
3029     );
3030     HRESULT DeletePatch(
3031         [in] UINT handle
3032     );
3033     HRESULT ColorFill(
3034         [in] IWineD3DSurface *surface,
3035         [in] const RECT *rect,
3036         [in] const WINED3DCOLORVALUE *color
3037     );
3038     HRESULT UpdateTexture(
3039         [in] IWineD3DBaseTexture *src_texture,
3040         [in] IWineD3DBaseTexture *dst_texture
3041     );
3042     HRESULT UpdateSurface(
3043         [in] IWineD3DSurface *src_surface,
3044         [in] const RECT *src_rect,
3045         [in] IWineD3DSurface *dst_surface,
3046         [in] const POINT *dst_point
3047     );
3048     HRESULT GetFrontBufferData(
3049         [in] UINT swapchain_idx,
3050         [in] IWineD3DSurface *dst_surface
3051     );
3052     HRESULT EnumResources(
3053         [in] D3DCB_ENUMRESOURCES callback,
3054         [in] void *data
3055     );
3056     HRESULT GetSurfaceFromDC(
3057         [in] HDC dc,
3058         [out] IWineD3DSurface **surface
3059     );
3060     HRESULT AcquireFocusWindow(
3061         [in] HWND window
3062     );
3063     void ReleaseFocusWindow(
3064     );
3065     void SetupFullscreenWindow(
3066         [in] HWND window,
3067         [in] UINT w,
3068         [in] UINT h
3069     );
3070     void RestoreFullscreenWindow(
3071         [in] HWND window
3072     );
3073 }
3074
3075 void __stdcall wined3d_mutex_lock(void);
3076 void __stdcall wined3d_mutex_unlock(void);
3077
3078 HRESULT __cdecl wined3d_check_depth_stencil_match(const struct wined3d *wined3d, UINT adapter_idx,
3079         WINED3DDEVTYPE device_type, enum wined3d_format_id adapter_format_id,
3080         enum wined3d_format_id render_target_format_id, enum wined3d_format_id depth_stencil_format_id);
3081 HRESULT __cdecl wined3d_check_device_format(const struct wined3d *wined3d, UINT adaper_idx,
3082         WINED3DDEVTYPE device_type, enum wined3d_format_id adapter_format_id, DWORD usage,
3083         WINED3DRESOURCETYPE resource_type, enum wined3d_format_id check_format_id,
3084         WINED3DSURFTYPE surface_type);
3085 HRESULT __cdecl wined3d_check_device_format_conversion(const struct wined3d *wined3d, UINT adapter_idx,
3086         WINED3DDEVTYPE device_type, enum wined3d_format_id source_format_id,
3087         enum wined3d_format_id target_format_id);
3088 HRESULT __cdecl wined3d_check_device_multisample_type(const struct wined3d *wined3d, UINT adapter_idx,
3089         WINED3DDEVTYPE device_type, enum wined3d_format_id surface_format_id, BOOL windowed,
3090         WINED3DMULTISAMPLE_TYPE multisample_type, DWORD *quality_levels);
3091 HRESULT __cdecl wined3d_check_device_type(const struct wined3d *wined3d, UINT adapter_idx,
3092         WINED3DDEVTYPE device_type, enum wined3d_format_id display_format_id,
3093         enum wined3d_format_id backbuffer_format_id, BOOL windowed);
3094 struct wined3d * __cdecl wined3d_create(UINT dxVersion, void *parent);
3095 ULONG __cdecl wined3d_decref(struct wined3d *wined3d);
3096 HRESULT __cdecl wined3d_enum_adapter_modes(const struct wined3d *wined3d, UINT adapter_idx,
3097         enum wined3d_format_id format_id, UINT mode_idx, WINED3DDISPLAYMODE *mode);
3098 UINT __cdecl wined3d_get_adapter_count(const struct wined3d *wined3d);
3099 HRESULT __cdecl wined3d_get_adapter_display_mode(const struct wined3d *wined3d, UINT adapter_idx,
3100         WINED3DDISPLAYMODE *mode);
3101 HRESULT __cdecl wined3d_get_adapter_identifier(const struct wined3d *wined3d, UINT adapter_idx,
3102         DWORD flags, WINED3DADAPTER_IDENTIFIER *identifier);
3103 UINT __cdecl wined3d_get_adapter_mode_count(const struct wined3d *wined3d,
3104         UINT adapter_idx, enum wined3d_format_id format_id);
3105 HMONITOR __cdecl wined3d_get_adapter_monitor(const struct wined3d *wined3d, UINT adapter_idx);
3106 HRESULT __cdecl wined3d_get_device_caps(const struct wined3d *wined3d, UINT adapter_idx,
3107         WINED3DDEVTYPE device_type, WINED3DCAPS *caps);
3108 void * __cdecl wined3d_get_parent(const struct wined3d *wined3d);
3109 ULONG __cdecl wined3d_incref(struct wined3d *wined3d);
3110 HRESULT __cdecl wined3d_register_software_device(struct wined3d *wined3d, void *init_function);
3111
3112 ULONG __cdecl wined3d_buffer_decref(struct wined3d_buffer *buffer);
3113 HRESULT __cdecl wined3d_buffer_free_private_data(struct wined3d_buffer *buffer, REFGUID guid);
3114 void * __cdecl wined3d_buffer_get_parent(const struct wined3d_buffer *buffer);
3115 DWORD __cdecl wined3d_buffer_get_priority(const struct wined3d_buffer *buffer);
3116 HRESULT __cdecl wined3d_buffer_get_private_data(const struct wined3d_buffer *buffer,
3117         REFGUID guid, void *data, DWORD *data_size);
3118 struct wined3d_resource * __cdecl wined3d_buffer_get_resource(struct wined3d_buffer *buffer);
3119 WINED3DRESOURCETYPE __cdecl wined3d_buffer_get_type(const struct wined3d_buffer *buffer);
3120 ULONG __cdecl wined3d_buffer_incref(struct wined3d_buffer *buffer);
3121 HRESULT __cdecl wined3d_buffer_map(struct wined3d_buffer *buffer, UINT offset, UINT size, BYTE **data, DWORD flags);
3122 void  __cdecl wined3d_buffer_preload(struct wined3d_buffer *buffer);
3123 DWORD __cdecl wined3d_buffer_set_priority(struct wined3d_buffer *buffer, DWORD new_priority);
3124 HRESULT __cdecl wined3d_buffer_set_private_data(struct wined3d_buffer *buffer,
3125         REFGUID guid, const void *data, DWORD data_size, DWORD flags);
3126 void __cdecl wined3d_buffer_unmap(struct wined3d_buffer *buffer);
3127
3128 struct wined3d_clipper * __cdecl wined3d_clipper_create(void);
3129 ULONG __cdecl wined3d_clipper_decref(struct wined3d_clipper *clipper);
3130 HRESULT __cdecl wined3d_clipper_get_clip_list(const struct wined3d_clipper *clipper,
3131         const RECT *rect, RGNDATA *clip_list, DWORD *clip_list_size);
3132 HRESULT __cdecl wined3d_clipper_get_window(const struct wined3d_clipper *clipper, HWND *hwnd);
3133 ULONG __cdecl wined3d_clipper_incref(struct wined3d_clipper *clipper);
3134 HRESULT __cdecl wined3d_clipper_is_clip_list_changed(const struct wined3d_clipper *clipper, BOOL *changed);
3135 HRESULT __cdecl wined3d_clipper_set_clip_list(struct wined3d_clipper *clipper, const RGNDATA *clip_list, DWORD flags);
3136 HRESULT __cdecl wined3d_clipper_set_window(struct wined3d_clipper *clipper, DWORD flags, HWND hwnd);
3137
3138 HRESULT __cdecl wined3d_device_create(struct wined3d *wined3d, UINT adapter_idx,
3139         WINED3DDEVTYPE device_type, HWND focus_window, DWORD behaviour_flags,
3140         IWineD3DDeviceParent *device_parent, IWineD3DDevice **device);
3141
3142 ULONG __cdecl wined3d_palette_decref(struct wined3d_palette *palette);
3143 HRESULT __cdecl wined3d_palette_get_entries(const struct wined3d_palette *palette,
3144         DWORD flags, DWORD start, DWORD count, PALETTEENTRY *entries);
3145 DWORD __cdecl wined3d_palette_get_flags(const struct wined3d_palette *palette);
3146 void * __cdecl wined3d_palette_get_parent(const struct wined3d_palette *palette);
3147 ULONG __cdecl wined3d_palette_incref(struct wined3d_palette *palette);
3148 HRESULT __cdecl wined3d_palette_set_entries(struct wined3d_palette *palette,
3149         DWORD flags, DWORD start, DWORD count, const PALETTEENTRY *entries);
3150
3151 ULONG __cdecl wined3d_query_decref(struct wined3d_query *query);
3152 HRESULT __cdecl wined3d_query_get_data(struct wined3d_query *query, void *data, UINT data_size, DWORD flags);
3153 UINT __cdecl wined3d_query_get_data_size(const struct wined3d_query *query);
3154 WINED3DQUERYTYPE __cdecl wined3d_query_get_type(const struct wined3d_query *query);
3155 ULONG __cdecl wined3d_query_incref(struct wined3d_query *query);
3156 HRESULT __cdecl wined3d_query_issue(struct wined3d_query *query, DWORD flags);
3157
3158 void __cdecl wined3d_resource_get_desc(const struct wined3d_resource *resource,
3159         struct wined3d_resource_desc *desc);
3160 void * __cdecl wined3d_resource_get_parent(const struct wined3d_resource *resource);
3161
3162 HRESULT __cdecl wined3d_stateblock_apply(const struct wined3d_stateblock *stateblock);
3163 HRESULT __cdecl wined3d_stateblock_capture(struct wined3d_stateblock *stateblock);
3164 ULONG __cdecl wined3d_stateblock_decref(struct wined3d_stateblock *stateblock);
3165 ULONG __cdecl wined3d_stateblock_incref(struct wined3d_stateblock *stateblock);
3166
3167 ULONG __cdecl wined3d_vertex_declaration_decref(struct wined3d_vertex_declaration *declaration);
3168 void * __cdecl wined3d_vertex_declaration_get_parent(const struct wined3d_vertex_declaration *declaration);
3169 ULONG __cdecl wined3d_vertex_declaration_incref(struct wined3d_vertex_declaration *declaration);
3170
3171 IWineD3DVolume * __cdecl wined3d_volume_from_resource(struct wined3d_resource *resource);