diff --git a/dlls/d3dx9_36/d3dx9_36.spec b/dlls/d3dx9_36/d3dx9_36.spec index 8a54382b819..50bf64d5205 100644 --- a/dlls/d3dx9_36/d3dx9_36.spec +++ b/dlls/d3dx9_36/d3dx9_36.spec @@ -34,7 +34,7 @@ @ stdcall D3DXCreateBox(ptr float float float ptr ptr) @ stdcall D3DXCreateBuffer(long ptr) @ stub D3DXCreateCompressedAnimationSet -@ stub D3DXCreateCubeTexture +@ stdcall D3DXCreateCubeTexture(ptr long long long long long ptr) @ stub D3DXCreateCubeTextureFromFileA @ stub D3DXCreateCubeTextureFromFileExA @ stub D3DXCreateCubeTextureFromFileExW diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c index 10af0b30335..42d52d70b13 100644 --- a/dlls/d3dx9_36/texture.c +++ b/dlls/d3dx9_36/texture.c @@ -804,3 +804,30 @@ HRESULT WINAPI D3DXCreateTextureFromResourceExW(LPDIRECT3DDEVICE9 device, return D3DXERR_INVALIDDATA; } + +HRESULT WINAPI D3DXCreateCubeTexture(LPDIRECT3DDEVICE9 device, + UINT size, + UINT miplevels, + DWORD usage, + D3DFORMAT format, + D3DPOOL pool, + LPDIRECT3DCUBETEXTURE9 *texture) +{ + HRESULT hr; + + TRACE("(%p, %u, %u, %#x, %#x, %#x, %p)\n", device, size, miplevels, usage, format, + pool, texture); + + if (!device || !texture) + return D3DERR_INVALIDCALL; + + hr = D3DXCheckCubeTextureRequirements(device, &size, &miplevels, usage, &format, pool); + + if (FAILED(hr)) + { + TRACE("D3DXCheckCubeTextureRequirements failed\n"); + return hr; + } + + return IDirect3DDevice9_CreateCubeTexture(device, size, miplevels, usage, format, pool, texture, NULL); +}