[3/10] DDraw: Handle mipmapped TEXTUREMIN render states
Stefan Dösinger
stefan at codeweavers.com
Thu Feb 15 06:53:08 CST 2007
-------------- next part --------------
From 06a57562fc4b9c92bd962b272a8adbfa76b771ab Mon Sep 17 00:00:00 2001
From: Stefan Doesinger <stefan at codeweavers.com>
Date: Fri, 9 Feb 2007 00:13:56 +0100
Subject: [PATCH] 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);
--
1.4.4.3
More information about the wine-patches
mailing list