dsound: Compute mix buffer's size more accurately.
[wine] / include / d3dx9tex.h
1 /*
2  * Copyright (C) 2008 Tony Wasserka
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18
19 #include <d3dx9.h>
20
21 #ifndef __WINE_D3DX9TEX_H
22 #define __WINE_D3DX9TEX_H
23
24 /**********************************************
25  ***************** Definitions ****************
26  **********************************************/
27 #define D3DX_FILTER_NONE                 0x00000001
28 #define D3DX_FILTER_POINT                0x00000002
29 #define D3DX_FILTER_LINEAR               0x00000003
30 #define D3DX_FILTER_TRIANGLE             0x00000004
31 #define D3DX_FILTER_BOX                  0x00000005
32 #define D3DX_FILTER_MIRROR_U             0x00010000
33 #define D3DX_FILTER_MIRROR_V             0x00020000
34 #define D3DX_FILTER_MIRROR_W             0x00040000
35 #define D3DX_FILTER_MIRROR               0x00070000
36 #define D3DX_FILTER_DITHER               0x00080000
37 #define D3DX_FILTER_DITHER_DIFFUSION     0x00100000
38 #define D3DX_FILTER_SRGB_IN              0x00200000
39 #define D3DX_FILTER_SRGB_OUT             0x00400000
40 #define D3DX_FILTER_SRGB                 0x00600000
41
42 #define D3DX_NORMALMAP_MIRROR_U          0x00010000
43 #define D3DX_NORMALMAP_MIRROR_V          0x00020000
44 #define D3DX_NORMALMAP_MIRROR            0x00030000
45 #define D3DX_NORMALMAP_INVERTSIGN        0x00080000
46 #define D3DX_NORMALMAP_COMPUTE_OCCLUSION 0x00100000
47
48 #define D3DX_CHANNEL_RED                 0x00000001
49 #define D3DX_CHANNEL_BLUE                0x00000002
50 #define D3DX_CHANNEL_GREEN               0x00000004
51 #define D3DX_CHANNEL_ALPHA               0x00000008
52 #define D3DX_CHANNEL_LUMINANCE           0x00000010
53
54 /**********************************************
55  ****************** Typedefs ******************
56  **********************************************/
57 typedef enum _D3DXIMAGE_FILEFORMAT
58 {
59     D3DXIFF_BMP,
60     D3DXIFF_JPG,
61     D3DXIFF_TGA,
62     D3DXIFF_PNG,
63     D3DXIFF_DDS,
64     D3DXIFF_PPM,
65     D3DXIFF_DIB,
66     D3DXIFF_HDR,
67     D3DXIFF_PFM,
68     D3DXIFF_FORCE_DWORD = 0x7fffffff
69 } D3DXIMAGE_FILEFORMAT;
70
71 typedef struct _D3DXIMAGE_INFO
72 {
73     UINT Width;
74     UINT Height;
75     UINT Depth;
76     UINT MipLevels;
77     D3DFORMAT Format;
78     D3DRESOURCETYPE ResourceType;
79     D3DXIMAGE_FILEFORMAT ImageFileFormat;
80 } D3DXIMAGE_INFO;
81
82 /**********************************************
83  ****************** Functions *****************
84  **********************************************/
85 /* Typedefs for callback functions */
86 typedef VOID (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, CONST D3DXVECTOR2 *texcoord, CONST D3DXVECTOR2 *texelsize, LPVOID data);
87 typedef VOID (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, CONST D3DXVECTOR3 *texcoord, CONST D3DXVECTOR3 *texelsize, LPVOID data);
88
89 #ifdef __cplusplus
90 extern "C" {
91 #endif
92
93
94 /* Image Information */
95 HRESULT WINAPI D3DXGetImageInfoFromFileA(LPCSTR file, D3DXIMAGE_INFO *info);
96 HRESULT WINAPI D3DXGetImageInfoFromFileW(LPCWSTR file, D3DXIMAGE_INFO *info);
97 #define        D3DXGetImageInfoFromFile WINELIB_NAME_AW(D3DXGetImageInfoFromFile)
98
99 HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, LPCSTR resource, D3DXIMAGE_INFO *info);
100 HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, LPCWSTR resource, D3DXIMAGE_INFO *info);
101 #define        D3DXGetImageInfoFromResource WINELIB_NAME_AW(D3DXGetImageInfoFromResource)
102
103 HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(LPCVOID data, UINT datasize, D3DXIMAGE_INFO *info);
104
105
106 /* Surface Loading/Saving */
107 HRESULT WINAPI D3DXLoadSurfaceFromFileA(       LPDIRECT3DSURFACE9 destsurface,
108                                                CONST PALETTEENTRY *destpalette,
109                                                CONST RECT *destrect,
110                                                LPCSTR srcfile,
111                                                CONST RECT *srcrect,
112                                                DWORD filter,
113                                                D3DCOLOR colorkey,
114                                                D3DXIMAGE_INFO *srcinfo);
115
116 HRESULT WINAPI D3DXLoadSurfaceFromFileW(       LPDIRECT3DSURFACE9 destsurface,
117                                                CONST PALETTEENTRY *destpalette,
118                                                CONST RECT *destrect,
119                                                LPCWSTR srcfile,
120                                                CONST RECT *srcrect,
121                                                DWORD filter,
122                                                D3DCOLOR colorkey,
123                                                D3DXIMAGE_INFO *srcinfo);
124 #define        D3DXLoadSurfaceFromFile WINELIB_NAME_AW(D3DXLoadSurfaceFromFile)
125
126 HRESULT WINAPI D3DXLoadSurfaceFromResourceA(   LPDIRECT3DSURFACE9 destsurface,
127                                                CONST PALETTEENTRY *destpalette,
128                                                CONST RECT *destrect,
129                                                HMODULE srcmodule,
130                                                LPCSTR resource,
131                                                CONST RECT *srcrect,
132                                                DWORD filter,
133                                                D3DCOLOR colorkey,
134                                                D3DXIMAGE_INFO *srcinfo);
135
136 HRESULT WINAPI D3DXLoadSurfaceFromResourceW(   LPDIRECT3DSURFACE9 destsurface,
137                                                CONST PALETTEENTRY *destpalette,
138                                                CONST RECT *destrect,
139                                                HMODULE srcmodule,
140                                                LPCWSTR resource,
141                                                CONST RECT *srcrect,
142                                                DWORD filter,
143                                                D3DCOLOR colorkey,
144                                                D3DXIMAGE_INFO *srcinfo);
145 #define        D3DXLoadSurfaceFromResource WINELIB_NAME_AW(D3DXLoadSurfaceFromResource)
146
147 HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(LPDIRECT3DSURFACE9 destsurface,
148                                                CONST PALETTEENTRY *destpalette,
149                                                CONST RECT*destrect,
150                                                LPCVOID srcdata,
151                                                UINT srcdatasize,
152                                                CONST RECT *srcrect,
153                                                DWORD filter,
154                                                D3DCOLOR colorkey,
155                                                D3DXIMAGE_INFO *srcinfo);
156
157 HRESULT WINAPI D3DXLoadSurfaceFromSurface(     LPDIRECT3DSURFACE9 destsurface,
158                                                CONST PALETTEENTRY *destpalette,
159                                                CONST RECT *destrect,
160                                                LPDIRECT3DSURFACE9 srcsurface,
161                                                CONST PALETTEENTRY *srcpalette,
162                                                CONST RECT *srcrect,
163                                                DWORD filter,
164                                                D3DCOLOR colorkey);
165
166 HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
167         const PALETTEENTRY *dst_palette, const RECT *dst_rect, const void *src_memory,
168         D3DFORMAT src_format, UINT src_pitch, const PALETTEENTRY *src_palette, const RECT *src_rect,
169         DWORD filter, D3DCOLOR color_key);
170
171 HRESULT WINAPI D3DXSaveSurfaceToFileA(         LPCSTR destfile,
172                                                D3DXIMAGE_FILEFORMAT destformat,
173                                                LPDIRECT3DSURFACE9 srcsurface,
174                                                CONST PALETTEENTRY *srcpalette,
175                                                CONST RECT *srcrect);
176
177 HRESULT WINAPI D3DXSaveSurfaceToFileW(         LPCWSTR destfile,
178                                                D3DXIMAGE_FILEFORMAT destformat,
179                                                LPDIRECT3DSURFACE9 srcsurface,
180                                                CONST PALETTEENTRY *srcpalette,
181                                                CONST RECT *srcrect);
182 #define        D3DXSaveSurfaceToFile WINELIB_NAME_AW(D3DXSaveSurfaceToFile)
183
184
185 /* Volume Loading/Saving */
186 HRESULT WINAPI D3DXLoadVolumeFromFileA(       LPDIRECT3DVOLUME9 destvolume,
187                                               CONST PALETTEENTRY *destpalette,
188                                               CONST D3DBOX *destbox,
189                                               LPCSTR srcfile,
190                                               CONST D3DBOX *srcbox,
191                                               DWORD filter,
192                                               D3DCOLOR colorkey,
193                                               D3DXIMAGE_INFO *srcinfo);
194
195 HRESULT WINAPI D3DXLoadVolumeFromFileW(       LPDIRECT3DVOLUME9 destVolume,
196                                               CONST PALETTEENTRY *destpalette,
197                                               CONST D3DBOX *destbox,
198                                               LPCWSTR srcfile,
199                                               CONST D3DBOX *srcbox,
200                                               DWORD filter,
201                                               D3DCOLOR colorkey,
202                                               D3DXIMAGE_INFO *srcinfo);
203 #define        D3DXLoadVolumeFromFile WINELIB_NAME_AW(D3DXLoadVolumeFromFile)
204
205 HRESULT WINAPI D3DXLoadVolumeFromResourceA(   LPDIRECT3DVOLUME9 destVolume,
206                                               CONST PALETTEENTRY *destpalette,
207                                               CONST D3DBOX *destbox,
208                                               HMODULE srcmodule,
209                                               LPCSTR resource,
210                                               CONST D3DBOX *srcbox,
211                                               DWORD filter,
212                                               D3DCOLOR colorkey,
213                                               D3DXIMAGE_INFO *srcinfo);
214
215 HRESULT WINAPI D3DXLoadVolumeFromResourceW(   LPDIRECT3DVOLUME9 destVolume,
216                                               CONST PALETTEENTRY *destpalette,
217                                               CONST D3DBOX *destbox,
218                                               HMODULE srcmodule,
219                                               LPCWSTR resource,
220                                               CONST D3DBOX *srcbox,
221                                               DWORD filter,
222                                               D3DCOLOR colorkey,
223                                               D3DXIMAGE_INFO *srcinfo);
224 #define        D3DXLoadVolumeFromResource WINELIB_NAME_AW(D3DXLoadVolumeFromResource)
225
226 HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(LPDIRECT3DVOLUME9 destvolume,
227                                               CONST PALETTEENTRY *destpalette,
228                                               CONST D3DBOX *destbox,
229                                               LPCVOID srcdata,
230                                               UINT srcdatasize,
231                                               CONST D3DBOX *srcbox,
232                                               DWORD filter,
233                                               D3DCOLOR colorkey,
234                                               D3DXIMAGE_INFO *srcinfo);
235
236 HRESULT WINAPI D3DXLoadVolumeFromVolume(      LPDIRECT3DVOLUME9 destvolume,
237                                               CONST PALETTEENTRY *destpalette,
238                                               CONST D3DBOX *destbox,
239                                               LPDIRECT3DVOLUME9 srcvolume,
240                                               CONST PALETTEENTRY *srcpalette,
241                                               CONST D3DBOX *srcbox,
242                                               DWORD filter,
243                                               D3DCOLOR colorkey);
244
245 HRESULT WINAPI D3DXLoadVolumeFromMemory(      LPDIRECT3DVOLUME9 destvolume,
246                                               CONST PALETTEENTRY *destpalette,
247                                               CONST D3DBOX *destbox,
248                                               LPCVOID srcmemory,
249                                               D3DFORMAT srcformat,
250                                               UINT srcrowpitch,
251                                               UINT srcslicepitch,
252                                               CONST PALETTEENTRY *srcpalette,
253                                               CONST D3DBOX *srcbox,
254                                               DWORD filter,
255                                               D3DCOLOR colorkey);
256
257 HRESULT WINAPI D3DXSaveVolumeToFileA(         LPCSTR destfile,
258                                               D3DXIMAGE_FILEFORMAT destformat,
259                                               LPDIRECT3DVOLUME9 srcvolume,
260                                               CONST PALETTEENTRY *srcpalette,
261                                               CONST D3DBOX *srcbox);
262
263 HRESULT WINAPI D3DXSaveVolumeToFileW(         LPCWSTR destfile,
264                                               D3DXIMAGE_FILEFORMAT destformat,
265                                               LPDIRECT3DVOLUME9 srcvolume,
266                                               CONST PALETTEENTRY *srcpalette,
267                                               CONST D3DBOX *srcbox);
268 #define        D3DXSaveVolumeToFile WINELIB_NAME_AW(D3DXSaveVolumeToFile)
269
270
271 /* Texture, cube texture and volume texture creation */
272 HRESULT WINAPI D3DXCheckTextureRequirements(      LPDIRECT3DDEVICE9 device,
273                                                   UINT *width,
274                                                   UINT *height,
275                                                   UINT *miplevels,
276                                                   DWORD usage,
277                                                   D3DFORMAT *format,
278                                                   D3DPOOL pool);
279 HRESULT WINAPI D3DXCheckCubeTextureRequirements(  LPDIRECT3DDEVICE9 device,
280                                                   UINT *size,
281                                                   UINT *miplevels,
282                                                   DWORD usage,
283                                                   D3DFORMAT *format,
284                                                   D3DPOOL pool);
285
286 HRESULT WINAPI D3DXCheckVolumeTextureRequirements(LPDIRECT3DDEVICE9 device,
287                                                   UINT *width,
288                                                   UINT *height,
289                                                   UINT *depth,
290                                                   UINT *miplevels,
291                                                   DWORD usage,
292                                                   D3DFORMAT *format,
293                                                   D3DPOOL pool);
294
295 HRESULT WINAPI D3DXCreateTexture(      LPDIRECT3DDEVICE9 device,
296                                        UINT width,
297                                        UINT height,
298                                        UINT miplevels,
299                                        DWORD usage,
300                                        D3DFORMAT format,
301                                        D3DPOOL pool,
302                                        LPDIRECT3DTEXTURE9 *texture);
303
304 HRESULT WINAPI D3DXCreateCubeTexture(  LPDIRECT3DDEVICE9 device,
305                                        UINT size,
306                                        UINT miplevels,
307                                        DWORD usage,
308                                        D3DFORMAT format,
309                                        D3DPOOL pool,
310                                        LPDIRECT3DCUBETEXTURE9 *cube);
311
312 HRESULT WINAPI D3DXCreateVolumeTexture(LPDIRECT3DDEVICE9 device,
313                                        UINT width,
314                                        UINT height,
315                                        UINT depth,
316                                        UINT miplevels,
317                                        DWORD usage,
318                                        D3DFORMAT format,
319                                        D3DPOOL pool,
320                                        LPDIRECT3DVOLUMETEXTURE9 *volume);
321
322 HRESULT WINAPI D3DXCreateTextureFromFileA(      LPDIRECT3DDEVICE9 device,
323                                                 LPCSTR srcfile,
324                                                 LPDIRECT3DTEXTURE9 *texture);
325
326 HRESULT WINAPI D3DXCreateTextureFromFileW(      LPDIRECT3DDEVICE9 device,
327                                                 LPCWSTR srcfile,
328                                                 LPDIRECT3DTEXTURE9 *texture);
329 #define        D3DXCreateTextureFromFile WINELIB_NAME_AW(D3DXCreateTextureFromFile)
330
331 HRESULT WINAPI D3DXCreateCubeTextureFromFileA(  LPDIRECT3DDEVICE9 device,
332                                                 LPCSTR srcfile,
333                                                 LPDIRECT3DCUBETEXTURE9 *cube);
334
335 HRESULT WINAPI D3DXCreateCubeTextureFromFileW(  LPDIRECT3DDEVICE9 device,
336                                                 LPCWSTR srcfile,
337                                                 LPDIRECT3DCUBETEXTURE9 *cube);
338 #define        D3DXCreateCubeTextureFromFile WINELIB_NAME_AW(D3DXCreateCubeTextureFromFile)
339
340 HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(LPDIRECT3DDEVICE9 device,
341                                                 LPCSTR srcfile,
342                                                 LPDIRECT3DVOLUMETEXTURE9 *volume);
343
344 HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(LPDIRECT3DDEVICE9 device,
345                                                 LPCWSTR srcfile,
346                                                 LPDIRECT3DVOLUMETEXTURE9 *volume);
347 #define        D3DXCreateVolumeTextureFromFile WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFile)
348
349 HRESULT WINAPI D3DXCreateTextureFromResourceA(      LPDIRECT3DDEVICE9 device,
350                                                     HMODULE srcmodule,
351                                                     LPCSTR resource,
352                                                     LPDIRECT3DTEXTURE9 *texture);
353
354 HRESULT WINAPI D3DXCreateTextureFromResourceW(      LPDIRECT3DDEVICE9 device,
355                                                     HMODULE srcmodule,
356                                                     LPCWSTR resource,
357                                                     LPDIRECT3DTEXTURE9 *texture);
358 #define        D3DXCreateTextureFromResource WINELIB_NAME_AW(D3DXCreateTextureFromResource)
359
360 HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(  LPDIRECT3DDEVICE9 device,
361                                                     HMODULE srcmodule,
362                                                     LPCSTR resource,
363                                                     LPDIRECT3DCUBETEXTURE9 *cube);
364 HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(  LPDIRECT3DDEVICE9 device,
365                                                     HMODULE srcmodule,
366                                                     LPCWSTR resource,
367                                                     LPDIRECT3DCUBETEXTURE9 *cube);
368 #define        D3DXCreateCubeTextureFromResource WINELIB_NAME_AW(D3DXCreateCubeTextureFromResource)
369
370 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(LPDIRECT3DDEVICE9 device,
371                                                     HMODULE srcmodule,
372                                                     LPCSTR resource,
373                                                     LPDIRECT3DVOLUMETEXTURE9 *volume);
374 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(LPDIRECT3DDEVICE9 device,
375                                                     HMODULE srcmodule,
376                                                     LPCWSTR resource,
377                                                     LPDIRECT3DVOLUMETEXTURE9 *volume);
378 #define        D3DXCreateVolumeTextureFromResource WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResource)
379
380 HRESULT WINAPI D3DXCreateTextureFromFileExA(      LPDIRECT3DDEVICE9 device,
381                                                   LPCSTR srcfile,
382                                                   UINT width,
383                                                   UINT height,
384                                                   UINT miplevels,
385                                                   DWORD usage,
386                                                   D3DFORMAT format,
387                                                   D3DPOOL pool,
388                                                   DWORD filter,
389                                                   DWORD mipfilter,
390                                                   D3DCOLOR colorkey,
391                                                   D3DXIMAGE_INFO *srcinfo,
392                                                   PALETTEENTRY *palette,
393                                                   LPDIRECT3DTEXTURE9 *texture);
394
395 HRESULT WINAPI D3DXCreateTextureFromFileExW(      LPDIRECT3DDEVICE9 device,
396                                                   LPCWSTR srcfile,
397                                                   UINT width,
398                                                   UINT height,
399                                                   UINT miplevels,
400                                                   DWORD usage,
401                                                   D3DFORMAT format,
402                                                   D3DPOOL pool,
403                                                   DWORD filter,
404                                                   DWORD mipfilter,
405                                                   D3DCOLOR colorkey,
406                                                   D3DXIMAGE_INFO *srcinfo,
407                                                   PALETTEENTRY *palette,
408                                                   LPDIRECT3DTEXTURE9 *texture);
409 #define        D3DXCreateTextureFromFileEx WINELIB_NAME_AW(D3DXCreateTextureFromFileEx)
410
411 HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(  LPDIRECT3DDEVICE9 device,
412                                                   LPCSTR srcfile,
413                                                   UINT size,
414                                                   UINT miplevels,
415                                                   DWORD usage,
416                                                   D3DFORMAT format,
417                                                   D3DPOOL pool,
418                                                   DWORD filter,
419                                                   DWORD mipfilter,
420                                                   D3DCOLOR colorkey,
421                                                   D3DXIMAGE_INFO *srcinfo,
422                                                   PALETTEENTRY *palette,
423                                                   LPDIRECT3DCUBETEXTURE9 *cube);
424
425 HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(  LPDIRECT3DDEVICE9 device,
426                                                   LPCWSTR srcfile,
427                                                   UINT size,
428                                                   UINT miplevels,
429                                                   DWORD usage,
430                                                   D3DFORMAT format,
431                                                   D3DPOOL pool,
432                                                   DWORD filter,
433                                                   DWORD mipfilter,
434                                                   D3DCOLOR colorkey,
435                                                   D3DXIMAGE_INFO *srcinfo,
436                                                   PALETTEENTRY *palette,
437                                                   LPDIRECT3DCUBETEXTURE9 *cube);
438 #define        D3DXCreateCubeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromFileEx)
439
440 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(LPDIRECT3DDEVICE9 device,
441                                                   LPCSTR srcfile,
442                                                   UINT width,
443                                                   UINT height,
444                                                   UINT depth,
445                                                   UINT miplevels,
446                                                   DWORD usage,
447                                                   D3DFORMAT format,
448                                                   D3DPOOL pool,
449                                                   DWORD filter,
450                                                   DWORD mipfilter,
451                                                   D3DCOLOR colorkey,
452                                                   D3DXIMAGE_INFO *srcinfo,
453                                                   PALETTEENTRY *palette,
454                                                   LPDIRECT3DVOLUMETEXTURE9 *volume);
455
456 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(LPDIRECT3DDEVICE9 device,
457                                                   LPCWSTR srcfile,
458                                                   UINT width,
459                                                   UINT height,
460                                                   UINT depth,
461                                                   UINT miplevels,
462                                                   DWORD usage,
463                                                   D3DFORMAT format,
464                                                   D3DPOOL pool,
465                                                   DWORD filter,
466                                                   DWORD mipfilter,
467                                                   D3DCOLOR colorkey,
468                                                   D3DXIMAGE_INFO *srcinfo,
469                                                   PALETTEENTRY *palette,
470                                                   LPDIRECT3DVOLUMETEXTURE9 *volume);
471 #define        D3DXCreateVolumeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
472
473 HRESULT WINAPI D3DXCreateTextureFromResourceExA(      LPDIRECT3DDEVICE9 device,
474                                                       HMODULE srcmodule,
475                                                       LPCSTR resource,
476                                                       UINT width,
477                                                       UINT height,
478                                                       UINT miplevels,
479                                                       DWORD usage,
480                                                       D3DFORMAT format,
481                                                       D3DPOOL pool,
482                                                       DWORD filter,
483                                                       DWORD mipfilter,
484                                                       D3DCOLOR colorkey,
485                                                       D3DXIMAGE_INFO *srcinfo,
486                                                       PALETTEENTRY *palette,
487                                                       LPDIRECT3DTEXTURE9 *texture);
488
489 HRESULT WINAPI D3DXCreateTextureFromResourceExW(      LPDIRECT3DDEVICE9 device,
490                                                       HMODULE srcmodule,
491                                                       LPCWSTR resource,
492                                                       UINT width,
493                                                       UINT height,
494                                                       UINT miplevels,
495                                                       DWORD usage,
496                                                       D3DFORMAT format,
497                                                       D3DPOOL pool,
498                                                       DWORD filter,
499                                                       DWORD mipfilter,
500                                                       D3DCOLOR colorkey,
501                                                       D3DXIMAGE_INFO *srcinfo,
502                                                       PALETTEENTRY *palette,
503                                                       LPDIRECT3DTEXTURE9 *texture);
504 #define        D3DXCreateTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateTextureFromResourceEx)
505
506 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(  LPDIRECT3DDEVICE9 device,
507                                                       HMODULE srcmodule,
508                                                       LPCSTR resource,
509                                                       UINT size,
510                                                       UINT miplevels,
511                                                       DWORD usage,
512                                                       D3DFORMAT format,
513                                                       D3DPOOL pool,
514                                                       DWORD filter,
515                                                       DWORD mipfilter,
516                                                       D3DCOLOR colorkey,
517                                                       D3DXIMAGE_INFO *srcinfo,
518                                                       PALETTEENTRY *palette,
519                                                       LPDIRECT3DCUBETEXTURE9 *cube);
520
521 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(  LPDIRECT3DDEVICE9 device,
522                                                       HMODULE srcmodule,
523                                                       LPCWSTR resource,
524                                                       UINT size,
525                                                       UINT miplevels,
526                                                       DWORD usage,
527                                                       D3DFORMAT format,
528                                                       D3DPOOL pool,
529                                                       DWORD filter,
530                                                       DWORD mipfilter,
531                                                       D3DCOLOR colorkey,
532                                                       D3DXIMAGE_INFO *srcinfo,
533                                                       PALETTEENTRY *palette,
534                                                       LPDIRECT3DCUBETEXTURE9 *cube);
535 #define        D3DXCreateCubeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
536
537 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(LPDIRECT3DDEVICE9 device,
538                                                       HMODULE srcmodule,
539                                                       LPCSTR resource,
540                                                       UINT width,
541                                                       UINT height,
542                                                       UINT depth,
543                                                       UINT miplevels,
544                                                       DWORD usage,
545                                                       D3DFORMAT format,
546                                                       D3DPOOL pool,
547                                                       DWORD filter,
548                                                       DWORD mipfilter,
549                                                       D3DCOLOR colorkey,
550                                                       D3DXIMAGE_INFO *srcinfo,
551                                                       PALETTEENTRY *palette,
552                                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
553
554 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(LPDIRECT3DDEVICE9 device,
555                                                       HMODULE srcmodule,
556                                                       LPCWSTR resource,
557                                                       UINT width,
558                                                       UINT height,
559                                                       UINT depth,
560                                                       UINT miplevels,
561                                                       DWORD usage,
562                                                       D3DFORMAT format,
563                                                       D3DPOOL pool,
564                                                       DWORD filter,
565                                                       DWORD mipfilter,
566                                                       D3DCOLOR colorkey,
567                                                       D3DXIMAGE_INFO *srcinfo,
568                                                       PALETTEENTRY *palette,
569                                                       LPDIRECT3DVOLUMETEXTURE9 *volume);
570 #define        D3DXCreateVolumeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
571
572 HRESULT WINAPI D3DXCreateTextureFromFileInMemory(      LPDIRECT3DDEVICE9 device,
573                                                        LPCVOID srcdata,
574                                                        UINT srcdatasize,
575                                                        LPDIRECT3DTEXTURE9* texture);
576
577 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(  LPDIRECT3DDEVICE9 device,
578                                                        LPCVOID srcdata,
579                                                        UINT srcdatasize,
580                                                        LPDIRECT3DCUBETEXTURE9* cube);
581
582 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(LPDIRECT3DDEVICE9 device,
583                                                        LPCVOID srcdata,
584                                                        UINT srcdatasize,
585                                                        LPDIRECT3DVOLUMETEXTURE9 *volume);
586
587 HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(      LPDIRECT3DDEVICE9 device,
588                                                          LPCVOID srcdata,
589                                                          UINT srcdatasize,
590                                                          UINT width,
591                                                          UINT height,
592                                                          UINT miplevels,
593                                                          DWORD usage,
594                                                          D3DFORMAT format,
595                                                          D3DPOOL pool,
596                                                          DWORD filter,
597                                                          DWORD mipfilter,
598                                                          D3DCOLOR colorkey,
599                                                          D3DXIMAGE_INFO *srcinfo,
600                                                          PALETTEENTRY *palette,
601                                                          LPDIRECT3DTEXTURE9 *texture);
602
603 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(  LPDIRECT3DDEVICE9 device,
604                                                          LPCVOID srcdata,
605                                                          UINT srcdatasize,
606                                                          UINT size,
607                                                          UINT miplevels,
608                                                          DWORD usage,
609                                                          D3DFORMAT format,
610                                                          D3DPOOL pool,
611                                                          DWORD filter,
612                                                          DWORD mipfilter,
613                                                          D3DCOLOR colorkey,
614                                                          D3DXIMAGE_INFO *srcinfo,
615                                                          PALETTEENTRY *palette,
616                                                          LPDIRECT3DCUBETEXTURE9 *cube);
617
618 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 device,
619                                                          LPCVOID srcdata,
620                                                          UINT srcdatasize,
621                                                          UINT width,
622                                                          UINT height,
623                                                          UINT depth,
624                                                          UINT miplevels,
625                                                          DWORD usage,
626                                                          D3DFORMAT format,
627                                                          D3DPOOL pool,
628                                                          DWORD filter,
629                                                          DWORD mipfilter,
630                                                          D3DCOLOR colorkey,
631                                                          D3DXIMAGE_INFO *srcinfo,
632                                                          PALETTEENTRY *palette,
633                                                          LPDIRECT3DVOLUMETEXTURE9 *volume);
634
635 HRESULT WINAPI D3DXSaveTextureToFileA(LPCSTR destfile,
636                                       D3DXIMAGE_FILEFORMAT destformat,
637                                       LPDIRECT3DBASETEXTURE9 srctexture,
638                                       CONST PALETTEENTRY *srcpalette);
639 HRESULT WINAPI D3DXSaveTextureToFileW(LPCWSTR destfile,
640                                       D3DXIMAGE_FILEFORMAT destformat,
641                                       LPDIRECT3DBASETEXTURE9 srctexture,
642                                       CONST PALETTEENTRY *srcpalette);
643 #define        D3DXSaveTextureToFile WINELIB_NAME_AW(D3DXSaveTextureToFile)
644
645
646 /* Other functions */
647 HRESULT WINAPI D3DXFilterTexture(      LPDIRECT3DBASETEXTURE9 texture,
648                                        CONST PALETTEENTRY *palette,
649                                        UINT srclevel,
650                                        DWORD filter);
651 #define D3DXFilterCubeTexture D3DXFilterTexture
652 #define D3DXFilterVolumeTexture D3DXFilterTexture
653
654 HRESULT WINAPI D3DXFillTexture(        LPDIRECT3DTEXTURE9 texture,
655                                        LPD3DXFILL2D function,
656                                        LPVOID data);
657
658 HRESULT WINAPI D3DXFillCubeTexture(    LPDIRECT3DCUBETEXTURE9 cube,
659                                        LPD3DXFILL3D function,
660                                        LPVOID data);
661
662 HRESULT WINAPI D3DXFillVolumeTexture(  LPDIRECT3DVOLUMETEXTURE9 volume,
663                                        LPD3DXFILL3D function,
664                                        LPVOID data);
665
666 HRESULT WINAPI D3DXFillTextureTX(      LPDIRECT3DTEXTURE9 texture,
667                                        CONST DWORD *function,
668                                        CONST D3DXVECTOR4 *constants,
669                                        UINT numconstants);
670
671 HRESULT WINAPI D3DXFillCubeTextureTX(  LPDIRECT3DCUBETEXTURE9 cube,
672                                        CONST DWORD *function,
673                                        CONST D3DXVECTOR4 *constants,
674                                        UINT numconstants);
675
676 HRESULT WINAPI D3DXFillVolumeTextureTX(LPDIRECT3DVOLUMETEXTURE9 volume,
677                                        CONST DWORD *function,
678                                        CONST D3DXVECTOR4 *constants,
679                                        UINT numconstants);
680
681 HRESULT WINAPI D3DXComputeNormalMap(   LPDIRECT3DTEXTURE9 texture,
682                                        LPDIRECT3DTEXTURE9 srctexture,
683                                        CONST PALETTEENTRY *srcpalette,
684                                        DWORD flags,
685                                        DWORD channel,
686                                        FLOAT amplitude);
687
688
689 #ifdef __cplusplus
690 }
691 #endif
692
693 #endif /* __WINE_D3DX9TEX_H */