[03/10] d3dx9: Use actual level count for computing the number of loaded mipmaps.

Józef Kucia joseph.kucia at gmail.com
Fri May 18 08:50:10 CDT 2012


When D3DUSAGE_AUTOGENMIPMAP is set, only the top level is accessible.
---
 dlls/d3dx9_36/texture.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/d3dx9_36/texture.c b/dlls/d3dx9_36/texture.c
index 377e4f6..8ca42c5 100644
--- a/dlls/d3dx9_36/texture.c
+++ b/dlls/d3dx9_36/texture.c
@@ -636,7 +636,7 @@ HRESULT WINAPI D3DXCreateTextureFromFileInMemoryEx(LPDIRECT3DDEVICE9 device,
         return hr;
     }
 
-    loaded_miplevels = min(miplevels, imginfo.MipLevels);
+    loaded_miplevels = min(IDirect3DTexture9_GetLevelCount(*texptr), imginfo.MipLevels);
     hr = D3DXFilterTexture((IDirect3DBaseTexture9*) *texptr, palette, loaded_miplevels - 1, mipfilter);
 
     if (FAILED(hr))
@@ -1209,7 +1209,7 @@ HRESULT WINAPI D3DXCreateCubeTextureFromFileInMemoryEx(IDirect3DDevice9 *device,
         return hr;
     }
 
-    loaded_miplevels = min(mip_levels, img_info.MipLevels);
+    loaded_miplevels = min(IDirect3DCubeTexture9_GetLevelCount(tex), img_info.MipLevels);
     hr = D3DXFilterTexture((IDirect3DBaseTexture9*) tex, palette, loaded_miplevels - 1, mip_filter);
     if (FAILED(hr))
     {
-- 
1.7.8.6




More information about the wine-patches mailing list