From d85b6e3243ae958a98f89f90f6514dff8e25a29e Mon Sep 17 00:00:00 2001 From: FunkyFr3sh Date: Wed, 21 Oct 2020 17:14:40 +0200 Subject: [PATCH] add hidden option for linear filtering on direct3d 9 (16bpp games only) --- inc/dd.h | 1 + src/config.c | 1 + src/render_d3d9.c | 8 ++++++++ 3 files changed, 10 insertions(+) diff --git a/inc/dd.h b/inc/dd.h index b6454ea..d18cc70 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -105,6 +105,7 @@ typedef struct cnc_ddraw BOOL dk2hack; BOOL nonexclusive; BOOL fixchildwindows; + BOOL d3d9linear; BOOL bnet_active; BOOL bnet_was_fullscreen; BOOL bnet_was_upscaled; diff --git a/src/config.c b/src/config.c index 76d349e..95b3c39 100644 --- a/src/config.c +++ b/src/config.c @@ -49,6 +49,7 @@ void cfg_load() g_ddraw->resizable = cfg_get_bool("resizable", TRUE); g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE); g_ddraw->fixchildwindows = cfg_get_bool("fixchildwindows", TRUE); + g_ddraw->d3d9linear = cfg_get_bool("d3d9linear", FALSE); g_ddraw->sierrahack = cfg_get_bool("sierrahack", FALSE); // Sierra Caesar III, Pharaoh, and Zeus hack g_ddraw->dk2hack = cfg_get_bool("dk2hack", FALSE); // Dungeon Keeper 2 hack diff --git a/src/render_d3d9.c b/src/render_d3d9.c index a3ec034..5882d0e 100644 --- a/src/render_d3d9.c +++ b/src/render_d3d9.c @@ -252,6 +252,14 @@ static BOOL d3d9_set_states() err = err || FAILED(IDirect3DDevice9_SetTexture(g_d3d9.device, 1, (IDirect3DBaseTexture9 *)g_d3d9.palette_tex[0])); err = err || FAILED(IDirect3DDevice9_SetPixelShader(g_d3d9.device, g_d3d9.pixel_shader)); } + else + { + if (g_ddraw->d3d9linear) + { + IDirect3DDevice9_SetSamplerState(g_d3d9.device, 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); + IDirect3DDevice9_SetSamplerState(g_d3d9.device, 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); + } + } D3DVIEWPORT9 view_data = { g_ddraw->render.viewport.x,