win32: use bilinear setting in core

This commit is contained in:
OV2 2018-05-20 18:01:03 +02:00
parent af71ef55cd
commit f883561d11
8 changed files with 16 additions and 17 deletions

View File

@ -335,7 +335,7 @@ bool CD3DCG::LoadShader(const TCHAR *shaderFile)
and no filter has been set use the GUI setting and no filter has been set use the GUI setting
*/ */
if(pass.scaleParams.scaleTypeX==CG_SCALE_NONE && !it->filterSet) { if(pass.scaleParams.scaleTypeX==CG_SCALE_NONE && !it->filterSet) {
pass.linearFilter = GUI.BilinearFilter; pass.linearFilter = Settings.BilinearFilter;
} else { } else {
pass.linearFilter = it->linearFilter; pass.linearFilter = it->linearFilter;
} }

View File

@ -1084,7 +1084,7 @@ bool CDirect3D::ApplyDisplayChanges(void)
void CDirect3D::SetFiltering() void CDirect3D::SetFiltering()
{ {
if(GUI.BilinearFilter) { if(Settings.BilinearFilter) {
pDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR); pDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
pDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR); pDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
} else { } else {

View File

@ -375,7 +375,7 @@ bool CDirectDraw::SetDisplayMode(
ZeroMemory (&ddsd, sizeof (ddsd)); ZeroMemory (&ddsd, sizeof (ddsd));
ddsd.dwSize = sizeof (ddsd); ddsd.dwSize = sizeof (ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH; ddsd.dwFlags = DDSD_CAPS | DDSD_HEIGHT | DDSD_WIDTH;
if(GUI.BilinearFilter) if(Settings.BilinearFilter)
{ {
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | (GUI.LocalVidMem ? DDSCAPS_LOCALVIDMEM : DDSCAPS_NONLOCALVIDMEM); ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | (GUI.LocalVidMem ? DDSCAPS_LOCALVIDMEM : DDSCAPS_NONLOCALVIDMEM);
} }
@ -390,10 +390,10 @@ bool CDirectDraw::SetDisplayMode(
if (FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL))) if (FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL)))
{ {
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | (GUI.LocalVidMem ? DDSCAPS_NONLOCALVIDMEM : DDSCAPS_LOCALVIDMEM); ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_VIDEOMEMORY | (GUI.LocalVidMem ? DDSCAPS_NONLOCALVIDMEM : DDSCAPS_LOCALVIDMEM);
if(!GUI.BilinearFilter || FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL))) if(!Settings.BilinearFilter || FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL)))
{ {
ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY; ddsd.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN | DDSCAPS_SYSTEMMEMORY;
if(!GUI.BilinearFilter || FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL))) if(!Settings.BilinearFilter || FAILED(lpDD->CreateSurface (&ddsd, &lpDDSOffScreen, NULL)))
{ {
BLOCK = false; BLOCK = false;
return (false); return (false);

View File

@ -339,7 +339,7 @@ bool CGLCG::LoadShader(const TCHAR *shaderFile)
and no filter has been set use the GUI setting and no filter has been set use the GUI setting
*/ */
if(pass.scaleParams.scaleTypeX==CG_SCALE_NONE && !it->filterSet) { if(pass.scaleParams.scaleTypeX==CG_SCALE_NONE && !it->filterSet) {
pass.linearFilter = GUI.BilinearFilter; pass.linearFilter = Settings.BilinearFilter;
} else { } else {
pass.linearFilter = it->linearFilter; pass.linearFilter = it->linearFilter;
} }

View File

@ -509,7 +509,7 @@ void COpenGL::Render(SSurface Src)
} }
} }
if(GUI.BilinearFilter) { if(Settings.BilinearFilter) {
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri (GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
} else { } else {

View File

@ -265,7 +265,7 @@ void WinSetDefaultValues ()
GUI.Stretch = false; GUI.Stretch = false;
GUI.FlipCounter = 0; GUI.FlipCounter = 0;
GUI.NumFlipFrames = 1; GUI.NumFlipFrames = 1;
GUI.BilinearFilter = false; Settings.BilinearFilter = false;
GUI.LockDirectories = false; GUI.LockDirectories = false;
GUI.window_maximized = false; GUI.window_maximized = false;
GUI.EmulatedFullscreen = false; GUI.EmulatedFullscreen = false;
@ -915,7 +915,7 @@ void WinRegisterConfigItems()
AddBoolC("Stretch:Enabled", GUI.Stretch, true, "true to stretch the game image to fill the window or screen"); AddBoolC("Stretch:Enabled", GUI.Stretch, true, "true to stretch the game image to fill the window or screen");
AddBoolC("Stretch:MaintainAspectRatio", GUI.AspectRatio, true, "prevents stretching from changing the aspect ratio"); AddBoolC("Stretch:MaintainAspectRatio", GUI.AspectRatio, true, "prevents stretching from changing the aspect ratio");
AddUIntC("Stretch:AspectRatioBaseWidth", GUI.AspectWidth, 256, "base width for aspect ratio calculation (AR=AspectRatioBaseWidth/224), default is 256 - set to 299 for 4:3 aspect ratio"); AddUIntC("Stretch:AspectRatioBaseWidth", GUI.AspectWidth, 256, "base width for aspect ratio calculation (AR=AspectRatioBaseWidth/224), default is 256 - set to 299 for 4:3 aspect ratio");
AddBoolC("Stretch:BilinearFilter", GUI.BilinearFilter, true, "allows bilinear filtering of stretching. Depending on your video card and the window size, this may result in a lower framerate."); AddBoolC("Stretch:BilinearFilter", Settings.BilinearFilter, true, "allows bilinear filtering of stretching. Depending on your video card and the window size, this may result in a lower framerate.");
AddBoolC("Stretch:LocalVidMem", GUI.LocalVidMem, true, "determines the location of video memory in DirectDraw mode. May increase or decrease rendering performance, depending on your setup and which filter and stretching options are active."); AddBoolC("Stretch:LocalVidMem", GUI.LocalVidMem, true, "determines the location of video memory in DirectDraw mode. May increase or decrease rendering performance, depending on your setup and which filter and stretching options are active.");
AddBool("Fullscreen:Enabled", GUI.FullScreen, false); AddBool("Fullscreen:Enabled", GUI.FullScreen, false);
AddUInt("Fullscreen:Width", GUI.FullscreenMode.width, 640); AddUInt("Fullscreen:Width", GUI.FullscreenMode.width, 640);

View File

@ -2220,7 +2220,7 @@ LRESULT CALLBACK WinProc(
WinRefreshDisplay(); WinRefreshDisplay();
break; break;
case ID_WINDOW_BILINEAR: case ID_WINDOW_BILINEAR:
GUI.BilinearFilter = !GUI.BilinearFilter; Settings.BilinearFilter = !Settings.BilinearFilter;
WinDisplayApplyChanges(); WinDisplayApplyChanges();
WinRefreshDisplay(); WinRefreshDisplay();
break; break;
@ -3831,7 +3831,7 @@ static void CheckMenuStates ()
mii.fState = GUI.Stretch ? (GUI.AspectRatio ? MFS_CHECKED : MFS_UNCHECKED) : MFS_CHECKED|MFS_DISABLED; mii.fState = GUI.Stretch ? (GUI.AspectRatio ? MFS_CHECKED : MFS_UNCHECKED) : MFS_CHECKED|MFS_DISABLED;
SetMenuItemInfo (GUI.hMenu, ID_WINDOW_ASPECTRATIO, FALSE, &mii); SetMenuItemInfo (GUI.hMenu, ID_WINDOW_ASPECTRATIO, FALSE, &mii);
mii.fState = GUI.BilinearFilter ? MFS_CHECKED : MFS_UNCHECKED; mii.fState = Settings.BilinearFilter ? MFS_CHECKED : MFS_UNCHECKED;
if(!GUI.Stretch) if(!GUI.Stretch)
mii.fState |= MFS_DISABLED; mii.fState |= MFS_DISABLED;
SetMenuItemInfo (GUI.hMenu, ID_WINDOW_BILINEAR, FALSE, &mii); SetMenuItemInfo (GUI.hMenu, ID_WINDOW_BILINEAR, FALSE, &mii);
@ -7357,7 +7357,7 @@ INT_PTR CALLBACK DlgFunky(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
prevScaleHiRes = GUI.ScaleHiRes; prevScaleHiRes = GUI.ScaleHiRes;
prevPPL = GFX.RealPPL; prevPPL = GFX.RealPPL;
prevStretch = GUI.Stretch; prevStretch = GUI.Stretch;
prevBilinearFilter = GUI.BilinearFilter; prevBilinearFilter = Settings.BilinearFilter;
prevAspectRatio = GUI.AspectRatio; prevAspectRatio = GUI.AspectRatio;
prevAspectWidth = GUI.AspectWidth; prevAspectWidth = GUI.AspectWidth;
prevHeightExtend = GUI.HeightExtend; prevHeightExtend = GUI.HeightExtend;
@ -7422,7 +7422,7 @@ INT_PTR CALLBACK DlgFunky(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
SendDlgItemMessage(hDlg, IDC_FULLSCREEN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); SendDlgItemMessage(hDlg, IDC_FULLSCREEN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
if (GUI.EmulateFullscreen) if (GUI.EmulateFullscreen)
SendDlgItemMessage(hDlg, IDC_EMUFULLSCREEN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); SendDlgItemMessage(hDlg, IDC_EMUFULLSCREEN, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
if (GUI.BilinearFilter) if (Settings.BilinearFilter)
SendDlgItemMessage(hDlg, IDC_BILINEAR, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); SendDlgItemMessage(hDlg, IDC_BILINEAR, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
if (Settings.DisplayFrameRate) if (Settings.DisplayFrameRate)
SendDlgItemMessage(hDlg, IDC_SHOWFPS, BM_SETCHECK, (WPARAM)BST_CHECKED, 0); SendDlgItemMessage(hDlg, IDC_SHOWFPS, BM_SETCHECK, (WPARAM)BST_CHECKED, 0);
@ -7522,7 +7522,7 @@ INT_PTR CALLBACK DlgFunky(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)
case IDC_BILINEAR: case IDC_BILINEAR:
GUI.BilinearFilter = (bool)(IsDlgButtonChecked(hDlg,IDC_BILINEAR)==BST_CHECKED); Settings.BilinearFilter = (bool)(IsDlgButtonChecked(hDlg,IDC_BILINEAR)==BST_CHECKED);
//// refresh screen, so the user can see the new stretch mode //// refresh screen, so the user can see the new stretch mode
WinDisplayApplyChanges(); WinDisplayApplyChanges();
@ -7766,7 +7766,7 @@ updateFilterBox2:
case IDOK: case IDOK:
bool fullscreenWanted; bool fullscreenWanted;
Settings.Transparency = IsDlgButtonChecked(hDlg, IDC_TRANS); Settings.Transparency = IsDlgButtonChecked(hDlg, IDC_TRANS);
GUI.BilinearFilter = (bool)(IsDlgButtonChecked(hDlg,IDC_BILINEAR)==BST_CHECKED); Settings.BilinearFilter = (bool)(IsDlgButtonChecked(hDlg,IDC_BILINEAR)==BST_CHECKED);
if(!GUI.FullScreen || (GUI.FullscreenMode.width >= 512 && GUI.FullscreenMode.height >= 478) || GUI.Stretch) if(!GUI.FullScreen || (GUI.FullscreenMode.width >= 512 && GUI.FullscreenMode.height >= 478) || GUI.Stretch)
Settings.SupportHiRes = IsDlgButtonChecked(hDlg, IDC_HIRES); Settings.SupportHiRes = IsDlgButtonChecked(hDlg, IDC_HIRES);
else else
@ -7848,7 +7848,7 @@ updateFilterBox2:
GFX.RealPPL = prevPPL; GFX.RealPPL = prevPPL;
GUI.Stretch = prevStretch; GUI.Stretch = prevStretch;
Settings.AutoDisplayMessages = prevAutoDisplayMessages; Settings.AutoDisplayMessages = prevAutoDisplayMessages;
GUI.BilinearFilter = prevBilinearFilter; Settings.BilinearFilter = prevBilinearFilter;
GUI.AspectRatio = prevAspectRatio; GUI.AspectRatio = prevAspectRatio;
GUI.AspectWidth = prevAspectWidth; GUI.AspectWidth = prevAspectWidth;
GUI.HeightExtend = prevHeightExtend; GUI.HeightExtend = prevHeightExtend;

View File

@ -331,7 +331,6 @@ struct sGUI {
bool AlwaysCenterImage; bool AlwaysCenterImage;
bool EmulateFullscreen; bool EmulateFullscreen;
bool EmulatedFullscreen; bool EmulatedFullscreen;
bool BilinearFilter;
bool LocalVidMem; bool LocalVidMem;
bool Vsync; bool Vsync;
bool ReduceInputLag; bool ReduceInputLag;