From 3670dd923af565307966639639872b52ba34ba68 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Tue, 16 Apr 2013 22:44:49 +0200 Subject: [PATCH] (XDK D3D) Fix SetSamplerState/SetTextureStage State --- xdk/xdk_d3d.cpp | 6 ++++-- xdk/xdk_defines.h | 14 +++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/xdk/xdk_d3d.cpp b/xdk/xdk_d3d.cpp index 8a848e8a4b..d800773323 100644 --- a/xdk/xdk_d3d.cpp +++ b/xdk/xdk_d3d.cpp @@ -919,8 +919,10 @@ NULL, NULL, NULL, 0); } } - RD3DDevice_SetSamplerState_MinFilter(d3dr, D3DSAMP_MINFILTER, g_settings.video.smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT); - RD3DDevice_SetSamplerState_MagFilter(d3dr, D3DSAMP_MAGFILTER, g_settings.video.smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT); + unsigned filter = g_settings.video.smooth ? D3DTEXF_LINEAR : D3DTEXF_POINT; + + RD3DDevice_SetSamplerState_MinFilter(d3dr, 0, filter); + RD3DDevice_SetSamplerState_MagFilter(d3dr, 0, filter); RD3DDevice_SetSamplerState_AddressU(d3dr, D3DSAMP_ADDRESSU, D3DTADDRESS_BORDER); RD3DDevice_SetSamplerState_AddressV(d3dr, D3DSAMP_ADDRESSV, D3DTADDRESS_BORDER); diff --git a/xdk/xdk_defines.h b/xdk/xdk_defines.h index 66992aac2e..8496925ba6 100644 --- a/xdk/xdk_defines.h +++ b/xdk/xdk_defines.h @@ -36,9 +36,9 @@ #define direct3d_create_ctx Direct3DCreate8 #define IDirect3DVertexBuffer IDirect3DVertexBuffer8 -#define SetSamplerState_function(device, sampler, value) \ - D3D__DirtyFlags |= (D3DDIRTYFLAG_TEXTURE_STATE_0 << 0); \ - D3D__TextureState[0][sampler] = value +#define SetSamplerState_function(device, sampler, type, value) \ + D3D__DirtyFlags |= (D3DDIRTYFLAG_TEXTURE_STATE_0 << sampler); \ + D3D__TextureState[sampler][type] = value #define RD3DDevice_SetTransform(device, State, pMatrix) \ D3DDIRTY_TRANSFORM(State); \ @@ -52,10 +52,10 @@ #define RD3DDevice_Clear(device, Count, pRects, Flags, Color, Z, Stencil) D3DDevice_Clear(Count, pRects, Flags, Color, Z, Stencil) #define RD3DDevice_SetViewport(device, viewport) D3DDevice_SetViewport(viewport) #define RD3DDevice_Present(device) D3DDevice_Swap(0) -#define RD3DDevice_SetSamplerState_MinFilter(device, sampler, value) SetSamplerState_function(device, sampler, value) -#define RD3DDevice_SetSamplerState_MagFilter(device, sampler, value) SetSamplerState_function(device, sampler, value) -#define RD3DDevice_SetSamplerState_AddressU(device, sampler, value) SetSamplerState_function(device, sampler, value) -#define RD3DDevice_SetSamplerState_AddressV(device, sampler, value) SetSamplerState_function(device, sampler, value) +#define RD3DDevice_SetSamplerState_MinFilter(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_MINFILTER, value) +#define RD3DDevice_SetSamplerState_MagFilter(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_MAGFILTER, value) +#define RD3DDevice_SetSamplerState_AddressU(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_ADDRESSU, value) +#define RD3DDevice_SetSamplerState_AddressV(device, sampler, value) SetSamplerState_function(device, sampler, D3DTSS_ADDRESSV, value) #define D3DLOCK_NOSYSLOCK (0)