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  **********************************************/
63 typedef 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 
77 typedef 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 */
92 typedef void (WINAPI *LPD3DXFILL2D)(D3DXVECTOR4 *out, const D3DXVECTOR2 *texcoord,
93         const D3DXVECTOR2 *texelsize, void *data);
94 typedef void (WINAPI *LPD3DXFILL3D)(D3DXVECTOR4 *out, const D3DXVECTOR3 *texcoord,
95         const D3DXVECTOR3 *texelsize, void *data);
96 
97 #ifdef __cplusplus
98 extern "C" {
99 #endif
100 
101 
102 /* Image Information */
103 HRESULT WINAPI D3DXGetImageInfoFromFileA(const char *file, D3DXIMAGE_INFO *info);
104 HRESULT WINAPI D3DXGetImageInfoFromFileW(const WCHAR *file, D3DXIMAGE_INFO *info);
105 #define        D3DXGetImageInfoFromFile __MINGW_NAME_AW(D3DXGetImageInfoFromFile)
106 
107 HRESULT WINAPI D3DXGetImageInfoFromResourceA(HMODULE module, const char *resource, D3DXIMAGE_INFO *info);
108 HRESULT WINAPI D3DXGetImageInfoFromResourceW(HMODULE module, const WCHAR *resource, D3DXIMAGE_INFO *info);
109 #define        D3DXGetImageInfoFromResource __MINGW_NAME_AW(D3DXGetImageInfoFromResource)
110 
111 HRESULT WINAPI D3DXGetImageInfoFromFileInMemory(const void *data, UINT data_size, D3DXIMAGE_INFO *info);
112 
113 
114 /* Surface Loading/Saving */
115 HRESULT 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);
118 HRESULT 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 
123 HRESULT 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);
126 HRESULT 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 
131 HRESULT 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 
135 HRESULT 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 
139 HRESULT 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 
144 HRESULT WINAPI D3DXSaveSurfaceToFileInMemory(struct ID3DXBuffer **destbuffer,
145         D3DXIMAGE_FILEFORMAT destformat, struct IDirect3DSurface9 *srcsurface,
146         const PALETTEENTRY *srcpalette, const RECT *srcrect);
147 
148 HRESULT WINAPI D3DXSaveSurfaceToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
149         struct IDirect3DSurface9 *srcsurface, const PALETTEENTRY *srcpalette, const RECT *srcrect);
150 HRESULT 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 */
156 HRESULT 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);
159 HRESULT 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 
164 HRESULT 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);
167 HRESULT 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 
172 HRESULT 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 
176 HRESULT 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 
180 HRESULT 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 
185 HRESULT WINAPI D3DXSaveVolumeToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
186         struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
187 HRESULT WINAPI D3DXSaveVolumeToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
188         struct IDirect3DVolume9 *srcvolume, const PALETTEENTRY *srcpalette, const D3DBOX *srcbox);
189 #define D3DXSaveVolumeToFile __MINGW_NAME_AW(D3DXSaveVolumeToFile)
190 
191 
192 /* Texture, cube texture and volume texture creation */
193 HRESULT WINAPI D3DXCheckTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
194         UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
195 HRESULT WINAPI D3DXCheckCubeTextureRequirements(struct IDirect3DDevice9 *device, UINT *size,
196         UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
197 HRESULT WINAPI D3DXCheckVolumeTextureRequirements(struct IDirect3DDevice9 *device, UINT *width, UINT *height,
198         UINT *depth, UINT *miplevels, DWORD usage, D3DFORMAT *format, D3DPOOL pool);
199 
200 HRESULT WINAPI D3DXCreateTexture(struct IDirect3DDevice9 *device, UINT width, UINT height,
201         UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DTexture9 **texture);
202 HRESULT WINAPI D3DXCreateCubeTexture(struct IDirect3DDevice9 *device, UINT size,
203         UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DCubeTexture9 **cube);
204 HRESULT WINAPI D3DXCreateVolumeTexture(struct IDirect3DDevice9 *device, UINT width, UINT height, UINT depth,
205         UINT miplevels, DWORD usage, D3DFORMAT format, D3DPOOL pool, struct IDirect3DVolumeTexture9 **volume);
206 
207 HRESULT WINAPI D3DXCreateTextureFromFileA(struct IDirect3DDevice9 *device,
208         const char *srcfile, struct IDirect3DTexture9 **texture);
209 HRESULT WINAPI D3DXCreateTextureFromFileW(struct IDirect3DDevice9 *device,
210         const WCHAR *srcfile, struct IDirect3DTexture9 **texture);
211 #define D3DXCreateTextureFromFile __MINGW_NAME_AW(D3DXCreateTextureFromFile)
212 
213 HRESULT WINAPI D3DXCreateCubeTextureFromFileA(struct IDirect3DDevice9 *device,
214         const char *srcfile, struct IDirect3DCubeTexture9 **cube);
215 HRESULT WINAPI D3DXCreateCubeTextureFromFileW(struct IDirect3DDevice9 *device,
216         const WCHAR *srcfile, struct IDirect3DCubeTexture9 **cube);
217 #define D3DXCreateCubeTextureFromFile __MINGW_NAME_AW(D3DXCreateCubeTextureFromFile)
218 
219 HRESULT WINAPI D3DXCreateVolumeTextureFromFileA(struct IDirect3DDevice9 *device,
220         const char *srcfile, struct IDirect3DVolumeTexture9 **volume);
221 HRESULT WINAPI D3DXCreateVolumeTextureFromFileW(struct IDirect3DDevice9 *device,
222         const WCHAR *srcfile, struct IDirect3DVolumeTexture9 **volume);
223 #define D3DXCreateVolumeTextureFromFile __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFile)
224 
225 HRESULT WINAPI D3DXCreateTextureFromResourceA(struct IDirect3DDevice9 *device,
226         HMODULE srcmodule, const char *resource, struct IDirect3DTexture9 **texture);
227 HRESULT WINAPI D3DXCreateTextureFromResourceW(struct IDirect3DDevice9 *device,
228         HMODULE srcmodule, const WCHAR *resource, struct IDirect3DTexture9 **texture);
229 #define D3DXCreateTextureFromResource __MINGW_NAME_AW(D3DXCreateTextureFromResource)
230 
231 HRESULT WINAPI D3DXCreateCubeTextureFromResourceA(struct IDirect3DDevice9 *device,
232         HMODULE srcmodule, const char *resource, struct IDirect3DCubeTexture9 **cube);
233 HRESULT WINAPI D3DXCreateCubeTextureFromResourceW(struct IDirect3DDevice9 *device,
234         HMODULE srcmodule, const WCHAR *resource, struct IDirect3DCubeTexture9 **cube);
235 #define D3DXCreateCubeTextureFromResource __MINGW_NAME_AW(D3DXCreateCubeTextureFromResource)
236 
237 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceA(struct IDirect3DDevice9 *device,
238         HMODULE srcmodule, const char *resource, struct IDirect3DVolumeTexture9 **volume);
239 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceW(struct IDirect3DDevice9 *device,
240         HMODULE srcmodule, const WCHAR *resource, struct IDirect3DVolumeTexture9 **volume);
241 #define D3DXCreateVolumeTextureFromResource __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResource)
242 
243 HRESULT WINAPI D3DXCreateTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
244         UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
245         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
246         PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
247 HRESULT WINAPI D3DXCreateTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
248         UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
249         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
250         PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
251 #define D3DXCreateTextureFromFileEx __MINGW_NAME_AW(D3DXCreateTextureFromFileEx)
252 
253 HRESULT WINAPI D3DXCreateCubeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
254         UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
255         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
256         PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
257 HRESULT WINAPI D3DXCreateCubeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
258         UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
259         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
260         PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
261 #define D3DXCreateCubeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromFileEx)
262 
263 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExA(struct IDirect3DDevice9 *device, const char *srcfile,
264         UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
265         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
266         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
267 HRESULT WINAPI D3DXCreateVolumeTextureFromFileExW(struct IDirect3DDevice9 *device, const WCHAR *srcfile,
268         UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
269         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
270         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
271 #define D3DXCreateVolumeTextureFromFileEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromFileEx)
272 
273 HRESULT WINAPI D3DXCreateTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
274         const char *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
275         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
276         PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
277 HRESULT WINAPI D3DXCreateTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
278         const WCHAR *resource, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
279         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
280         PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
281 #define D3DXCreateTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateTextureFromResourceEx)
282 
283 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
284         const char *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
285         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
286         PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
287 HRESULT WINAPI D3DXCreateCubeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
288         const WCHAR *resource, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
289         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
290         PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
291 #define D3DXCreateCubeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateCubeTextureFromResourceEx)
292 
293 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExA(struct IDirect3DDevice9 *device, HMODULE srcmodule,
294         const char *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
295         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
296         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
297 HRESULT WINAPI D3DXCreateVolumeTextureFromResourceExW(struct IDirect3DDevice9 *device, HMODULE srcmodule,
298         const WCHAR *resource, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
299         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
300         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
301 #define D3DXCreateVolumeTextureFromResourceEx __MINGW_NAME_AW(D3DXCreateVolumeTextureFromResourceEx)
302 
303 HRESULT WINAPI D3DXCreateTextureFromFileInMemory(struct IDirect3DDevice9 *device,
304         const void *srcdata, UINT srcdatasize, struct IDirect3DTexture9 **texture);
305 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
306         const void *srcdata, UINT srcdatasize, struct IDirect3DCubeTexture9 **cube);
307 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemory(struct IDirect3DDevice9 *device,
308         const void *srcdata, UINT srcdatasize, struct IDirect3DVolumeTexture9 **volume);
309 
310 HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
311         UINT srcdatasize, UINT width, UINT height, UINT miplevels, DWORD usage, D3DFORMAT format,
312         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
313         PALETTEENTRY *palette, struct IDirect3DTexture9 **texture);
314 HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
315         UINT srcdatasize, UINT size, UINT miplevels, DWORD usage, D3DFORMAT format,
316         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
317         PALETTEENTRY *palette, struct IDirect3DCubeTexture9 **cube);
318 HRESULT WINAPI D3DXCreateVolumeTextureFromFileInMemoryEx(struct IDirect3DDevice9 *device, const void *srcdata,
319         UINT srcdatasize, UINT width, UINT height, UINT depth, UINT miplevels, DWORD usage, D3DFORMAT format,
320         D3DPOOL pool, DWORD filter, DWORD mipfilter, D3DCOLOR colorkey, D3DXIMAGE_INFO *srcinfo,
321         PALETTEENTRY *palette, struct IDirect3DVolumeTexture9 **volume);
322 
323 HRESULT WINAPI D3DXSaveTextureToFileInMemory(struct ID3DXBuffer **destbuffer, D3DXIMAGE_FILEFORMAT destformat,
324         struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
325 HRESULT WINAPI D3DXSaveTextureToFileA(const char *destfile, D3DXIMAGE_FILEFORMAT destformat,
326         struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
327 HRESULT WINAPI D3DXSaveTextureToFileW(const WCHAR *destfile, D3DXIMAGE_FILEFORMAT destformat,
328         struct IDirect3DBaseTexture9 *srctexture, const PALETTEENTRY *srcpalette);
329 #define D3DXSaveTextureToFile __MINGW_NAME_AW(D3DXSaveTextureToFile)
330 
331 /* Other functions */
332 HRESULT WINAPI D3DXFilterTexture(struct IDirect3DBaseTexture9 *texture,
333         const PALETTEENTRY *palette, UINT srclevel, DWORD filter);
334 #define D3DXFilterCubeTexture D3DXFilterTexture
335 #define D3DXFilterVolumeTexture D3DXFilterTexture
336 
337 HRESULT WINAPI D3DXFillTexture(struct IDirect3DTexture9 *texture, LPD3DXFILL2D function, void *data);
338 HRESULT WINAPI D3DXFillCubeTexture(struct IDirect3DCubeTexture9 *cube, LPD3DXFILL3D function, void *data);
339 HRESULT WINAPI D3DXFillVolumeTexture(struct IDirect3DVolumeTexture9 *volume, LPD3DXFILL3D function, void *data);
340 
341 HRESULT WINAPI D3DXFillTextureTX(struct IDirect3DTexture9 *texture, ID3DXTextureShader *texture_shader);
342 HRESULT WINAPI D3DXFillCubeTextureTX(struct IDirect3DCubeTexture9 *cube, ID3DXTextureShader *texture_shader);
343 HRESULT WINAPI D3DXFillVolumeTextureTX(struct IDirect3DVolumeTexture9 *volume, ID3DXTextureShader *texture_shader);
344 
345 HRESULT WINAPI D3DXComputeNormalMap(IDirect3DTexture9 *texture, IDirect3DTexture9 *srctexture,
346         const PALETTEENTRY *srcpalette, DWORD flags, DWORD channel, float amplitude);
347 
348 #ifdef __cplusplus
349 }
350 #endif
351 
352 #endif /* __WINE_D3DX9TEX_H */
353