~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Wine Cross Reference
wine/include/wine/wined3d.idl

Version: ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

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

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.