ntdll: Add ReturnLength test for NtQuerySystemInformation with SystemProcessInformation.
[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 D3DXSaveSurfaceToFileInMemory(  LPD3DXBUFFER *destbuffer,
172                                                D3DXIMAGE_FILEFORMAT destformat,
173                                                LPDIRECT3DSURFACE9 srcsurface,
174                                                CONST PALETTEENTRY *srcpalette,
175                                                CONST RECT *srcrect);
176
177 HRESULT WINAPI D3DXSaveSurfaceToFileA(         LPCSTR destfile,
178                                                D3DXIMAGE_FILEFORMAT destformat,
179                                                LPDIRECT3DSURFACE9 srcsurface,
180                                                CONST PALETTEENTRY *srcpalette,
181                                                CONST RECT *srcrect);
182
183 HRESULT WINAPI D3DXSaveSurfaceToFileW(         LPCWSTR destfile,
184                                                D3DXIMAGE_FILEFORMAT destformat,
185                                                LPDIRECT3DSURFACE9 srcsurface,
186                                                CONST PALETTEENTRY *srcpalette,
187                                                CONST RECT *srcrect);
188 #define        D3DXSaveSurfaceToFile WINELIB_NAME_AW(D3DXSaveSurfaceToFile)
189
190
191 /* Volume Loading/Saving */
192 HRESULT WINAPI D3DXLoadVolumeFromFileA(       LPDIRECT3DVOLUME9 destvolume,
193                                               CONST PALETTEENTRY *destpalette,
194                                               CONST D3DBOX *destbox,
195                                               LPCSTR srcfile,
196                                               CONST D3DBOX *srcbox,
197                                               DWORD filter,
198                                               D3DCOLOR colorkey,
199                                               D3DXIMAGE_INFO *srcinfo);
200
201 HRESULT WINAPI D3DXLoadVolumeFromFileW(       LPDIRECT3DVOLUME9 destVolume,
202                                               CONST PALETTEENTRY *destpalette,
203                                               CONST D3DBOX *destbox,
204                                               LPCWSTR srcfile,
205                                               CONST D3DBOX *srcbox,
206                                               DWORD filter,
207                                               D3DCOLOR colorkey,
208                                               D3DXIMAGE_INFO *srcinfo);
209 #define        D3DXLoadVolumeFromFile WINELIB_NAME_AW(D3DXLoadVolumeFromFile)
210
211 HRESULT WINAPI D3DXLoadVolumeFromResourceA(   LPDIRECT3DVOLUME9 destVolume,
212                                               CONST PALETTEENTRY *destpalette,
213                                               CONST D3DBOX *destbox,
214                                               HMODULE srcmodule,
215                                               LPCSTR resource,
216                                               CONST D3DBOX *srcbox,
217                                               DWORD filter,
218                                               D3DCOLOR colorkey,
219                                               D3DXIMAGE_INFO *srcinfo);
220
221 HRESULT WINAPI D3DXLoadVolumeFromResourceW(   LPDIRECT3DVOLUME9 destVolume,
222                                               CONST PALETTEENTRY *destpalette,
223                                               CONST D3DBOX *destbox,
224                                               HMODULE srcmodule,
225                                               LPCWSTR resource,
226                                               CONST D3DBOX *srcbox,
227                                               DWORD filter,
228                                               D3DCOLOR colorkey,
229                                               D3DXIMAGE_INFO *srcinfo);
230 #define        D3DXLoadVolumeFromResource WINELIB_NAME_AW(D3DXLoadVolumeFromResource)
231
232 HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(LPDIRECT3DVOLUME9 destvolume,
233                                               CONST PALETTEENTRY *destpalette,
234                                               CONST D3DBOX *destbox,
235                                               LPCVOID srcdata,
236                                               UINT srcdatasize,
237                                               CONST D3DBOX *srcbox,
238                                               DWORD filter,
239                                               D3DCOLOR colorkey,
240                                               D3DXIMAGE_INFO *srcinfo);
241
242 HRESULT WINAPI D3DXLoadVolumeFromVolume(      LPDIRECT3DVOLUME9 destvolume,
243                                               CONST PALETTEENTRY *destpalette,
244                                               CONST D3DBOX *destbox,
245                                               LPDIRECT3DVOLUME9 srcvolume,
246                                               CONST PALETTEENTRY *srcpalette,
247                                               CONST D3DBOX *srcbox,
248                                               DWORD filter,
249                                               D3DCOLOR colorkey);
250
251 HRESULT WINAPI D3DXLoadVolumeFromMemory(      LPDIRECT3DVOLUME9 destvolume,
252                                               CONST PALETTEENTRY *destpalette,
253                                               CONST D3DBOX *destbox,
254                                               LPCVOID srcmemory,
255                                               D3DFORMAT srcformat,
256                                               UINT srcrowpitch,
257                                               UINT srcslicepitch,
258                                               CONST PALETTEENTRY *srcpalette,
259                                               CONST D3DBOX *srcbox,
260                                               DWORD filter,
261                                               D3DCOLOR colorkey);
262
263 HRESULT WINAPI D3DXSaveVolumeToFileA(         LPCSTR destfile,
264                                               D3DXIMAGE_FILEFORMAT destformat,
265                                               LPDIRECT3DVOLUME9 srcvolume,
266                                               CONST PALETTEENTRY *srcpalette,
267                                               CONST D3DBOX *srcbox);
268
269 HRESULT WINAPI D3DXSaveVolumeToFileW(         LPCWSTR destfile,
270                                               D3DXIMAGE_FILEFORMAT destformat,
271                                               LPDIRECT3DVOLUME9 srcvolume,
272                                               CONST PALETTEENTRY *srcpalette,
273                                               CONST D3DBOX *srcbox);
274 #define        D3DXSaveVolumeToFile WINELIB_NAME_AW(D3DXSaveVolumeToFile)
275
276
277 /* Texture, cube texture and volume texture creation */
278 HRESULT WINAPI D3DXCheckTextureRequirements(      LPDIRECT3DDEVICE9 device,
279                                                   UINT *width,
280                                                   UINT *height,
281                                                   UINT *miplevels,
282                                                   DWORD usage,
283                                                   D3DFORMAT *format,
284                                                   D3DPOOL pool);
285 HRESULT WINAPI D3DXCheckCubeTextureRequirements(  LPDIRECT3DDEVICE9 device,
286                                                   UINT *size,
287                                                   UINT *miplevels,
288                                                   DWORD usage,
289                                                   D3DFORMAT *format,
290                                                   D3DPOOL pool);
291
292 HRESULT WINAPI D3DXCheckVolumeTextureRequirements(LPDIRECT3DDEVICE9 device,
293                                                   UINT *width,
294                                                   UINT *height,
295                                                   UINT *depth,
296                                                   UINT *miplevels,
297                                                   DWORD usage,
298                                                   D3DFORMAT *format,
299                                                   D3DPOOL pool);
300
301 HRESULT WINAPI D3DXCreateTexture(      LPDIRECT3DDEVICE9 device,
302                                        UINT width,
303                                        UINT height,
304                                        UINT miplevels,
305                                        DWORD usage,
306                                        D3DFORMAT format,
307                                        D3DPOOL pool,
308                                        LPDIRECT3DTEXTURE9 *texture);
309
310 HRESULT WINAPI D3DXCreateCubeTexture(  LPDIRECT3DDEVICE9 device,
311                                        UINT size,
312                                        UINT miplevels,
313                                        DWORD usage,
314                                        D3DFORMAT format,
315                                        D3DPOOL pool,
316                                        LPDIRECT3DCUBETEXTURE9 *cube);
317
318 HRESULT WINAPI D3DXCreateVolumeTexture(struct IDirect3DDevice9 *device, UINT width, UINT height, UINT depth,
319         UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DVolumeTexture9 **volume);
320
321 HRESULT WINAPI D3DXCreateTextureFromFileA(      LPDIRECT3DDEVICE9 device,
322                                                 LPCSTR srcfile,
323                                                 LPDIRECT3DTEXTURE9 *texture);
324
325 HRESULT WINAPI D3DXCreateTextureFromFileW(      LPDIRECT3DDEVICE9 device,
326                                                 LPCWSTR srcfile,
327                                                 LPDIRECT3DTEXTURE9 *texture);
328 #define        D3DXCreateTextureFromFile WINELIB_NAME_AW(D3DXCreateTextureFromFile)
329
330 HRESULT WINAPI D3DXCreateCubeTextureFromFileA(  LPDIRECT3DDEVICE9 device,
331                                                 LPCSTR srcfile,
332                                                 LPDIRECT3DCUBETEXTURE9 *cube);
333
334 HRESULT WINAPI D3DXCreateCubeTextureFromFileW(  LPDIRECT3DDEVICE9 device,
335                                                 LPCWSTR srcfile,
336                                                 LPDIRECT3DCUBETEXTURE9 *cube);
337 #define        D3DXCreateCubeTextureFromFile WINELIB_NAME_AW(D3DXCreateCubeTextureFromFile)
338
339 HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(struct IDirect3DDevice9 *device,
340         const char *srcfile, struct IDirect3DVolumeTexture9 **volume);
341 HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(struct IDirect3DDevice9 *device,
342         const WCHAR *srcfile, struct IDirect3DVolumeTexture9 **volume);
343 #define D3DXCreateVolumeTextureFromFile WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFile)
344
345 HRESULT WINAPI D3DXCreateTextureFromResourceA(      LPDIRECT3DDEVICE9 device,
346                                                     HMODULE srcmodule,
347                                                     LPCSTR resource,
348                                                     LPDIRECT3DTEXTURE9 *texture);
349
350 HRESULT WINAPI D3DXCreateTextureFromResourceW(      LPDIRECT3DDEVICE9 device,
351                                                     HMODULE srcmodule,
352                                                     LPCWSTR resource,
353                                                     LPDIRECT3DTEXTURE9 *texture);
354 #define        D3DXCreateTextureFromResource WINELIB_NAME_AW(D3DXCreateTextureFromResource)
355
356 HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(  LPDIRECT3DDEVICE9 device,
357                                                     HMODULE srcmodule,
358                                                     LPCSTR resource,
359                                                     LPDIRECT3DCUBETEXTURE9 *cube);
360 HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(  LPDIRECT3DDEVICE9 device,
361                                                     HMODULE srcmodule,
362                                                     LPCWSTR resource,
363                                                     LPDIRECT3DCUBETEXTURE9 *cube);
364 #define        D3DXCreateCubeTextureFromResource WINELIB_NAME_AW(D3DXCreateCubeTextureFromResource)
365
366 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(struct IDirect3DDevice9 *device,
367         HMODULE srcmodule, const char *resource, struct IDirect3DVolumeTexture9 **volume);
368 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(struct IDirect3DDevice9 *device,
369         HMODULE srcmodule, const WCHAR *resource, struct IDirect3DVolumeTexture9 **volume);
370 #define D3DXCreateVolumeTextureFromResource WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResource)
371
372 HRESULT WINAPI D3DXCreateTextureFromFileExA(      LPDIRECT3DDEVICE9 device,
373                                                   LPCSTR srcfile,
374                                                   UINT width,
375                                                   UINT height,
376                                                   UINT miplevels,
377                                                   DWORD usage,
378                                                   D3DFORMAT format,
379                                                   D3DPOOL pool,
380                                                   DWORD filter,
381                                                   DWORD mipfilter,
382                                                   D3DCOLOR colorkey,
383                                                   D3DXIMAGE_INFO *srcinfo,
384                                                   PALETTEENTRY *palette,
385                                                   LPDIRECT3DTEXTURE9 *texture);
386
387 HRESULT WINAPI D3DXCreateTextureFromFileExW(      LPDIRECT3DDEVICE9 device,
388                                                   LPCWSTR srcfile,
389                                                   UINT width,
390                                                   UINT height,
391                                                   UINT miplevels,
392                                                   DWORD usage,
393                                                   D3DFORMAT format,
394                                                   D3DPOOL pool,
395                                                   DWORD filter,
396                                                   DWORD mipfilter,
397                                                   D3DCOLOR colorkey,
398                                                   D3DXIMAGE_INFO *srcinfo,
399                                                   PALETTEENTRY *palette,
400                                                   LPDIRECT3DTEXTURE9 *texture);
401 #define        D3DXCreateTextureFromFileEx WINELIB_NAME_AW(D3DXCreateTextureFromFileEx)
402
403 HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(  LPDIRECT3DDEVICE9 device,
404                                                   LPCSTR srcfile,
405                                                   UINT size,
406                                                   UINT miplevels,
407                                                   DWORD usage,
408                                                   D3DFORMAT format,
409                                                   D3DPOOL pool,
410                                                   DWORD filter,
411                                                   DWORD mipfilter,
412                                                   D3DCOLOR colorkey,
413                                                   D3DXIMAGE_INFO *srcinfo,
414                                                   PALETTEENTRY *palette,
415                                                   LPDIRECT3DCUBETEXTURE9 *cube);
416
417 HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(  LPDIRECT3DDEVICE9 device,
418                                                   LPCWSTR srcfile,
419                                                   UINT size,
420                                                   UINT miplevels,
421                                                   DWORD usage,
422                                                   D3DFORMAT format,
423                                                   D3DPOOL pool,
424                                                   DWORD filter,
425                                                   DWORD mipfilter,
426                                                   D3DCOLOR colorkey,
427                                                   D3DXIMAGE_INFO *srcinfo,
428                                                   PALETTEENTRY *palette,
429                                                   LPDIRECT3DCUBETEXTURE9 *cube);
430 #define        D3DXCreateCubeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromFileEx)
431
432 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
433         UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
434         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
435         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
436 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
437         UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
438         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
439         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
440 #define D3DXCreateVolumeTextureFromFileEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
441
442 HRESULT WINAPI D3DXCreateTextureFromResourceExA(      LPDIRECT3DDEVICE9 device,
443                                                       HMODULE srcmodule,
444                                                       LPCSTR resource,
445                                                       UINT width,
446                                                       UINT height,
447                                                       UINT miplevels,
448                                                       DWORD usage,
449                                                       D3DFORMAT format,
450                                                       D3DPOOL pool,
451                                                       DWORD filter,
452                                                       DWORD mipfilter,
453                                                       D3DCOLOR colorkey,
454                                                       D3DXIMAGE_INFO *srcinfo,
455                                                       PALETTEENTRY *palette,
456                                                       LPDIRECT3DTEXTURE9 *texture);
457
458 HRESULT WINAPI D3DXCreateTextureFromResourceExW(      LPDIRECT3DDEVICE9 device,
459                                                       HMODULE srcmodule,
460                                                       LPCWSTR resource,
461                                                       UINT width,
462                                                       UINT height,
463                                                       UINT miplevels,
464                                                       DWORD usage,
465                                                       D3DFORMAT format,
466                                                       D3DPOOL pool,
467                                                       DWORD filter,
468                                                       DWORD mipfilter,
469                                                       D3DCOLOR colorkey,
470                                                       D3DXIMAGE_INFO *srcinfo,
471                                                       PALETTEENTRY *palette,
472                                                       LPDIRECT3DTEXTURE9 *texture);
473 #define        D3DXCreateTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateTextureFromResourceEx)
474
475 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(  LPDIRECT3DDEVICE9 device,
476                                                       HMODULE srcmodule,
477                                                       LPCSTR resource,
478                                                       UINT size,
479                                                       UINT miplevels,
480                                                       DWORD usage,
481                                                       D3DFORMAT format,
482                                                       D3DPOOL pool,
483                                                       DWORD filter,
484                                                       DWORD mipfilter,
485                                                       D3DCOLOR colorkey,
486                                                       D3DXIMAGE_INFO *srcinfo,
487                                                       PALETTEENTRY *palette,
488                                                       LPDIRECT3DCUBETEXTURE9 *cube);
489
490 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(  LPDIRECT3DDEVICE9 device,
491                                                       HMODULE srcmodule,
492                                                       LPCWSTR resource,
493                                                       UINT size,
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                                                       LPDIRECT3DCUBETEXTURE9 *cube);
504 #define        D3DXCreateCubeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
505
506 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
507         const char *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
508         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
509         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
510 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
511         const WCHAR *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
512         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
513         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
514 #define D3DXCreateVolumeTextureFromResourceEx WINELIB_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
515
516 HRESULT WINAPI D3DXCreateTextureFromFileInMemory(      LPDIRECT3DDEVICE9 device,
517                                                        LPCVOID srcdata,
518                                                        UINT srcdatasize,
519                                                        LPDIRECT3DTEXTURE9* texture);
520
521 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(  LPDIRECT3DDEVICE9 device,
522                                                        LPCVOID srcdata,
523                                                        UINT srcdatasize,
524                                                        LPDIRECT3DCUBETEXTURE9* cube);
525 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
526         const void *srcdata, UINT srcdatasize, struct IDirect3DVolumeTexture9 **volume);
527
528 HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(      LPDIRECT3DDEVICE9 device,
529                                                          LPCVOID srcdata,
530                                                          UINT srcdatasize,
531                                                          UINT width,
532                                                          UINT height,
533                                                          UINT miplevels,
534                                                          DWORD usage,
535                                                          D3DFORMAT format,
536                                                          D3DPOOL pool,
537                                                          DWORD filter,
538                                                          DWORD mipfilter,
539                                                          D3DCOLOR colorkey,
540                                                          D3DXIMAGE_INFO *srcinfo,
541                                                          PALETTEENTRY *palette,
542                                                          LPDIRECT3DTEXTURE9 *texture);
543
544 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(  LPDIRECT3DDEVICE9 device,
545                                                          LPCVOID srcdata,
546                                                          UINT srcdatasize,
547                                                          UINT size,
548                                                          UINT miplevels,
549                                                          DWORD usage,
550                                                          D3DFORMAT format,
551                                                          D3DPOOL pool,
552                                                          DWORD filter,
553                                                          DWORD mipfilter,
554                                                          D3DCOLOR colorkey,
555                                                          D3DXIMAGE_INFO *srcinfo,
556                                                          PALETTEENTRY *palette,
557                                                          LPDIRECT3DCUBETEXTURE9 *cube);
558 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
559         UINT srcdatasize, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
560         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
561         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
562
563 HRESULT WINAPI D3DXSaveTextureToFileInMemory(LPD3DXBUFFER *destbuffer,
564                                              D3DXIMAGE_FILEFORMAT destformat,
565                                              LPDIRECT3DBASETEXTURE9 srctexture,
566                                              CONST PALETTEENTRY *srcpalette);
567
568 HRESULT WINAPI D3DXSaveTextureToFileA(LPCSTR destfile,
569                                       D3DXIMAGE_FILEFORMAT destformat,
570                                       LPDIRECT3DBASETEXTURE9 srctexture,
571                                       CONST PALETTEENTRY *srcpalette);
572 HRESULT WINAPI D3DXSaveTextureToFileW(LPCWSTR destfile,
573                                       D3DXIMAGE_FILEFORMAT destformat,
574                                       LPDIRECT3DBASETEXTURE9 srctexture,
575                                       CONST PALETTEENTRY *srcpalette);
576 #define        D3DXSaveTextureToFile WINELIB_NAME_AW(D3DXSaveTextureToFile)
577
578
579 /* Other functions */
580 HRESULT WINAPI D3DXFilterTexture(      LPDIRECT3DBASETEXTURE9 texture,
581                                        CONST PALETTEENTRY *palette,
582                                        UINT srclevel,
583                                        DWORD filter);
584 #define D3DXFilterCubeTexture D3DXFilterTexture
585 #define D3DXFilterVolumeTexture D3DXFilterTexture
586
587 HRESULT WINAPI D3DXFillTexture(        LPDIRECT3DTEXTURE9 texture,
588                                        LPD3DXFILL2D function,
589                                        LPVOID data);
590
591 HRESULT WINAPI D3DXFillCubeTexture(    LPDIRECT3DCUBETEXTURE9 cube,
592                                        LPD3DXFILL3D function,
593                                        LPVOID data);
594 HRESULT WINAPI D3DXFillVolumeTexture(struct IDirect3DVolumeTexture9 *volume, LPD3DXFILL3D function, void *data);
595
596 HRESULT WINAPI D3DXFillTextureTX(      LPDIRECT3DTEXTURE9 texture,
597                                        CONST DWORD *function,
598                                        CONST D3DXVECTOR4 *constants,
599                                        UINT numconstants);
600
601 HRESULT WINAPI D3DXFillCubeTextureTX(  LPDIRECT3DCUBETEXTURE9 cube,
602                                        CONST DWORD *function,
603                                        CONST D3DXVECTOR4 *constants,
604                                        UINT numconstants);
605 HRESULT WINAPI D3DXFillVolumeTextureTX(struct IDirect3DVolumeTexture9 *volume, const DWORD *function,
606         const D3DXVECTOR4 *constants, UINT numconstants);
607
608 HRESULT WINAPI D3DXComputeNormalMap(   LPDIRECT3DTEXTURE9 texture,
609                                        LPDIRECT3DTEXTURE9 srctexture,
610                                        CONST PALETTEENTRY *srcpalette,
611                                        DWORD flags,
612                                        DWORD channel,
613                                        FLOAT amplitude);
614
615
616 #ifdef __cplusplus
617 }
618 #endif
619
620 #endif /* __WINE_D3DX9TEX_H */