From 87ee3e1f91a1de50c716bb19ac9c7b94e3222162 Mon Sep 17 00:00:00 2001 From: Daniel Reimer Date: Tue, 19 Jan 2010 10:09:33 +0000 Subject: [PATCH] Update the d3dx9_XX.dll files to the recent wine release version. Mostly stubs, but many games appreciate their existance. svn path=/trunk/; revision=45149 --- .../dll/directx/wine/d3dx9_36/d3dx9_36.spec | 10 +- .../directx/wine/d3dx9_36/d3dx9_36_private.h | 16 + reactos/dll/directx/wine/d3dx9_36/mesh.c | 36 +- reactos/dll/directx/wine/d3dx9_36/shader.c | 89 +++++ reactos/dll/directx/wine/d3dx9_36/surface.c | 118 +++++- reactos/dll/directx/wine/d3dx9_36/util.c | 50 +++ .../dll/directx/wine/d3dx9_42/d3dx9_42.rbuild | 20 ++ .../dll/directx/wine/d3dx9_42/d3dx9_42.spec | 336 ++++++++++++++++++ .../dll/directx/wine/d3dx9_42/d3dx9_42_main.c | 64 ++++ reactos/dll/directx/wine/d3dx9_42/version.rc | 28 ++ reactos/dll/directx/wine/wine.rbuild | 3 + reactos/include/dxsdk/d3dx9shader.h | 79 ++++ 12 files changed, 824 insertions(+), 25 deletions(-) create mode 100644 reactos/dll/directx/wine/d3dx9_42/d3dx9_42.rbuild create mode 100644 reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec create mode 100644 reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c create mode 100644 reactos/dll/directx/wine/d3dx9_42/version.rc diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec index d3fe3acad7c..08bb7f5db60 100644 --- a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec +++ b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36.spec @@ -1,8 +1,8 @@ -@ stub D3DXAssembleShader -@ stub D3DXAssembleShaderFromFileA -@ stub D3DXAssembleShaderFromFileW -@ stub D3DXAssembleShaderFromResourceA -@ stub D3DXAssembleShaderFromResourceW +@ stdcall D3DXAssembleShader(ptr long ptr ptr long ptr ptr) +@ stdcall D3DXAssembleShaderFromFileA(str ptr ptr long ptr ptr) +@ stdcall D3DXAssembleShaderFromFileW(wstr ptr ptr long ptr ptr) +@ stdcall D3DXAssembleShaderFromResourceA(long str ptr ptr long ptr ptr) +@ stdcall D3DXAssembleShaderFromResourceW(long wstr ptr ptr long ptr ptr) @ stdcall D3DXBoxBoundProbe(ptr ptr ptr ptr) @ stub D3DXCheckCubeTextureRequirements @ stub D3DXCheckTextureRequirements diff --git a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h index 8568366d277..cca440384c0 100644 --- a/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h +++ b/reactos/dll/directx/wine/d3dx9_36/d3dx9_36_private.h @@ -31,9 +31,25 @@ #include "d3dx9.h" /* for internal use */ +typedef enum _FormatType { + FORMAT_ARGB, /* unsigned */ + FORMAT_UNKNOWN +} FormatType; + +typedef struct _PixelFormatDesc { + D3DFORMAT format; + BYTE bits[4]; + BYTE shift[4]; + UINT bytes_per_pixel; + FormatType type; +} PixelFormatDesc; + HRESULT map_view_of_file(LPCWSTR filename, LPVOID *buffer, DWORD *length); HRESULT load_resource_into_memory(HMODULE module, HRSRC resinfo, LPVOID *buffer, DWORD *length); +const PixelFormatDesc *get_format_info(D3DFORMAT format); + + extern const ID3DXBufferVtbl D3DXBuffer_Vtbl; /* ID3DXBUFFER */ diff --git a/reactos/dll/directx/wine/d3dx9_36/mesh.c b/reactos/dll/directx/wine/d3dx9_36/mesh.c index 251bb40f9fc..91116b28341 100644 --- a/reactos/dll/directx/wine/d3dx9_36/mesh.c +++ b/reactos/dll/directx/wine/d3dx9_36/mesh.c @@ -20,10 +20,12 @@ #include "config.h" #include "wine/port.h" -#include "wine/debug.h" + +#define NONAMELESSUNION #include "windef.h" #include "wingdi.h" #include "d3dx9.h" +#include "wine/debug.h" WINE_DEFAULT_DEBUG_CHANNEL(d3dx); @@ -260,22 +262,22 @@ BOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *p0, CONST D3DXVECTOR3 *p1, CONST D3DXMATRIX m; D3DXVECTOR4 vec; - m.m[0][0] = p1->x - p0->x; - m.m[1][0] = p2->x - p0->x; - m.m[2][0] = -praydir->x; - m.m[3][0] = 0.0f; - m.m[0][1] = p1->y - p0->z; - m.m[1][1] = p2->y - p0->z; - m.m[2][1] = -praydir->y; - m.m[3][1] = 0.0f; - m.m[0][2] = p1->z - p0->z; - m.m[1][2] = p2->z - p0->z; - m.m[2][2] = -praydir->z; - m.m[3][2] = 0.0f; - m.m[0][3] = 0.0f; - m.m[1][3] = 0.0f; - m.m[2][3] = 0.0f; - m.m[3][3] = 1.0f; + m.u.m[0][0] = p1->x - p0->x; + m.u.m[1][0] = p2->x - p0->x; + m.u.m[2][0] = -praydir->x; + m.u.m[3][0] = 0.0f; + m.u.m[0][1] = p1->y - p0->z; + m.u.m[1][1] = p2->y - p0->z; + m.u.m[2][1] = -praydir->y; + m.u.m[3][1] = 0.0f; + m.u.m[0][2] = p1->z - p0->z; + m.u.m[1][2] = p2->z - p0->z; + m.u.m[2][2] = -praydir->z; + m.u.m[3][2] = 0.0f; + m.u.m[0][3] = 0.0f; + m.u.m[1][3] = 0.0f; + m.u.m[2][3] = 0.0f; + m.u.m[3][3] = 1.0f; vec.x = praypos->x - p0->x; vec.y = praypos->y - p0->y; diff --git a/reactos/dll/directx/wine/d3dx9_36/shader.c b/reactos/dll/directx/wine/d3dx9_36/shader.c index 48499ac6df1..c05f7b74d90 100644 --- a/reactos/dll/directx/wine/d3dx9_36/shader.c +++ b/reactos/dll/directx/wine/d3dx9_36/shader.c @@ -19,9 +19,11 @@ #include "config.h" #include "wine/port.h" #include "wine/debug.h" +#include "wine/unicode.h" #include "windef.h" #include "wingdi.h" #include "d3dx9.h" +#include "d3dx9_36_private.h" WINE_DEFAULT_DEBUG_CHANNEL(d3dx); @@ -131,3 +133,90 @@ LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 device) return NULL; } + +HRESULT WINAPI D3DXAssembleShader(LPCSTR data, + UINT data_len, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages) +{ + FIXME("stub\n"); + return D3DERR_INVALIDCALL; +} + +HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR filename, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages) +{ + LPWSTR filename_w = NULL; + DWORD len; + HRESULT ret; + + if (!filename) return D3DXERR_INVALIDDATA; + + len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0); + filename_w = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); + if (!filename_w) return E_OUTOFMEMORY; + MultiByteToWideChar(CP_ACP, 0, filename, -1, filename_w, len); + + ret = D3DXAssembleShaderFromFileW(filename_w, defines, include, flags, shader, error_messages); + + HeapFree(GetProcessHeap(), 0, filename_w); + return ret; +} + +HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR filename, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages) +{ + FIXME("stub\n"); + return D3DERR_INVALIDCALL; +} + +HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module, + LPCSTR resource, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages) +{ + HRSRC res; + LPCSTR buffer; + DWORD len; + + if (!(res = FindResourceA(module, resource, (LPCSTR)RT_RCDATA))) + return D3DXERR_INVALIDDATA; + if (FAILED(load_resource_into_memory(module, res, (LPVOID *)&buffer, &len))) + return D3DXERR_INVALIDDATA; + return D3DXAssembleShader(buffer, len, defines, include, flags, + shader, error_messages); +} + +HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module, + LPCWSTR resource, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages) +{ + HRSRC res; + LPCSTR buffer; + DWORD len; + + if (!(res = FindResourceW(module, resource, (LPCWSTR)RT_RCDATA))) + return D3DXERR_INVALIDDATA; + if (FAILED(load_resource_into_memory(module, res, (LPVOID *)&buffer, &len))) + return D3DXERR_INVALIDDATA; + return D3DXAssembleShader(buffer, len, defines, include, flags, + shader, error_messages); +} diff --git a/reactos/dll/directx/wine/d3dx9_36/surface.c b/reactos/dll/directx/wine/d3dx9_36/surface.c index 0bee7c8cde9..4d8d1f61346 100644 --- a/reactos/dll/directx/wine/d3dx9_36/surface.c +++ b/reactos/dll/directx/wine/d3dx9_36/surface.c @@ -323,6 +323,84 @@ HRESULT WINAPI D3DXLoadSurfaceFromResourceW(LPDIRECT3DSURFACE9 pDestSurface, return D3DXERR_INVALIDDATA; } + +/************************************************************ + * copy_simple_data + * + * Copies the source buffer to the destination buffer, performing + * any necessary format conversion and color keying. + * Works only for ARGB formats with 1 - 4 bytes per pixel. + */ +static void copy_simple_data(CONST BYTE *src, UINT srcpitch, POINT srcsize, CONST PixelFormatDesc *srcformat, + CONST BYTE *dest, UINT destpitch, POINT destsize, CONST PixelFormatDesc *destformat, + DWORD dwFilter) +{ + DWORD srcshift[4], destshift[4]; + DWORD srcmask[4], destmask[4]; + BOOL process_channel[4]; + DWORD channels[4]; + DWORD channelmask = 0; + + UINT minwidth, minheight; + BYTE *srcptr, *destptr; + UINT i, x, y; + + ZeroMemory(channels, sizeof(channels)); + ZeroMemory(process_channel, sizeof(process_channel)); + + for(i = 0;i < 4;i++) { + /* srcshift is used to extract the _relevant_ components */ + srcshift[i] = srcformat->shift[i] + max( srcformat->bits[i] - destformat->bits[i], 0); + + /* destshift is used to move the components to the correct position */ + destshift[i] = destformat->shift[i] + max(destformat->bits[i] - srcformat->bits[i], 0); + + srcmask[i] = ((1 << srcformat->bits[i]) - 1) << srcformat->shift[i]; + destmask[i] = ((1 << destformat->bits[i]) - 1) << destformat->shift[i]; + + /* channelmask specifies bits which aren't used in the source format but in the destination one */ + if(destformat->bits[i]) { + if(srcformat->bits[i]) process_channel[i] = TRUE; + else channelmask |= destmask[i]; + } + } + + minwidth = (srcsize.x < destsize.x) ? srcsize.x : destsize.x; + minheight = (srcsize.y < destsize.y) ? srcsize.y : destsize.y; + + for(y = 0;y < minheight;y++) { + srcptr = (BYTE*)( src + y * srcpitch); + destptr = (BYTE*)(dest + y * destpitch); + for(x = 0;x < minwidth;x++) { + /* extract source color components */ + if(srcformat->type == FORMAT_ARGB) { + const DWORD col = *(DWORD*)srcptr; + for(i = 0;i < 4;i++) + if(process_channel[i]) + channels[i] = (col & srcmask[i]) >> srcshift[i]; + } + + /* recombine the components */ + if(destformat->type == FORMAT_ARGB) { + DWORD* const pixel = (DWORD*)destptr; + *pixel = 0; + + for(i = 0;i < 4;i++) { + if(process_channel[i]) { + /* necessary to make sure that e.g. an X4R4G4B4 white maps to an R8G8B8 white instead of 0xf0f0f0 */ + signed int shift; + for(shift = destshift[i]; shift > destformat->shift[i]; shift -= srcformat->bits[i]) *pixel |= channels[i] << shift; + *pixel |= (channels[i] >> (destformat->shift[i] - shift)) << destformat->shift[i]; + } + } + *pixel |= channelmask; /* new channels are set to their maximal value */ + } + srcptr += srcformat->bytes_per_pixel; + destptr += destformat->bytes_per_pixel; + } + } +} + /************************************************************ * D3DXLoadSurfaceFromMemory * @@ -350,7 +428,8 @@ HRESULT WINAPI D3DXLoadSurfaceFromResourceW(LPDIRECT3DSURFACE9 pDestSurface, * E_FAIL, if SrcFormat is D3DFMT_UNKNOWN or the dimensions of pSrcRect are invalid * * NOTES - * pSrcRect specifies the dimensions of the source data + * pSrcRect specifies the dimensions of the source data; + * negative values for pSrcRect are allowed as we're only looking at the width and height anyway. * */ HRESULT WINAPI D3DXLoadSurfaceFromMemory(LPDIRECT3DSURFACE9 pDestSurface, @@ -364,11 +443,44 @@ HRESULT WINAPI D3DXLoadSurfaceFromMemory(LPDIRECT3DSURFACE9 pDestSurface, DWORD dwFilter, D3DCOLOR Colorkey) { - TRACE("stub\n"); + CONST PixelFormatDesc *srcformatdesc, *destformatdesc; + D3DSURFACE_DESC surfdesc; + D3DLOCKED_RECT lockrect; + POINT srcsize, destsize; + HRESULT hr; + TRACE("(void)\n"); if( !pDestSurface || !pSrcMemory || !pSrcRect ) return D3DERR_INVALIDCALL; if(SrcFormat == D3DFMT_UNKNOWN || pSrcRect->left >= pSrcRect->right || pSrcRect->top >= pSrcRect->bottom) return E_FAIL; - return E_NOTIMPL; + + if(dwFilter != D3DX_FILTER_NONE) return E_NOTIMPL; + + IDirect3DSurface9_GetDesc(pDestSurface, &surfdesc); + + srcformatdesc = get_format_info(SrcFormat); + destformatdesc = get_format_info(surfdesc.Format); + if( srcformatdesc->type == FORMAT_UNKNOWN || srcformatdesc->bytes_per_pixel > 4) return E_NOTIMPL; + if(destformatdesc->type == FORMAT_UNKNOWN || destformatdesc->bytes_per_pixel > 4) return E_NOTIMPL; + + srcsize.x = pSrcRect->right - pSrcRect->left; + srcsize.y = pSrcRect->bottom - pSrcRect->top; + if( !pDestRect ) { + destsize.x = surfdesc.Width; + destsize.y = surfdesc.Height; + } else { + destsize.x = pDestRect->right - pDestRect->left; + destsize.y = pDestRect->bottom - pDestRect->top; + } + + hr = IDirect3DSurface9_LockRect(pDestSurface, &lockrect, pDestRect, 0); + if(FAILED(hr)) return D3DXERR_INVALIDDATA; + + copy_simple_data((CONST BYTE*)pSrcMemory, SrcPitch, srcsize, srcformatdesc, + (CONST BYTE*)lockrect.pBits, lockrect.Pitch, destsize, destformatdesc, + dwFilter); + + IDirect3DSurface9_UnlockRect(pDestSurface); + return D3D_OK; } /************************************************************ diff --git a/reactos/dll/directx/wine/d3dx9_36/util.c b/reactos/dll/directx/wine/d3dx9_36/util.c index ff41ee718b1..748e6d1125b 100644 --- a/reactos/dll/directx/wine/d3dx9_36/util.c +++ b/reactos/dll/directx/wine/d3dx9_36/util.c @@ -20,6 +20,37 @@ #include "wine/debug.h" #include "d3dx9_36_private.h" + +/************************************************************ + * pixel format table providing info about number of bytes per pixel, + * number of bits per channel and format type. + * + * Call get_format_info to request information about a specific format. + */ +static const PixelFormatDesc formats[] = +{ + /* format bits per channel shifts per channel bpp type */ + { D3DFMT_R8G8B8, { 0, 8, 8, 8 }, { 0, 16, 8, 0 }, 3, FORMAT_ARGB }, + { D3DFMT_A8R8G8B8, { 8, 8, 8, 8 }, { 24, 16, 8, 0 }, 4, FORMAT_ARGB }, + { D3DFMT_X8R8G8B8, { 0, 8, 8, 8 }, { 0, 16, 8, 0 }, 4, FORMAT_ARGB }, + { D3DFMT_A8B8G8R8, { 8, 8, 8, 8 }, { 24, 0, 8, 16 }, 4, FORMAT_ARGB }, + { D3DFMT_X8B8G8R8, { 0, 8, 8, 8 }, { 0, 0, 8, 16 }, 4, FORMAT_ARGB }, + { D3DFMT_R5G6B5, { 0, 5, 6, 5 }, { 0, 11, 5, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_X1R5G5B5, { 0, 5, 5, 5 }, { 0, 10, 5, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_A1R5G5B5, { 1, 5, 5, 5 }, { 15, 10, 5, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_R3G3B2, { 0, 3, 3, 2 }, { 0, 5, 2, 0 }, 1, FORMAT_ARGB }, + { D3DFMT_A8R3G3B2, { 8, 3, 3, 2 }, { 8, 5, 2, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_A4R4G4B4, { 4, 4, 4, 4 }, { 12, 8, 4, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_X4R4G4B4, { 0, 4, 4, 4 }, { 0, 8, 4, 0 }, 2, FORMAT_ARGB }, + { D3DFMT_A2R10G10B10, { 2, 10, 10, 10 }, { 30, 20, 10, 0 }, 4, FORMAT_ARGB }, + { D3DFMT_A2B10G10R10, { 2, 10, 10, 10 }, { 30, 0, 10, 20 }, 4, FORMAT_ARGB }, + { D3DFMT_G16R16, { 0, 16, 16, 0 }, { 0, 0, 16, 0 }, 4, FORMAT_ARGB }, + { D3DFMT_A8, { 8, 0, 0, 0 }, { 0, 0, 0, 0 }, 1, FORMAT_ARGB }, + + { D3DFMT_UNKNOWN, { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, 0, FORMAT_UNKNOWN }, /* marks last element */ +}; + + /************************************************************ * map_view_of_file * @@ -102,3 +133,22 @@ HRESULT load_resource_into_memory(HMODULE module, HRSRC resinfo, LPVOID *buffer, return S_OK; } + + +/************************************************************ + * get_format_info + * + * Returns information about the specified format. + * If the format is unsupported, it's filled with the D3DFMT_UNKNOWN desc. + * + * PARAMS + * format [I] format whose description is queried + * desc [O] pointer to a StaticPixelFormatDesc structure + * + */ +const PixelFormatDesc *get_format_info(D3DFORMAT format) +{ + unsigned int i = 0; + while(formats[i].format != format && formats[i].format != D3DFMT_UNKNOWN) i++; + return &formats[i]; +} diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.rbuild b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.rbuild new file mode 100644 index 00000000000..d10af3a3b29 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.rbuild @@ -0,0 +1,20 @@ + + + + + . + include/reactos/wine + + + d3d9 + wine + user32 + gdi32 + advapi32 + wined3d + + d3dx9_42_main.c + version.rc + + wineheaders + diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec new file mode 100644 index 00000000000..bdd1c73fdcc --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42.spec @@ -0,0 +1,336 @@ +@ stdcall D3DXAssembleShader(ptr long ptr ptr long ptr ptr) d3dx9_36.D3DXAssembleShader +@ stdcall D3DXAssembleShaderFromFileA(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXAssembleShaderFromFileA +@ stdcall D3DXAssembleShaderFromFileW(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXAssembleShaderFromFileW +@ stdcall D3DXAssembleShaderFromResourceA(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXAssembleShaderFromResourceA +@ stdcall D3DXAssembleShaderFromResourceW(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXAssembleShaderFromResourceW +@ stdcall D3DXBoxBoundProbe(ptr ptr ptr ptr) d3dx9_36.D3DXBoxBoundProbe +@ stdcall D3DXCheckCubeTextureRequirements(ptr ptr ptr long ptr long) d3dx9_36.D3DXCheckCubeTextureRequirements +@ stdcall D3DXCheckTextureRequirements(ptr ptr ptr ptr long ptr long) d3dx9_36.D3DXCheckTextureRequirements +@ stdcall D3DXCheckVersion(long long) +@ stdcall D3DXCheckVolumeTextureRequirements(ptr ptr ptr ptr ptr long ptr long) d3dx9_36.D3DXCheckVolumeTextureRequirements +@ stdcall D3DXCleanMesh(ptr ptr ptr ptr ptr) d3dx9_36.D3DXCleanMesh +@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx9_36.D3DXColorAdjustContrast +@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx9_36.D3DXColorAdjustSaturation +@ stdcall D3DXCompileShader(ptr long ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCompileShader +@ stdcall D3DXCompileShaderFromFileA(ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromFileA +@ stdcall D3DXCompileShaderFromFileW(ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromFileW +@ stdcall D3DXCompileShaderFromResourceA(long ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromResourceA +@ stdcall D3DXCompileShaderFromResourceW(long ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCompileShaderFromResourceW +@ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingBox +@ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) d3dx9_36.D3DXComputeBoundingSphere +@ stdcall D3DXComputeIMTFromPerVertexSignal(ptr ptr long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerVertexSignal +@ stdcall D3DXComputeIMTFromPerTexelSignal(ptr long ptr long long long long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromPerTexelSignal +@ stdcall D3DXComputeIMTFromSignal(ptr long long long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromSignal +@ stdcall D3DXComputeIMTFromTexture(ptr ptr long long ptr ptr ptr) d3dx9_36.D3DXComputeIMTFromTexture +@ stdcall D3DXComputeNormalMap(ptr ptr ptr long long long) d3dx9_36.D3DXComputeNormalMap +@ stdcall D3DXComputeNormals(ptr ptr) d3dx9_36.D3DXComputeNormals +@ stdcall D3DXComputeTangent(ptr long long long long ptr) d3dx9_36.D3DXComputeTangent +@ stdcall D3DXComputeTangentFrame(ptr long) d3dx9_36.D3DXComputeTangentFrame +@ stdcall D3DXComputeTangentFrameEx(ptr long long long long long long long long long ptr long long long ptr ptr) d3dx9_36.D3DXComputeTangentFrameEx +@ stdcall D3DXConcatenateMeshes(ptr long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXConcatenateMeshes +@ stdcall D3DXConvertMeshSubsetToSingleStrip(ptr long long ptr ptr) d3dx9_36.D3DXConvertMeshSubsetToSingleStrip +@ stdcall D3DXConvertMeshSubsetToStrips(ptr long long ptr ptr ptr ptr) d3dx9_36.D3DXConvertMeshSubsetToStrips +@ stdcall D3DXCreateAnimationController(long long long long ptr) d3dx9_36.D3DXCreateAnimationController +@ stdcall D3DXCreateBox(ptr long long long ptr ptr) d3dx9_36.D3DXCreateBox +@ stdcall D3DXCreateBuffer(long ptr) d3dx9_36.D3DXCreateBuffer +@ stdcall D3DXCreateCompressedAnimationSet(ptr long long ptr long ptr ptr) d3dx9_36.D3DXCreateCompressedAnimationSet +@ stdcall D3DXCreateCubeTexture(ptr long long long long long ptr) d3dx9_36.D3DXCreateCubeTexture +@ stdcall D3DXCreateCubeTextureFromFileA(ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromFileA +@ stdcall D3DXCreateCubeTextureFromFileExA(ptr ptr long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromFileExA +@ stdcall D3DXCreateCubeTextureFromFileExW(ptr ptr long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromFileExW +@ stdcall D3DXCreateCubeTextureFromFileInMemory(ptr ptr long ptr) d3dx9_36.D3DXCreateCubeTextureFromFileInMemory +@ stdcall D3DXCreateCubeTextureFromFileInMemoryEx(ptr ptr long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromFileInMemoryEx +@ stdcall D3DXCreateCubeTextureFromFileW(ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromFileW +@ stdcall D3DXCreateCubeTextureFromResourceA(ptr long ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceA +@ stdcall D3DXCreateCubeTextureFromResourceExA(ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceExA +@ stdcall D3DXCreateCubeTextureFromResourceExW(ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceExW +@ stdcall D3DXCreateCubeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateCubeTextureFromResourceW +@ stdcall D3DXCreateCylinder(ptr long long long long long ptr ptr) d3dx9_36.D3DXCreateCylinder +@ stdcall D3DXCreateEffect(ptr ptr long ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffect +@ stdcall D3DXCreateEffectCompiler(ptr long ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompiler +@ stdcall D3DXCreateEffectCompilerFromFileA(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileA +@ stdcall D3DXCreateEffectCompilerFromFileW(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromFileW +@ stdcall D3DXCreateEffectCompilerFromResourceA(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceA +@ stdcall D3DXCreateEffectCompilerFromResourceW(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXCreateEffectCompilerFromResourceW +@ stdcall D3DXCreateEffectEx(ptr ptr long ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectEx +@ stdcall D3DXCreateEffectFromFileA(ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileA +@ stdcall D3DXCreateEffectFromFileExA(ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExA +@ stdcall D3DXCreateEffectFromFileExW(ptr ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileExW +@ stdcall D3DXCreateEffectFromFileW(ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromFileW +@ stdcall D3DXCreateEffectFromResourceA(ptr long ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceA +@ stdcall D3DXCreateEffectFromResourceExA(ptr long ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExA +@ stdcall D3DXCreateEffectFromResourceExW(ptr long ptr ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceExW +@ stdcall D3DXCreateEffectFromResourceW(ptr long ptr ptr ptr long ptr ptr ptr) d3dx9_36.D3DXCreateEffectFromResourceW +@ stdcall D3DXCreateEffectPool(ptr) d3dx9_36.D3DXCreateEffectPool +@ stdcall D3DXCreateFontA(ptr long long long long long long long long long ptr ptr) d3dx9_36.D3DXCreateFontA +@ stdcall D3DXCreateFontIndirectA(ptr ptr ptr) d3dx9_36.D3DXCreateFontIndirectA +@ stdcall D3DXCreateFontIndirectW(ptr ptr ptr) d3dx9_36.D3DXCreateFontIndirectW +@ stdcall D3DXCreateFontW(ptr long long long long long long long long long ptr ptr) d3dx9_36.D3DXCreateFontW +@ stdcall D3DXCreateFragmentLinker(ptr long ptr) d3dx9_36.D3DXCreateFragmentLinker +@ stdcall D3DXCreateFragmentLinkerEx(ptr long long ptr) d3dx9_36.D3DXCreateFragmentLinkerEx +@ stdcall D3DXCreateKeyframedAnimationSet(ptr long long long long ptr ptr) d3dx9_36.D3DXCreateKeyframedAnimationSet +@ stdcall D3DXCreateLine(ptr ptr) d3dx9_36.D3DXCreateLine +@ stdcall D3DXCreateMatrixStack(long ptr) d3dx9_36.D3DXCreateMatrixStack +@ stdcall D3DXCreateMesh(long long long ptr ptr ptr) d3dx9_36.D3DXCreateMesh +@ stdcall D3DXCreateMeshFVF(long long long long ptr ptr) d3dx9_36.D3DXCreateMeshFVF +@ stdcall D3DXCreateNPatchMesh(ptr ptr) d3dx9_36.D3DXCreateNPatchMesh +@ stdcall D3DXCreatePMeshFromStream(ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXCreatePMeshFromStream +@ stdcall D3DXCreatePatchMesh(ptr long long long ptr ptr ptr) d3dx9_36.D3DXCreatePatchMesh +@ stdcall D3DXCreatePolygon(ptr long long ptr ptr) d3dx9_36.D3DXCreatePolygon +@ stdcall D3DXCreatePRTBuffer(long long long ptr) d3dx9_36.D3DXCreatePRTBuffer +@ stdcall D3DXCreatePRTBufferTex(long long long long ptr) d3dx9_36.D3DXCreatePRTBufferTex +@ stdcall D3DXCreatePRTCompBuffer(long long long ptr ptr ptr ptr) d3dx9_36.D3DXCreatePRTCompBuffer +@ stdcall D3DXCreatePRTEngine(ptr ptr long ptr ptr) d3dx9_36.D3DXCreatePRTEngine +@ stdcall D3DXCreateRenderToEnvMap(ptr long long long long long ptr) d3dx9_36.D3DXCreateRenderToEnvMap +@ stdcall D3DXCreateRenderToSurface(ptr long long long long long ptr) d3dx9_36.D3DXCreateRenderToSurface +@ stdcall D3DXCreateSPMesh(ptr ptr ptr ptr ptr) d3dx9_36.D3DXCreateSPMesh +@ stdcall D3DXCreateSkinInfo(long ptr long ptr) d3dx9_36.D3DXCreateSkinInfo +@ stdcall D3DXCreateSkinInfoFromBlendedMesh(ptr long ptr ptr) d3dx9_36.D3DXCreateSkinInfoFromBlendedMesh +@ stdcall D3DXCreateSkinInfoFVF(long long long ptr) d3dx9_36.D3DXCreateSkinInfoFVF +@ stdcall D3DXCreateSphere(ptr long long long ptr ptr) d3dx9_36.D3DXCreateSphere +@ stdcall D3DXCreateSprite(ptr ptr) d3dx9_36.D3DXCreateSprite +@ stdcall D3DXCreateTeapot(ptr ptr ptr) d3dx9_36.D3DXCreateTeapot +@ stdcall D3DXCreateTextA(ptr long ptr long long ptr ptr ptr) d3dx9_36.D3DXCreateTextA +@ stdcall D3DXCreateTextW(ptr long ptr long long ptr ptr ptr) d3dx9_36.D3DXCreateTextW +@ stdcall D3DXCreateTexture(ptr long long long long long long ptr) d3dx9_36.D3DXCreateTexture +@ stdcall D3DXCreateTextureFromFileA(ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromFileA +@ stdcall D3DXCreateTextureFromFileExA(ptr ptr long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromFileExA +@ stdcall D3DXCreateTextureFromFileExW(ptr ptr long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromFileExW +@ stdcall D3DXCreateTextureFromFileInMemory(ptr ptr long ptr) d3dx9_36.D3DXCreateTextureFromFileInMemory +@ stdcall D3DXCreateTextureFromFileInMemoryEx(ptr ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromFileInMemoryEx +@ stdcall D3DXCreateTextureFromFileW(ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromFileW +@ stdcall D3DXCreateTextureFromResourceA(ptr long ptr ptr) d3dx9_36.D3DXCreateTextureFromResourceA +@ stdcall D3DXCreateTextureFromResourceExA(ptr long ptr long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromResourceExA +@ stdcall D3DXCreateTextureFromResourceExW(ptr long ptr long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateTextureFromResourceExW +@ stdcall D3DXCreateTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateTextureFromResourceW +@ stdcall D3DXCreateTextureGutterHelper(long long ptr long ptr) d3dx9_36.D3DXCreateTextureGutterHelper +@ stdcall D3DXCreateTextureShader(ptr ptr) d3dx9_36.D3DXCreateTextureShader +@ stdcall D3DXCreateTorus(ptr long long long long ptr ptr) d3dx9_36.D3DXCreateTorus +@ stdcall D3DXCreateVolumeTexture(ptr long long long long long long long ptr) d3dx9_36.D3DXCreateVolumeTexture +@ stdcall D3DXCreateVolumeTextureFromFileA(ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileA +@ stdcall D3DXCreateVolumeTextureFromFileExA(ptr ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileExA +@ stdcall D3DXCreateVolumeTextureFromFileExW(ptr ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileExW +@ stdcall D3DXCreateVolumeTextureFromFileInMemory(ptr ptr long ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileInMemory +@ stdcall D3DXCreateVolumeTextureFromFileInMemoryEx(ptr ptr long long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileInMemoryEx +@ stdcall D3DXCreateVolumeTextureFromFileW(ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromFileW +@ stdcall D3DXCreateVolumeTextureFromResourceA(ptr long ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceA +@ stdcall D3DXCreateVolumeTextureFromResourceExA(ptr long ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceExA +@ stdcall D3DXCreateVolumeTextureFromResourceExW(ptr long ptr long long long long long long long long long long ptr ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceExW +@ stdcall D3DXCreateVolumeTextureFromResourceW(ptr long ptr ptr) d3dx9_36.D3DXCreateVolumeTextureFromResourceW +@ stdcall D3DXDebugMute(long) d3dx9_36.D3DXDebugMute +@ stdcall D3DXDeclaratorFromFVF(long ptr) d3dx9_36.D3DXDeclaratorFromFVF +@ stdcall D3DXDisassembleEffect(ptr long ptr) d3dx9_36.D3DXDisassembleEffect +@ stdcall D3DXDisassembleShader(ptr long ptr ptr) d3dx9_36.D3DXDisassembleShader +@ stdcall D3DXFileCreate(ptr) d3dx9_36.D3DXFileCreate +@ stdcall D3DXFillCubeTexture(ptr ptr ptr) d3dx9_36.D3DXFillCubeTexture +@ stdcall D3DXFillCubeTextureTX(ptr ptr) d3dx9_36.D3DXFillCubeTextureTX +@ stdcall D3DXFillTexture(ptr ptr ptr) d3dx9_36.D3DXFillTexture +@ stdcall D3DXFillTextureTX(ptr ptr) d3dx9_36.D3DXFillTextureTX +@ stdcall D3DXFillVolumeTexture(ptr ptr ptr) d3dx9_36.D3DXFillVolumeTexture +@ stdcall D3DXFillVolumeTextureTX(ptr ptr) d3dx9_36.D3DXFillVolumeTextureTX +@ stdcall D3DXFilterTexture(ptr ptr long long) d3dx9_36.D3DXFilterTexture +@ stdcall D3DXFindShaderComment(ptr long ptr ptr) d3dx9_36.D3DXFindShaderComment +@ stdcall D3DXFloat16To32Array(ptr ptr long) d3dx9_36.D3DXFloat16To32Array +@ stdcall D3DXFloat32To16Array(ptr ptr long) d3dx9_36.D3DXFloat32To16Array +@ stdcall D3DXFrameAppendChild(ptr ptr) d3dx9_36.D3DXFrameAppendChild +@ stdcall D3DXFrameCalculateBoundingSphere(ptr ptr ptr) d3dx9_36.D3DXFrameCalculateBoundingSphere +@ stdcall D3DXFrameDestroy(ptr ptr) d3dx9_36.D3DXFrameDestroy +@ stdcall D3DXFrameFind(ptr ptr) d3dx9_36.D3DXFrameFind +@ stdcall D3DXFrameNumNamedMatrices(ptr) d3dx9_36.D3DXFrameNumNamedMatrices +@ stdcall D3DXFrameRegisterNamedMatrices(ptr ptr) d3dx9_36.D3DXFrameRegisterNamedMatrices +@ stdcall D3DXFresnelTerm(long long) d3dx9_36.D3DXFresnelTerm +@ stdcall D3DXFVFFromDeclarator(ptr ptr) d3dx9_36.D3DXFVFFromDeclarator +@ stdcall D3DXGatherFragments(ptr long ptr ptr long ptr ptr) d3dx9_36.D3DXGatherFragments +@ stdcall D3DXGatherFragmentsFromFileA(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXGatherFragmentsFromFileA +@ stdcall D3DXGatherFragmentsFromFileW(ptr ptr ptr long ptr ptr) d3dx9_36.D3DXGatherFragmentsFromFileW +@ stdcall D3DXGatherFragmentsFromResourceA(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXGatherFragmentsFromResourceA +@ stdcall D3DXGatherFragmentsFromResourceW(long ptr ptr ptr long ptr ptr) d3dx9_36.D3DXGatherFragmentsFromResourceW +@ stdcall D3DXGenerateOutputDecl(ptr ptr) d3dx9_36.D3DXGenerateOutputDecl +@ stdcall D3DXGeneratePMesh(ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXGeneratePMesh +@ stdcall D3DXGetDeclLength(ptr) d3dx9_36.D3DXGetDeclLength +@ stdcall D3DXGetDeclVertexSize(ptr long) d3dx9_36.D3DXGetDeclVertexSize +@ stdcall D3DXGetDriverLevel(ptr) d3dx9_36.D3DXGetDriverLevel +@ stdcall D3DXGetFVFVertexSize(long) d3dx9_36.D3DXGetFVFVertexSize +@ stdcall D3DXGetImageInfoFromFileA(ptr ptr) d3dx9_36.D3DXGetImageInfoFromFileA +@ stdcall D3DXGetImageInfoFromFileInMemory(ptr long ptr) d3dx9_36.D3DXGetImageInfoFromFileInMemory +@ stdcall D3DXGetImageInfoFromFileW(ptr ptr) d3dx9_36.D3DXGetImageInfoFromFileW +@ stdcall D3DXGetImageInfoFromResourceA(long ptr ptr) d3dx9_36.D3DXGetImageInfoFromResourceA +@ stdcall D3DXGetImageInfoFromResourceW(long ptr ptr) d3dx9_36.D3DXGetImageInfoFromResourceW +@ stdcall D3DXGetPixelShaderProfile(ptr) d3dx9_36.D3DXGetPixelShaderProfile +@ stdcall D3DXGetShaderConstantTable(ptr ptr) d3dx9_36.D3DXGetShaderConstantTable +@ stdcall D3DXGetShaderConstantTableEx(ptr long ptr) d3dx9_36.D3DXGetShaderConstantTableEx +@ stdcall D3DXGetShaderInputSemantics(ptr ptr ptr) d3dx9_36.D3DXGetShaderInputSemantics +@ stdcall D3DXGetShaderOutputSemantics(ptr ptr ptr) d3dx9_36.D3DXGetShaderOutputSemantics +@ stdcall D3DXGetShaderSamplers(ptr ptr ptr) d3dx9_36.D3DXGetShaderSamplers +@ stdcall D3DXGetShaderSize(ptr) d3dx9_36.D3DXGetShaderSize +@ stdcall D3DXGetShaderVersion(ptr) d3dx9_36.D3DXGetShaderVersion +@ stdcall D3DXGetVertexShaderProfile(ptr) d3dx9_36.D3DXGetVertexShaderProfile +@ stdcall D3DXIntersect(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXIntersect +@ stdcall D3DXIntersectSubset(ptr long ptr ptr ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXIntersectSubset +@ stdcall D3DXIntersectTri(ptr ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXIntersectTri +@ stdcall D3DXLoadMeshFromXA(ptr long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshFromXA +@ stdcall D3DXLoadMeshFromXInMemory(ptr long long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshFromXInMemory +@ stdcall D3DXLoadMeshFromXResource(long ptr ptr long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshFromXResource +@ stdcall D3DXLoadMeshFromXW(ptr long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshFromXW +@ stdcall D3DXLoadMeshFromXof(ptr long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshFromXof +@ stdcall D3DXLoadMeshHierarchyFromXA(ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshHierarchyFromXA +@ stdcall D3DXLoadMeshHierarchyFromXInMemory(ptr long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshHierarchyFromXInMemory +@ stdcall D3DXLoadMeshHierarchyFromXW(ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadMeshHierarchyFromXW +@ stdcall D3DXLoadPatchMeshFromXof(ptr long ptr ptr ptr long ptr) d3dx9_36.D3DXLoadPatchMeshFromXof +@ stdcall D3DXLoadPRTBufferFromFileA(ptr ptr) d3dx9_36.D3DXLoadPRTBufferFromFileA +@ stdcall D3DXLoadPRTBufferFromFileW(ptr ptr) d3dx9_36.D3DXLoadPRTBufferFromFileW +@ stdcall D3DXLoadPRTCompBufferFromFileA(ptr ptr) d3dx9_36.D3DXLoadPRTCompBufferFromFileA +@ stdcall D3DXLoadPRTCompBufferFromFileW(ptr ptr) d3dx9_36.D3DXLoadPRTCompBufferFromFileW +@ stdcall D3DXLoadSkinMeshFromXof(ptr long ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXLoadSkinMeshFromXof +@ stdcall D3DXLoadSurfaceFromFileA(ptr ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXLoadSurfaceFromFileA +@ stdcall D3DXLoadSurfaceFromFileInMemory(ptr ptr ptr ptr long ptr long long ptr) d3dx9_36.D3DXLoadSurfaceFromFileInMemory +@ stdcall D3DXLoadSurfaceFromFileW(ptr ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXLoadSurfaceFromFileW +@ stdcall D3DXLoadSurfaceFromMemory(ptr ptr ptr ptr long long ptr ptr long long) d3dx9_36.D3DXLoadSurfaceFromMemory +@ stdcall D3DXLoadSurfaceFromResourceA(ptr ptr ptr long ptr ptr long long ptr) d3dx9_36.D3DXLoadSurfaceFromResourceA +@ stdcall D3DXLoadSurfaceFromResourceW(ptr ptr ptr long ptr ptr long long ptr) d3dx9_36.D3DXLoadSurfaceFromResourceW +@ stdcall D3DXLoadSurfaceFromSurface(ptr ptr ptr ptr ptr ptr long) d3dx9_36.D3DXLoadSurfaceFromSurface +@ stdcall D3DXLoadVolumeFromFileA(ptr ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXLoadVolumeFromFileA +@ stdcall D3DXLoadVolumeFromFileInMemory(ptr ptr ptr ptr long ptr long long ptr) d3dx9_36.D3DXLoadVolumeFromFileInMemory +@ stdcall D3DXLoadVolumeFromFileW(ptr ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXLoadVolumeFromFileW +@ stdcall D3DXLoadVolumeFromMemory(ptr ptr ptr ptr long long long ptr ptr long long) d3dx9_36.D3DXLoadVolumeFromMemory +@ stdcall D3DXLoadVolumeFromResourceA(ptr ptr ptr long ptr ptr long long ptr) d3dx9_36.D3DXLoadVolumeFromResourceA +@ stdcall D3DXLoadVolumeFromResourceW(ptr ptr ptr long ptr ptr long long ptr) d3dx9_36.D3DXLoadVolumeFromResourceW +@ stdcall D3DXLoadVolumeFromVolume(ptr ptr ptr ptr ptr ptr long long) d3dx9_36.D3DXLoadVolumeFromVolume +@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx9_36.D3DXMatrixAffineTransformation +@ stdcall D3DXMatrixAffineTransformation2D(ptr long ptr long ptr) d3dx9_36.D3DXMatrixAffineTransformation2D +@ stdcall D3DXMatrixDecompose(ptr ptr ptr ptr) d3dx9_36.D3DXMatrixDecompose +@ stdcall D3DXMatrixDeterminant(ptr) d3dx9_36.D3DXMatrixDeterminant +@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx9_36.D3DXMatrixInverse +@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx9_36.D3DXMatrixLookAtLH +@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx9_36.D3DXMatrixLookAtRH +@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx9_36.D3DXMatrixMultiply +@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx9_36.D3DXMatrixMultiplyTranspose +@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx9_36.D3DXMatrixOrthoLH +@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3dx9_36.D3DXMatrixOrthoOffCenterLH +@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3dx9_36.D3DXMatrixOrthoOffCenterRH +@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx9_36.D3DXMatrixOrthoRH +@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx9_36.D3DXMatrixPerspectiveFovLH +@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx9_36.D3DXMatrixPerspectiveFovRH +@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx9_36.D3DXMatrixPerspectiveLH +@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long long) d3dx9_36.D3DXMatrixPerspectiveOffCenterLH +@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long long) d3dx9_36.D3DXMatrixPerspectiveOffCenterRH +@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx9_36.D3DXMatrixPerspectiveRH +@ stdcall D3DXMatrixReflect(ptr ptr) d3dx9_36.D3DXMatrixReflect +@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx9_36.D3DXMatrixRotationAxis +@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx9_36.D3DXMatrixRotationQuaternion +@ stdcall D3DXMatrixRotationX(ptr long) d3dx9_36.D3DXMatrixRotationX +@ stdcall D3DXMatrixRotationY(ptr long) d3dx9_36.D3DXMatrixRotationY +@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx9_36.D3DXMatrixRotationYawPitchRoll +@ stdcall D3DXMatrixRotationZ(ptr long) d3dx9_36.D3DXMatrixRotationZ +@ stdcall D3DXMatrixScaling(ptr long long long) d3dx9_36.D3DXMatrixScaling +@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx9_36.D3DXMatrixShadow +@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXMatrixTransformation +@ stdcall D3DXMatrixTransformation2D(ptr ptr long ptr ptr long ptr) d3dx9_36.D3DXMatrixTransformation2D +@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx9_36.D3DXMatrixTranslation +@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx9_36.D3DXMatrixTranspose +@ stdcall D3DXOptimizeFaces(ptr long long long ptr) d3dx9_36.D3DXOptimizeFaces +@ stdcall D3DXOptimizeVertices(ptr long long long ptr) d3dx9_36.D3DXOptimizeVertices +@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx9_36.D3DXPlaneFromPointNormal +@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx9_36.D3DXPlaneFromPoints +@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx9_36.D3DXPlaneIntersectLine +@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx9_36.D3DXPlaneNormalize +@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx9_36.D3DXPlaneTransform +@ stdcall D3DXPlaneTransformArray(ptr long ptr long ptr long) d3dx9_36.D3DXPlaneTransformArray +@ stdcall D3DXPreprocessShader(ptr long ptr ptr ptr ptr) d3dx9_36.D3DXPreprocessShader +@ stdcall D3DXPreprocessShaderFromFileA(ptr ptr ptr ptr ptr) d3dx9_36.D3DXPreprocessShaderFromFileA +@ stdcall D3DXPreprocessShaderFromFileW(ptr ptr ptr ptr ptr) d3dx9_36.D3DXPreprocessShaderFromFileW +@ stdcall D3DXPreprocessShaderFromResourceA(long long ptr ptr ptr ptr) d3dx9_36.D3DXPreprocessShaderFromResourceA +@ stdcall D3DXPreprocessShaderFromResourceW(long long ptr ptr ptr ptr) d3dx9_36.D3DXPreprocessShaderFromResourceW +@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx9_36.D3DXQuaternionBaryCentric +@ stdcall D3DXQuaternionExp(ptr ptr) d3dx9_36.D3DXQuaternionExp +@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx9_36.D3DXQuaternionInverse +@ stdcall D3DXQuaternionLn(ptr ptr) d3dx9_36.D3DXQuaternionLn +@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx9_36.D3DXQuaternionMultiply +@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx9_36.D3DXQuaternionNormalize +@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx9_36.D3DXQuaternionRotationAxis +@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx9_36.D3DXQuaternionRotationMatrix +@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx9_36.D3DXQuaternionRotationYawPitchRoll +@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx9_36.D3DXQuaternionSlerp +@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXQuaternionSquad +@ stdcall D3DXQuaternionSquadSetup(ptr ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXQuaternionSquadSetup +@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx9_36.D3DXQuaternionToAxisAngle +@ stdcall D3DXRectPatchSize(ptr ptr ptr) d3dx9_36.D3DXRectPatchSize +@ stdcall D3DXSaveMeshHierarchyToFileA(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveMeshHierarchyToFileA +@ stdcall D3DXSaveMeshHierarchyToFileW(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveMeshHierarchyToFileW +@ stdcall D3DXSaveMeshToXA(ptr ptr ptr ptr ptr long long) d3dx9_36.D3DXSaveMeshToXA +@ stdcall D3DXSaveMeshToXW(ptr ptr ptr ptr ptr long long) d3dx9_36.D3DXSaveMeshToXW +@ stdcall D3DXSavePRTBufferToFileA(ptr ptr) d3dx9_36.D3DXSavePRTBufferToFileA +@ stdcall D3DXSavePRTBufferToFileW(ptr ptr) d3dx9_36.D3DXSavePRTBufferToFileW +@ stdcall D3DXSavePRTCompBufferToFileA(ptr ptr) d3dx9_36.D3DXSavePRTCompBufferToFileA +@ stdcall D3DXSavePRTCompBufferToFileW(ptr ptr) d3dx9_36.D3DXSavePRTCompBufferToFileW +@ stdcall D3DXSaveSurfaceToFileA(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveSurfaceToFileA +@ stdcall D3DXSaveSurfaceToFileInMemory(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveSurfaceToFileInMemory +@ stdcall D3DXSaveSurfaceToFileW(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveSurfaceToFileW +@ stdcall D3DXSaveTextureToFileA(ptr long ptr ptr) d3dx9_36.D3DXSaveTextureToFileA +@ stdcall D3DXSaveTextureToFileInMemory(ptr long ptr ptr) d3dx9_36.D3DXSaveTextureToFileInMemory +@ stdcall D3DXSaveTextureToFileW(ptr long ptr ptr) d3dx9_36.D3DXSaveTextureToFileW +@ stdcall D3DXSaveVolumeToFileA(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveVolumeToFileA +@ stdcall D3DXSaveVolumeToFileInMemory(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveVolumeToFileInMemory +@ stdcall D3DXSaveVolumeToFileW(ptr long ptr ptr ptr) d3dx9_36.D3DXSaveVolumeToFileW +@ stdcall D3DXSHAdd(ptr long ptr ptr) d3dx9_36.D3DXSHAdd +@ stdcall D3DXSHDot(long ptr ptr) d3dx9_36.D3DXSHDot +@ stdcall D3DXSHEvalConeLight(long ptr long long long long ptr ptr ptr) d3dx9_36.D3DXSHEvalConeLight +@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx9_36.D3DXSHEvalDirection +@ stdcall D3DXSHEvalDirectionalLight(long ptr long long long long ptr ptr ptr) d3dx9_36.D3DXSHEvalDirectionalLight +@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx9_36.D3DXSHEvalHemisphereLight +@ stdcall D3DXSHEvalSphericalLight(long ptr long long long long ptr ptr ptr) d3dx9_36.D3DXSHEvalSphericalLight +@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx9_36.D3DXSHMultiply2 +@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx9_36.D3DXSHMultiply3 +@ stdcall D3DXSHMultiply4(ptr ptr ptr) d3dx9_36.D3DXSHMultiply4 +@ stdcall D3DXSHMultiply5(ptr ptr ptr) d3dx9_36.D3DXSHMultiply5 +@ stdcall D3DXSHMultiply6(ptr ptr ptr) d3dx9_36.D3DXSHMultiply6 +@ stdcall D3DXSHProjectCubeMap(long ptr ptr ptr ptr) d3dx9_36.D3DXSHProjectCubeMap +@ stdcall D3DXSHPRTCompSplitMeshSC(ptr long long ptr long ptr long long ptr ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSHPRTCompSplitMeshSC +@ stdcall D3DXSHPRTCompSuperCluster(ptr ptr long long ptr ptr) d3dx9_36.D3DXSHPRTCompSuperCluster +@ stdcall D3DXSHRotate(ptr long ptr ptr) d3dx9_36.D3DXSHRotate +@ stdcall D3DXSHRotateZ(ptr long long ptr) d3dx9_36.D3DXSHRotateZ +@ stdcall D3DXSHScale(ptr long ptr ptr) d3dx9_36.D3DXSHScale +@ stdcall D3DXSimplifyMesh(ptr ptr ptr ptr long long ptr) d3dx9_36.D3DXSimplifyMesh +@ stdcall D3DXSphereBoundProbe(ptr long ptr ptr) d3dx9_36.D3DXSphereBoundProbe +@ stdcall D3DXSplitMesh(ptr ptr long long ptr ptr ptr ptr ptr) d3dx9_36.D3DXSplitMesh +@ stdcall D3DXTessellateNPatches(ptr ptr long long ptr ptr) d3dx9_36.D3DXTessellateNPatches +@ stdcall D3DXTessellateRectPatch(ptr ptr ptr ptr ptr) d3dx9_36.D3DXTessellateRectPatch +@ stdcall D3DXTessellateTriPatch(ptr ptr ptr ptr ptr) d3dx9_36.D3DXTessellateTriPatch +@ stdcall D3DXTriPatchSize(ptr ptr ptr) d3dx9_36.D3DXTriPatchSize +@ stdcall D3DXUVAtlasCreate(ptr long long long long long long ptr ptr ptr ptr long ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXUVAtlasCreate +@ stdcall D3DXUVAtlasPack(ptr long long long long ptr ptr long ptr long ptr) d3dx9_36.D3DXUVAtlasPack +@ stdcall D3DXUVAtlasPartition(ptr long long long ptr ptr ptr ptr long ptr long ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXUVAtlasPartition +@ stdcall D3DXValidMesh(ptr ptr ptr) d3dx9_36.D3DXValidMesh +@ stdcall D3DXValidPatchMesh(ptr ptr ptr ptr) d3dx9_36.D3DXValidPatchMesh +@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx9_36.D3DXVec2BaryCentric +@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec2CatmullRom +@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec2Hermite +@ stdcall D3DXVec2Normalize(ptr ptr) d3dx9_36.D3DXVec2Normalize +@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx9_36.D3DXVec2Transform +@ stdcall D3DXVec2TransformArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec2TransformArray +@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx9_36.D3DXVec2TransformCoord +@ stdcall D3DXVec2TransformCoordArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec2TransformCoordArray +@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx9_36.D3DXVec2TransformNormal +@ stdcall D3DXVec2TransformNormalArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec2TransformNormalArray +@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx9_36.D3DXVec3BaryCentric +@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec3CatmullRom +@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec3Hermite +@ stdcall D3DXVec3Normalize(ptr ptr) d3dx9_36.D3DXVec3Normalize +@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXVec3Project +@ stdcall D3DXVec3ProjectArray(ptr long ptr long ptr ptr ptr ptr long) d3dx9_36.D3DXVec3ProjectArray +@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx9_36.D3DXVec3Transform +@ stdcall D3DXVec3TransformArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec3TransformArray +@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx9_36.D3DXVec3TransformCoord +@ stdcall D3DXVec3TransformCoordArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec3TransformCoordArray +@ stdcall D3DXVec3TransformNormal(ptr ptr ptr) d3dx9_36.D3DXVec3TransformNormal +@ stdcall D3DXVec3TransformNormalArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec3TransformNormalArray +@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx9_36.D3DXVec3Unproject +@ stdcall D3DXVec3UnprojectArray(ptr long ptr long ptr ptr ptr ptr long) d3dx9_36.D3DXVec3UnprojectArray +@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx9_36.D3DXVec4BaryCentric +@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec4CatmullRom +@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx9_36.D3DXVec4Cross +@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx9_36.D3DXVec4Hermite +@ stdcall D3DXVec4Normalize(ptr ptr) d3dx9_36.D3DXVec4Normalize +@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx9_36.D3DXVec4Transform +@ stdcall D3DXVec4TransformArray(ptr long ptr long ptr long) d3dx9_36.D3DXVec4TransformArray +@ stdcall D3DXWeldVertices(ptr long ptr ptr ptr ptr ptr) d3dx9_36.D3DXWeldVertices diff --git a/reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c new file mode 100644 index 00000000000..ca5f7506b68 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_42/d3dx9_42_main.c @@ -0,0 +1,64 @@ +/* + * Direct3D X 9 main file + * + * Copyright (C) 2007 David Adam + * Copyright (C) 2009 Rico Schüller + * Copyright (C) 2009 Ričardas Barkauskas + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + * + */ + +#include "config.h" +#include "wine/port.h" + +#include + +#include "windef.h" +#include "winbase.h" +#include "wingdi.h" +#include "winuser.h" + +#include "d3dx9.h" + +/*********************************************************************** + * DllMain. + */ +BOOL WINAPI DllMain(HINSTANCE inst, DWORD reason, LPVOID reserved) +{ + switch(reason) + { + case DLL_WINE_PREATTACH: + return FALSE; /* prefer native version */ + case DLL_PROCESS_ATTACH: + DisableThreadLibraryCalls(inst); + break; + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + +/*********************************************************************** + * D3DXCheckVersion + * Checks whether we are compiling against the correct d3d and d3dx library. + */ +BOOL WINAPI D3DXCheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers) +{ + if(d3dsdkvers==D3D_SDK_VERSION && d3dxsdkvers==42) + return TRUE; + else + return FALSE; +} diff --git a/reactos/dll/directx/wine/d3dx9_42/version.rc b/reactos/dll/directx/wine/d3dx9_42/version.rc new file mode 100644 index 00000000000..5733eb975e0 --- /dev/null +++ b/reactos/dll/directx/wine/d3dx9_42/version.rc @@ -0,0 +1,28 @@ +/* + * Copyright 2008 Louis Lenders + * Copyright 2009 Rico Schüller + * Copyright 2009 Ričardas Barkauskas + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#define WINE_FILEDESCRIPTION_STR "Wine D3DX9" +#define WINE_FILENAME_STR "d3dx9.dll" +#define WINE_FILEVERSION 9,27,952,3001 +#define WINE_FILEVERSION_STR "9.27.952.3001" +#define WINE_PRODUCTVERSION 9,27,952,3001 +#define WINE_PRODUCTVERSION_STR "9.27.952.3001" + +#include "wine/wine_common_ver.rc" diff --git a/reactos/dll/directx/wine/wine.rbuild b/reactos/dll/directx/wine/wine.rbuild index 042e8c5b621..85d0bbe906e 100644 --- a/reactos/dll/directx/wine/wine.rbuild +++ b/reactos/dll/directx/wine/wine.rbuild @@ -64,6 +64,9 @@ + + + diff --git a/reactos/include/dxsdk/d3dx9shader.h b/reactos/include/dxsdk/d3dx9shader.h index 899077e2156..a15cab600d6 100644 --- a/reactos/include/dxsdk/d3dx9shader.h +++ b/reactos/include/dxsdk/d3dx9shader.h @@ -21,6 +21,27 @@ #ifndef __D3DX9SHADER_H__ #define __D3DX9SHADER_H__ +#define D3DXSHADER_DEBUG 0x1 +#define D3DXSHADER_SKIPVALIDATION 0x2 +#define D3DXSHADER_SKIPOPTIMIZATION 0x4 +#define D3DXSHADER_PACKMATRIX_ROWMAJOR 0x8 +#define D3DXSHADER_PACKMATRIX_COLUMNMAJOR 0x10 +#define D3DXSHADER_PARTIALPRECISION 0x20 +#define D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT 0x40 +#define D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT 0x80 +#define D3DXSHADER_NO_PRESHADER 0x100 +#define D3DXSHADER_AVOID_FLOW_CONTROL 0x200 +#define D3DXSHADER_PREFER_FLOW_CONTROL 0x400 +#define D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 0x1000 +#define D3DXSHADER_IEEE_STRICTNESS 0x2000 + +#define D3DXSHADER_OPTIMIZATION_LEVEL0 0x4000 +#define D3DXSHADER_OPTIMIZATION_LEVEL1 0x0 +#define D3DXSHADER_OPTIMIZATION_LEVEL2 0xC000 +#define D3DXSHADER_OPTIMIZATION_LEVEL3 0x8000 + +#define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL 0x10000 + typedef LPCSTR D3DXHANDLE; typedef enum D3DXPARAMETER_CLASS @@ -64,6 +85,26 @@ typedef struct _D3DXMACRO { LPCSTR Definition; } D3DXMACRO, *LPD3DXMACRO; +typedef enum _D3DXINCLUDE_TYPE +{ + D3DXINC_LOCAL, + D3DXINC_SYSTEM, + D3DXINC_FORCE_DWORD = 0x7fffffff, +} D3DXINCLUDE_TYPE, *LPD3DXINCLUDE_TYPE; + +#undef INTERFACE +#define INTERFACE ID3DXInclude + +DECLARE_INTERFACE(ID3DXInclude) +{ + STDMETHOD(Open)(THIS_ D3DXINCLUDE_TYPE include_type, LPCSTR filename, LPCVOID parent_data, LPCVOID *data, UINT *bytes) PURE; + STDMETHOD(Close)(THIS_ LPCVOID data) PURE; +}; + +#define ID3DXInclude_Open(p,a,b,c,d,e) (p)->lpVtbl->Open(p,a,b,c,d,e) +#define ID3DXInclude_Close(p,a) (p)->lpVtbl->Close(p,a) + +typedef struct ID3DXInclude *LPD3DXINCLUDE; #ifdef __cplusplus extern "C" { @@ -74,6 +115,44 @@ UINT WINAPI D3DXGetShaderSize(const DWORD *byte_code); DWORD WINAPI D3DXGetShaderVersion(const DWORD *byte_code); LPCSTR WINAPI D3DXGetVertexShaderProfile(LPDIRECT3DDEVICE9 device); +HRESULT WINAPI D3DXAssembleShaderFromFileA(LPCSTR filename, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages); + +HRESULT WINAPI D3DXAssembleShaderFromFileW(LPCWSTR filename, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages); + +HRESULT WINAPI D3DXAssembleShaderFromResourceA(HMODULE module, + LPCSTR resource, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages); + +HRESULT WINAPI D3DXAssembleShaderFromResourceW(HMODULE module, + LPCWSTR resource, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages); + +HRESULT WINAPI D3DXAssembleShader(LPCSTR data, + UINT data_len, + CONST D3DXMACRO* defines, + LPD3DXINCLUDE include, + DWORD flags, + LPD3DXBUFFER* shader, + LPD3DXBUFFER* error_messages); + #ifdef __cplusplus } #endif