Module: wine Branch: master Commit: c3d3dcec819e863c36a1e24d6a863c5e7ae88c15 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c3d3dcec819e863c36a1e24d6a...
Author: Stefan Dösinger stefan@codeweavers.com Date: Thu Feb 15 13:53:08 2007 +0100
ddraw: Handle mipmapped TEXTUREMIN render states.
---
dlls/ddraw/device.c | 23 ++++++++++++++++++++++- 1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c index c1ff5cd..ab77a26 100644 --- a/dlls/ddraw/device.c +++ b/dlls/ddraw/device.c @@ -2317,6 +2317,7 @@ IDirect3DDeviceImpl_7_SetRenderState(IDirect3DDevice7 *iface, case D3DRENDERSTATE_TEXTUREMIN: { WINED3DTEXTUREFILTERTYPE tex_min = WINED3DTEXF_NONE; + WINED3DTEXTUREFILTERTYPE tex_mip = WINED3DTEXF_NONE;
switch ((D3DTEXTUREFILTER) Value) { @@ -2326,10 +2327,30 @@ IDirect3DDeviceImpl_7_SetRenderState(IDirect3DDevice7 *iface, case D3DFILTER_LINEAR: tex_min = WINED3DTEXF_LINEAR; break; + case D3DFILTER_MIPNEAREST: + tex_min = WINED3DTEXF_NONE; + tex_mip = WINED3DTEXF_POINT; + break; + case D3DFILTER_MIPLINEAR: + tex_min = WINED3DTEXF_NONE; + tex_mip = WINED3DTEXF_LINEAR; + break; + case D3DFILTER_LINEARMIPNEAREST: + tex_min = WINED3DTEXF_POINT; + tex_mip = WINED3DTEXF_LINEAR; + break; + case D3DFILTER_LINEARMIPLINEAR: + tex_min = WINED3DTEXF_LINEAR; + tex_mip = WINED3DTEXF_LINEAR; + break; + default: - ERR("Unhandled texture mag %d !\n",Value); + ERR("Unhandled texture min %d !\n",Value); }
+ IWineD3DDevice_SetSamplerState(This->wineD3DDevice, + 0, WINED3DSAMP_MIPFILTER, + tex_mip); return IWineD3DDevice_SetSamplerState(This->wineD3DDevice, 0, WINED3DSAMP_MINFILTER, tex_min);