mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-15 06:04:49 +01:00
new .ini setting "d3d9_filter"
This commit is contained in:
parent
5fa01d8390
commit
4ec4260f8e
6
inc/dd.h
6
inc/dd.h
@ -32,6 +32,10 @@ HRESULT dd_CreateEx(GUID* lpGuid, LPVOID* lplpDD, REFIID iid, IUnknown* pUnkOute
|
||||
#define RESLIST_MINI 1
|
||||
#define RESLIST_FULL 2
|
||||
|
||||
#define FILTER_NEAREST 0
|
||||
#define FILTER_LINEAR 1
|
||||
#define FILTER_CUBIC 2
|
||||
|
||||
#define SDM_MODE_SET_BY_GAME 0x00000001l
|
||||
#define SDM_LEAVE_WINDOWED 0x00000002l
|
||||
#define SDM_LEAVE_FULLSCREEN 0x00000004l
|
||||
@ -150,7 +154,7 @@ typedef struct CNCDDRAW
|
||||
BOOL flipclear;
|
||||
BOOL locktopleft;
|
||||
BOOL lock_surfaces;
|
||||
BOOL d3d9linear;
|
||||
int d3d9_filter;
|
||||
BOOL gdilinear;
|
||||
BOOL d3d9on12;
|
||||
int guard_lines;
|
||||
|
@ -45,7 +45,7 @@ void cfg_load()
|
||||
g_ddraw->locktopleft = cfg_get_bool("locktopleft", FALSE);
|
||||
g_ddraw->lock_surfaces = cfg_get_bool("lock_surfaces", FALSE);
|
||||
g_ddraw->releasealt = cfg_get_bool("releasealt", FALSE);
|
||||
g_ddraw->d3d9linear = cfg_get_bool("d3d9linear", TRUE);
|
||||
g_ddraw->d3d9_filter = cfg_get_int("d3d9_filter", FILTER_CUBIC);
|
||||
g_ddraw->gdilinear = cfg_get_bool("gdilinear", FALSE);
|
||||
g_ddraw->d3d9on12 = cfg_get_bool("d3d9on12", FALSE);
|
||||
g_ddraw->resolutions = cfg_get_int("resolutions", RESLIST_NORMAL);
|
||||
@ -304,8 +304,9 @@ static void cfg_create_ini()
|
||||
"; Should the window be resizable by the user in windowed mode?\n"
|
||||
"resizable=true\n"
|
||||
"\n"
|
||||
"; Enable linear (D3DTEXF_LINEAR) upscaling filter for the direct3d9 renderer\n"
|
||||
"d3d9linear=true\n"
|
||||
"; Upscaling filter for the direct3d9 renderer\n"
|
||||
"; Possible values: 0 = nearest-neighbor, 1 = bilinear, 2 = bicubic (16/32bit color depth games only)\n"
|
||||
"d3d9_filter=2\n"
|
||||
"\n"
|
||||
"; Enable upscale hack for high resolution patches (Supports C&C1, Red Alert 1 and KKND Xtreme)\n"
|
||||
"vhack=false\n"
|
||||
|
@ -352,7 +352,7 @@ static BOOL d3d9_set_states()
|
||||
err = err || FAILED(IDirect3DDevice9_SetTexture(g_d3d9.device, 1, (IDirect3DBaseTexture9*)g_d3d9.palette_tex[0]));
|
||||
|
||||
BOOL bilinear =
|
||||
g_ddraw->d3d9linear &&
|
||||
g_ddraw->d3d9_filter &&
|
||||
g_d3d9.pixel_shader_upscale &&
|
||||
(g_ddraw->render.viewport.width != g_ddraw->width || g_ddraw->render.viewport.height != g_ddraw->height);
|
||||
|
||||
@ -369,10 +369,11 @@ static BOOL d3d9_set_states()
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_ddraw->d3d9linear)
|
||||
if (g_ddraw->d3d9_filter)
|
||||
{
|
||||
if (SUCCEEDED(IDirect3DDevice9_SetSamplerState(g_d3d9.device, 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR)) &&
|
||||
SUCCEEDED(IDirect3DDevice9_SetSamplerState(g_d3d9.device, 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR)) &&
|
||||
g_ddraw->d3d9_filter == FILTER_CUBIC &&
|
||||
g_d3d9.pixel_shader_upscale &&
|
||||
(g_ddraw->render.viewport.width != g_ddraw->width || g_ddraw->render.viewport.height != g_ddraw->height) &&
|
||||
SUCCEEDED(IDirect3DDevice9_SetPixelShader(g_d3d9.device, g_d3d9.pixel_shader_upscale)))
|
||||
|
Loading…
x
Reference in New Issue
Block a user