Stefan Dösinger : ddraw: Handle mipmapped TEXTUREMIN render states.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Feb 15 12:52:22 CST 2007


Module: wine
Branch: master
Commit: c3d3dcec819e863c36a1e24d6a863c5e7ae88c15
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c3d3dcec819e863c36a1e24d6a863c5e7ae88c15

Author: Stefan Dösinger <stefan at 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);




More information about the wine-cvs mailing list