master
  1#include <_mingw_unicode.h>
  2/*
  3 * Copyright (C) 2008 Tony Wasserka
  4 *
  5 * This library is free software; you can redistribute it and/or
  6 * modify it under the terms of the GNU Lesser General Public
  7 * License as published by the Free Software Foundation; either
  8 * version 2.1 of the License, or (at your option) any later version.
  9 *
 10 * This library is distributed in the hope that it will be useful,
 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 13 * Lesser General Public License for more details.
 14 *
 15 * You should have received a copy of the GNU Lesser General Public
 16 * License along with this library; if not, write to the Free Software
 17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 18 */
 19
 20#include "d3dx9.h"
 21
 22#ifndef __WINE_D3DX9TEX_H
 23#define __WINE_D3DX9TEX_H
 24
 25/**********************************************
 26 ***************** Definitions ****************
 27 **********************************************/
 28#define D3DX_FILTER_NONE                 0x00000001
 29#define D3DX_FILTER_POINT                0x00000002
 30#define D3DX_FILTER_LINEAR               0x00000003
 31#define D3DX_FILTER_TRIANGLE             0x00000004
 32#define D3DX_FILTER_BOX                  0x00000005
 33#define D3DX_FILTER_MIRROR_U             0x00010000
 34#define D3DX_FILTER_MIRROR_V             0x00020000
 35#define D3DX_FILTER_MIRROR_W             0x00040000
 36#define D3DX_FILTER_MIRROR               0x00070000
 37#define D3DX_FILTER_DITHER               0x00080000
 38#define D3DX_FILTER_DITHER_DIFFUSION     0x00100000
 39#define D3DX_FILTER_SRGB_IN              0x00200000
 40#define D3DX_FILTER_SRGB_OUT             0x00400000
 41#define D3DX_FILTER_SRGB                 0x00600000
 42
 43#define D3DX_SKIP_DDS_MIP_LEVELS_MASK    0x1f
 44#define D3DX_SKIP_DDS_MIP_LEVELS_SHIFT   26
 45#define D3DX_SKIP_DDS_MIP_LEVELS(l, f)   ((((l) & D3DX_SKIP_DDS_MIP_LEVELS_MASK) \
 46        << D3DX_SKIP_DDS_MIP_LEVELS_SHIFT) | ((f) == D3DX_DEFAULT ? D3DX_FILTER_BOX : (f)))
 47
 48#define D3DX_NORMALMAP_MIRROR_U          0x00010000
 49#define D3DX_NORMALMAP_MIRROR_V          0x00020000
 50#define D3DX_NORMALMAP_MIRROR            0x00030000
 51#define D3DX_NORMALMAP_INVERTSIGN        0x00080000
 52#define D3DX_NORMALMAP_COMPUTE_OCCLUSION 0x00100000
 53
 54#define D3DX_CHANNEL_RED                 0x00000001
 55#define D3DX_CHANNEL_BLUE                0x00000002
 56#define D3DX_CHANNEL_GREEN               0x00000004
 57#define D3DX_CHANNEL_ALPHA               0x00000008
 58#define D3DX_CHANNEL_LUMINANCE           0x00000010
 59
 60/**********************************************
 61 ****************** Typedefs ******************
 62 **********************************************/
 63typedef enum _D3DXIMAGE_FILEFORMAT
 64{
 65    D3DXIFF_BMP,
 66    D3DXIFF_JPG,
 67    D3DXIFF_TGA,
 68    D3DXIFF_PNG,
 69    D3DXIFF_DDS,
 70    D3DXIFF_PPM,
 71    D3DXIFF_DIB,
 72    D3DXIFF_HDR,
 73    D3DXIFF_PFM,
 74    D3DXIFF_FORCE_DWORD = 0x7fffffff
 75} D3DXIMAGE_FILEFORMAT;
 76
 77typedef struct _D3DXIMAGE_INFO
 78{
 79    UINT Width;
 80    UINT Height;
 81    UINT Depth;
 82    UINT MipLevels;
 83    D3DFORMAT Format;
 84    D3DRESOURCETYPE ResourceType;
 85    D3DXIMAGE_FILEFORMAT ImageFileFormat;
 86} D3DXIMAGE_INFO;
 87
 88/**********************************************
 89 ****************** Functions *****************
 90 **********************************************/
 91/* Typedefs for callback functions */
 92typedef void (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, const D3DXVECTOR2 *texcoord,
 93        const D3DXVECTOR2 *texelsize, void *data);
 94typedef void (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, const D3DXVECTOR3 *texcoord,
 95        const D3DXVECTOR3 *texelsize, void *data);
 96
 97#ifdef __cplusplus
 98extern "C" {
 99#endif
100
101
102/* Image Information */
103HRESULT WINAPI D3DXGetImageInfoFromFileA(const char *file, D3DXIMAGE_INFO *info);
104HRESULT WINAPI D3DXGetImageInfoFromFileW(const WCHAR *file, D3DXIMAGE_INFO *info);
105#define        D3DXGetImageInfoFromFile __MINGW_NAME_AW(D3DXGetImageInfoFromFile)
106
107HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, const char *resource, D3DXIMAGE_INFO *info);
108HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, const WCHAR *resource, D3DXIMAGE_INFO *info);
109#define        D3DXGetImageInfoFromResource __MINGW_NAME_AW(D3DXGetImageInfoFromResource)
110
111HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT data_size, D3DXIMAGE_INFO *info);
112
113
114/* Surface Loading/Saving */
115HRESULT WINAPI D3DXLoadSurfaceFromFileA(struct IDirect3DSurface9 *destsurface,
116        const PALETTEENTRY *destpalette, const RECT *destrect, const char *srcfile,
117        const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
118HRESULT WINAPI D3DXLoadSurfaceFromFileW(struct IDirect3DSurface9 *destsurface,
119        const PALETTEENTRY *destpalette, const RECT *destrect, const WCHAR *srcfile,
120        const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
121#define D3DXLoadSurfaceFromFile __MINGW_NAME_AW(D3DXLoadSurfaceFromFile)
122
123HRESULT WINAPI D3DXLoadSurfaceFromResourceA(struct IDirect3DSurface9 *destsurface,
124        const PALETTEENTRY *destpalette, const RECT *destrect, HMODULE srcmodule, const char *resource,
125        const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
126HRESULT WINAPI D3DXLoadSurfaceFromResourceW(struct IDirect3DSurface9 *destsurface,
127        const PALETTEENTRY *destpalette, const RECT *destrect, HMODULE srcmodule, const WCHAR *resource,
128        const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
129#define D3DXLoadSurfaceFromResource __MINGW_NAME_AW(D3DXLoadSurfaceFromResource)
130
131HRESULT WINAPI D3DXLoadSurfaceFromFileInMemory(struct IDirect3DSurface9 *destsurface,
132        const PALETTEENTRY *destpalette, const RECT *destrect, const void *srcdata, UINT srcdatasize,
133        const RECT *srcrect, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
134
135HRESULT WINAPI D3DXLoadSurfaceFromSurface(struct IDirect3DSurface9 *destsurface,
136        const PALETTEENTRY *destpalette, const RECT *destrect, struct IDirect3DSurface9 *srcsurface,
137        const PALETTEENTRY *srcpalette, const RECT *srcrect, DWORD filter, D3DCOLOR colorkey);
138
139HRESULT WINAPI D3DXLoadSurfaceFromMemory(IDirect3DSurface9 *dst_surface,
140        const PALETTEENTRY *dst_palette, const RECT *dst_rect, const void *src_memory,
141        D3DFORMAT src_format, UINT src_pitch, const PALETTEENTRY *src_palette, const RECT *src_rect,
142        DWORD filter, D3DCOLOR color_key);
143
144HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(struct ID3DXBuffer **destbuffer,
145        D3DXIMAGE_FILEFORMAT destformat, struct IDirect3DSurface9 *srcsurface,
146        const PALETTEENTRY *srcpalette, const RECT *srcrect);
147
148HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
149        struct IDirect3DSurface9 *srcsurface, const PALETTEENTRY *srcpalette, const RECT *srcrect);
150HRESULT WINAPI D3DXSaveSurfaceToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
151        struct IDirect3DSurface9 *srcsurface, const PALETTEENTRY *srcpalette, const RECT *srcrect);
152#define D3DXSaveSurfaceToFile __MINGW_NAME_AW(D3DXSaveSurfaceToFile)
153
154
155/* Volume Loading/Saving */
156HRESULT WINAPI D3DXLoadVolumeFromFileA(struct IDirect3DVolume9 *destvolume,
157        const PALETTEENTRY *destpalette, const D3DBOX *destbox, const char *srcfile,
158        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
159HRESULT WINAPI D3DXLoadVolumeFromFileW( struct IDirect3DVolume9 *destvolume,
160        const PALETTEENTRY *destpalette, const D3DBOX *destbox, const WCHAR *srcfile,
161        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
162#define D3DXLoadVolumeFromFile __MINGW_NAME_AW(D3DXLoadVolumeFromFile)
163
164HRESULT WINAPI D3DXLoadVolumeFromResourceA(struct IDirect3DVolume9 *destvolume,
165        const PALETTEENTRY *destpalette, const D3DBOX *destbox, HMODULE srcmodule, const char *resource,
166        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
167HRESULT WINAPI D3DXLoadVolumeFromResourceW(struct IDirect3DVolume9 *destvolume,
168        const PALETTEENTRY *destpalette, const D3DBOX *destbox, HMODULE srcmodule, const WCHAR *resource,
169        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
170#define D3DXLoadVolumeFromResource __MINGW_NAME_AW(D3DXLoadVolumeFromResource)
171
172HRESULT WINAPI D3DXLoadVolumeFromFileInMemory(struct IDirect3DVolume9 *destvolume,
173        const PALETTEENTRY *destpalette, const D3DBOX *destbox, const void *srcdata, UINT srcdatasize,
174        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo);
175
176HRESULT WINAPI D3DXLoadVolumeFromVolume(struct IDirect3DVolume9 *destvolume,
177        const PALETTEENTRY *destpalette, const D3DBOX *destbox, struct IDirect3DVolume9 *srcvolume,
178        const PALETTEENTRY *srcpalette, const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey);
179
180HRESULT WINAPI D3DXLoadVolumeFromMemory(struct IDirect3DVolume9 *destvolume,
181        const PALETTEENTRY *destpalette, const D3DBOX *destbox, const void *srcmemory,
182        D3DFORMAT srcformat, UINT srcrowpitch, UINT srcslicepitch, const PALETTEENTRY *srcpalette,
183        const D3DBOX *srcbox, DWORD filter, D3DCOLOR colorkey);
184
185HRESULT WINAPI D3DXSaveVolumeToFileInMemory(struct ID3DXBuffer **dst_buffer, D3DXIMAGE_FILEFORMAT dst_format,
186        struct IDirect3DVolume9 *src_volume, const PALETTEENTRY *src_palette, const D3DBOX *src_box);
187
188HRESULT WINAPI D3DXSaveVolumeToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
189        struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
190HRESULT WINAPI D3DXSaveVolumeToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
191        struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
192#define D3DXSaveVolumeToFile __MINGW_NAME_AW(D3DXSaveVolumeToFile)
193
194
195/* Texture, cube texture and volume texture creation */
196HRESULT WINAPI D3DXCheckTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
197        UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
198HRESULT WINAPI D3DXCheckCubeTextureRequirements(struct IDirect3DDevice9 *device, UINT *size,
199        UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
200HRESULT WINAPI D3DXCheckVolumeTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
201        UINT *depth, UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
202
203HRESULT WINAPI D3DXCreateTexture(struct IDirect3DDevice9 *device, UINT width, UINT height,
204        UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DTexture9 **texture);
205HRESULT WINAPI D3DXCreateCubeTexture(struct IDirect3DDevice9 *device, UINT size,
206        UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DCubeTexture9 **cube);
207HRESULT WINAPI D3DXCreateVolumeTexture(struct IDirect3DDevice9 *device, UINT width, UINT height, UINT depth,
208        UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DVolumeTexture9 **volume);
209
210HRESULT WINAPI D3DXCreateTextureFromFileA(struct IDirect3DDevice9 *device,
211        const char *srcfile, struct IDirect3DTexture9 **texture);
212HRESULT WINAPI D3DXCreateTextureFromFileW(struct IDirect3DDevice9 *device,
213        const WCHAR *srcfile, struct IDirect3DTexture9 **texture);
214#define D3DXCreateTextureFromFile __MINGW_NAME_AW(D3DXCreateTextureFromFile)
215
216HRESULT WINAPI D3DXCreateCubeTextureFromFileA(struct IDirect3DDevice9 *device,
217        const char *srcfile, struct IDirect3DCubeTexture9 **cube);
218HRESULT WINAPI D3DXCreateCubeTextureFromFileW(struct IDirect3DDevice9 *device,
219        const WCHAR *srcfile, struct IDirect3DCubeTexture9 **cube);
220#define D3DXCreateCubeTextureFromFile __MINGW_NAME_AW(D3DXCreateCubeTextureFromFile)
221
222HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(struct IDirect3DDevice9 *device,
223        const char *srcfile, struct IDirect3DVolumeTexture9 **volume);
224HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(struct IDirect3DDevice9 *device,
225        const WCHAR *srcfile, struct IDirect3DVolumeTexture9 **volume);
226#define D3DXCreateVolumeTextureFromFile __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFile)
227
228HRESULT WINAPI D3DXCreateTextureFromResourceA(struct IDirect3DDevice9 *device,
229        HMODULE srcmodule, const char *resource, struct IDirect3DTexture9 **texture);
230HRESULT WINAPI D3DXCreateTextureFromResourceW(struct IDirect3DDevice9 *device,
231        HMODULE srcmodule, const WCHAR *resource, struct IDirect3DTexture9 **texture);
232#define D3DXCreateTextureFromResource __MINGW_NAME_AW(D3DXCreateTextureFromResource)
233
234HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(struct IDirect3DDevice9 *device,
235        HMODULE srcmodule, const char *resource, struct IDirect3DCubeTexture9 **cube);
236HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(struct IDirect3DDevice9 *device,
237        HMODULE srcmodule, const WCHAR *resource, struct IDirect3DCubeTexture9 **cube);
238#define D3DXCreateCubeTextureFromResource __MINGW_NAME_AW(D3DXCreateCubeTextureFromResource)
239
240HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(struct IDirect3DDevice9 *device,
241        HMODULE srcmodule, const char *resource, struct IDirect3DVolumeTexture9 **volume);
242HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(struct IDirect3DDevice9 *device,
243        HMODULE srcmodule, const WCHAR *resource, struct IDirect3DVolumeTexture9 **volume);
244#define D3DXCreateVolumeTextureFromResource __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResource)
245
246HRESULT WINAPI D3DXCreateTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
247        UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
248        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
249        PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
250HRESULT WINAPI D3DXCreateTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
251        UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
252        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
253        PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
254#define D3DXCreateTextureFromFileEx __MINGW_NAME_AW(D3DXCreateTextureFromFileEx)
255
256HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
257        UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
258        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
259        PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
260HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
261        UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
262        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
263        PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
264#define D3DXCreateCubeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromFileEx)
265
266HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
267        UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
268        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
269        PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
270HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
271        UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
272        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
273        PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
274#define D3DXCreateVolumeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
275
276HRESULT WINAPI D3DXCreateTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
277        const char *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
278        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
279        PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
280HRESULT WINAPI D3DXCreateTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
281        const WCHAR *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
282        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
283        PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
284#define D3DXCreateTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateTextureFromResourceEx)
285
286HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
287        const char *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
288        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
289        PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
290HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
291        const WCHAR *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
292        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
293        PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
294#define D3DXCreateCubeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
295
296HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
297        const char *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
298        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
299        PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
300HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
301        const WCHAR *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
302        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
303        PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
304#define D3DXCreateVolumeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
305
306HRESULT WINAPI D3DXCreateTextureFromFileInMemory(struct IDirect3DDevice9 *device,
307        const void *srcdata, UINT srcdatasize, struct IDirect3DTexture9 **texture);
308HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
309        const void *srcdata, UINT srcdatasize, struct IDirect3DCubeTexture9 **cube);
310HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
311        const void *srcdata, UINT srcdatasize, struct IDirect3DVolumeTexture9 **volume);
312
313HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
314        UINT srcdatasize, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
315        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
316        PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
317HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
318        UINT srcdatasize, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
319        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
320        PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
321HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
322        UINT srcdatasize, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
323        D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
324        PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
325
326HRESULT WINAPI D3DXSaveTextureToFileInMemory(struct ID3DXBuffer **destbuffer, D3DXIMAGE_FILEFORMAT destformat,
327        struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
328HRESULT WINAPI D3DXSaveTextureToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
329        struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
330HRESULT WINAPI D3DXSaveTextureToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
331        struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
332#define D3DXSaveTextureToFile __MINGW_NAME_AW(D3DXSaveTextureToFile)
333
334/* Other functions */
335HRESULT WINAPI D3DXFilterTexture(struct IDirect3DBaseTexture9 *texture,
336        const PALETTEENTRY *palette, UINT srclevel, DWORD filter);
337#define D3DXFilterCubeTexture D3DXFilterTexture
338#define D3DXFilterVolumeTexture D3DXFilterTexture
339
340HRESULT WINAPI D3DXFillTexture(struct IDirect3DTexture9 *texture, LPD3DXFILL2D function, void *data);
341HRESULT WINAPI D3DXFillCubeTexture(struct IDirect3DCubeTexture9 *cube, LPD3DXFILL3D function, void *data);
342HRESULT WINAPI D3DXFillVolumeTexture(struct IDirect3DVolumeTexture9 *volume, LPD3DXFILL3D function, void *data);
343
344HRESULT WINAPI D3DXFillTextureTX(struct IDirect3DTexture9 *texture, ID3DXTextureShader *texture_shader);
345HRESULT WINAPI D3DXFillCubeTextureTX(struct IDirect3DCubeTexture9 *cube, ID3DXTextureShader *texture_shader);
346HRESULT WINAPI D3DXFillVolumeTextureTX(struct IDirect3DVolumeTexture9 *volume, ID3DXTextureShader *texture_shader);
347
348HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *srctexture,
349        const PALETTEENTRY *srcpalette, DWORD flags, DWORD channel, float amplitude);
350
351#ifdef __cplusplus
352}
353#endif
354
355#endif /* __WINE_D3DX9TEX_H */