Stefan Dösinger : ddraw: Get some texture stage states from their equivalent sampler states.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jan 10 15:47:10 CST 2007
Module: wine
Branch: master
Commit: 3d14118fb7d49be07e35a2b1c1b403b689f9d1cb
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3d14118fb7d49be07e35a2b1c1b403b689f9d1cb
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Wed Jan 10 11:29:55 2007 +0100
ddraw: Get some texture stage states from their equivalent sampler states.
---
dlls/ddraw/device.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/dlls/ddraw/device.c b/dlls/ddraw/device.c
index 4ba3154..62cfa50 100644
--- a/dlls/ddraw/device.c
+++ b/dlls/ddraw/device.c
@@ -3975,10 +3975,48 @@ IDirect3DDeviceImpl_7_GetTextureStageSta
if(!State)
return DDERR_INVALIDPARAMS;
- return IWineD3DDevice_GetTextureStageState(This->wineD3DDevice,
- Stage,
- TexStageStateType,
- State);
+ switch(TexStageStateType)
+ {
+ /* Mipfilter is a sampler state with different values */
+ case D3DTSS_MIPFILTER:
+ {
+ HRESULT hr;
+ WINED3DTEXTUREFILTERTYPE value;
+
+ hr = IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+ Stage,
+ WINED3DSAMP_MIPFILTER,
+ &value);
+ switch(value)
+ {
+ case WINED3DTEXF_NONE: *State = D3DTFP_NONE; break;
+ case WINED3DTEXF_POINT: *State = D3DTFP_POINT; break;
+ case WINED3DTEXF_LINEAR: *State = D3DTFP_LINEAR; break;
+ default:
+ ERR("Unexpected mipfilter value %d\n", value);
+ *State = D3DTFP_NONE;
+ }
+ return hr;
+ }
+
+ /* Minfilter is a sampler state too, equal values */
+ case D3DTSS_MINFILTER:
+ return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+ Stage,
+ WINED3DSAMP_MINFILTER,
+ State);
+ /* Same for MAGFILTER */
+ case D3DTSS_MAGFILTER:
+ return IWineD3DDevice_GetSamplerState(This->wineD3DDevice,
+ Stage,
+ WINED3DSAMP_MAGFILTER,
+ State);
+ default:
+ return IWineD3DDevice_GetTextureStageState(This->wineD3DDevice,
+ Stage,
+ TexStageStateType,
+ State);
+ }
}
static HRESULT WINAPI
More information about the wine-cvs
mailing list