DisplayConfig - pass in dependencies
This commit is contained in:
parent
8fcd9bb2a5
commit
8ccbc0b81f
|
@ -3061,15 +3061,16 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void DisplayConfigMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
using var window = new DisplayConfig();
|
||||
using var window = new DisplayConfig(Global.Config);
|
||||
var result = window.ShowDialog();
|
||||
if (result == DialogResult.OK)
|
||||
{
|
||||
GlobalWin.DisplayManager.RefreshUserShader();
|
||||
FrameBufferResized();
|
||||
SynchChrome();
|
||||
if (window.NeedReset)
|
||||
{
|
||||
GlobalWin.OSD.AddMessage("Restart program for changed settings");
|
||||
AddOnScreenMessage("Restart program for changed settings");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,77 +8,80 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
public partial class DisplayConfig : Form
|
||||
{
|
||||
public bool NeedReset;
|
||||
private readonly Config _config;
|
||||
|
||||
string _pathSelection;
|
||||
|
||||
public DisplayConfig()
|
||||
private string _pathSelection;
|
||||
|
||||
public bool NeedReset { get; set; }
|
||||
|
||||
public DisplayConfig(Config config)
|
||||
{
|
||||
_config = config;
|
||||
InitializeComponent();
|
||||
|
||||
rbNone.Checked = Global.Config.TargetDisplayFilter == 0;
|
||||
rbHq2x.Checked = Global.Config.TargetDisplayFilter == 1;
|
||||
rbScanlines.Checked = Global.Config.TargetDisplayFilter == 2;
|
||||
rbUser.Checked = Global.Config.TargetDisplayFilter == 3;
|
||||
rbNone.Checked = _config.TargetDisplayFilter == 0;
|
||||
rbHq2x.Checked = _config.TargetDisplayFilter == 1;
|
||||
rbScanlines.Checked = _config.TargetDisplayFilter == 2;
|
||||
rbUser.Checked = _config.TargetDisplayFilter == 3;
|
||||
|
||||
_pathSelection = Global.Config.DispUserFilterPath ?? "";
|
||||
_pathSelection = _config.DispUserFilterPath ?? "";
|
||||
RefreshState();
|
||||
|
||||
rbFinalFilterNone.Checked = Global.Config.DispFinalFilter == 0;
|
||||
rbFinalFilterBilinear.Checked = Global.Config.DispFinalFilter == 1;
|
||||
rbFinalFilterBicubic.Checked = Global.Config.DispFinalFilter == 2;
|
||||
rbFinalFilterNone.Checked = _config.DispFinalFilter == 0;
|
||||
rbFinalFilterBilinear.Checked = _config.DispFinalFilter == 1;
|
||||
rbFinalFilterBicubic.Checked = _config.DispFinalFilter == 2;
|
||||
|
||||
tbScanlineIntensity.Value = Global.Config.TargetScanlineFilterIntensity;
|
||||
checkLetterbox.Checked = Global.Config.DispFixAspectRatio;
|
||||
checkPadInteger.Checked = Global.Config.DispFixScaleInteger;
|
||||
cbFullscreenHacks.Checked = Global.Config.DispFullscreenHacks;
|
||||
cbAutoPrescale.Checked = Global.Config.DispAutoPrescale;
|
||||
tbScanlineIntensity.Value = _config.TargetScanlineFilterIntensity;
|
||||
checkLetterbox.Checked = _config.DispFixAspectRatio;
|
||||
checkPadInteger.Checked = _config.DispFixScaleInteger;
|
||||
cbFullscreenHacks.Checked = _config.DispFullscreenHacks;
|
||||
cbAutoPrescale.Checked = _config.DispAutoPrescale;
|
||||
|
||||
cbAlternateVsync.Checked = Global.Config.DispAlternateVsync;
|
||||
cbAlternateVsync.Checked = _config.DispAlternateVsync;
|
||||
|
||||
if (Global.Config.DispSpeedupFeatures == 2) rbDisplayFull.Checked = true;
|
||||
if (Global.Config.DispSpeedupFeatures == 1) rbDisplayMinimal.Checked = true;
|
||||
if (Global.Config.DispSpeedupFeatures == 0) rbDisplayAbsoluteZero.Checked = true;
|
||||
if (_config.DispSpeedupFeatures == 2) rbDisplayFull.Checked = true;
|
||||
if (_config.DispSpeedupFeatures == 1) rbDisplayMinimal.Checked = true;
|
||||
if (_config.DispSpeedupFeatures == 0) rbDisplayAbsoluteZero.Checked = true;
|
||||
|
||||
rbOpenGL.Checked = Global.Config.DispMethod == Config.EDispMethod.OpenGL;
|
||||
rbGDIPlus.Checked = Global.Config.DispMethod == Config.EDispMethod.GdiPlus;
|
||||
rbD3D9.Checked = Global.Config.DispMethod == Config.EDispMethod.SlimDX9;
|
||||
rbOpenGL.Checked = _config.DispMethod == Config.EDispMethod.OpenGL;
|
||||
rbGDIPlus.Checked = _config.DispMethod == Config.EDispMethod.GdiPlus;
|
||||
rbD3D9.Checked = _config.DispMethod == Config.EDispMethod.SlimDX9;
|
||||
|
||||
cbStatusBarWindowed.Checked = Global.Config.DispChrome_StatusBarWindowed;
|
||||
cbCaptionWindowed.Checked = Global.Config.DispChrome_CaptionWindowed;
|
||||
cbMenuWindowed.Checked = Global.Config.DispChrome_MenuWindowed;
|
||||
cbStatusBarFullscreen.Checked = Global.Config.DispChrome_StatusBarFullscreen;
|
||||
cbMenuFullscreen.Checked = Global.Config.DispChrome_MenuFullscreen;
|
||||
trackbarFrameSizeWindowed.Value = Global.Config.DispChrome_FrameWindowed;
|
||||
cbFSAutohideMouse.Checked = Global.Config.DispChrome_Fullscreen_AutohideMouse;
|
||||
cbStatusBarWindowed.Checked = _config.DispChrome_StatusBarWindowed;
|
||||
cbCaptionWindowed.Checked = _config.DispChrome_CaptionWindowed;
|
||||
cbMenuWindowed.Checked = _config.DispChrome_MenuWindowed;
|
||||
cbStatusBarFullscreen.Checked = _config.DispChrome_StatusBarFullscreen;
|
||||
cbMenuFullscreen.Checked = _config.DispChrome_MenuFullscreen;
|
||||
trackbarFrameSizeWindowed.Value = _config.DispChrome_FrameWindowed;
|
||||
cbFSAutohideMouse.Checked = _config.DispChrome_Fullscreen_AutohideMouse;
|
||||
SyncTrackBar();
|
||||
|
||||
cbAllowDoubleclickFullscreen.Checked = Global.Config.DispChrome_AllowDoubleClickFullscreen;
|
||||
cbAllowDoubleclickFullscreen.Checked = _config.DispChrome_AllowDoubleClickFullscreen;
|
||||
|
||||
nudPrescale.Value = Global.Config.DispPrescale;
|
||||
nudPrescale.Value = _config.DispPrescale;
|
||||
|
||||
if (Global.Config.DispManagerAR == Config.EDispManagerAR.None)
|
||||
if (_config.DispManagerAR == Config.EDispManagerAR.None)
|
||||
rbUseRaw.Checked = true;
|
||||
else if (Global.Config.DispManagerAR == Config.EDispManagerAR.System)
|
||||
else if (_config.DispManagerAR == Config.EDispManagerAR.System)
|
||||
rbUseSystem.Checked = true;
|
||||
else if (Global.Config.DispManagerAR == Config.EDispManagerAR.Custom)
|
||||
else if (_config.DispManagerAR == Config.EDispManagerAR.Custom)
|
||||
rbUseCustom.Checked = true;
|
||||
else if (Global.Config.DispManagerAR == Config.EDispManagerAR.CustomRatio)
|
||||
else if (_config.DispManagerAR == Config.EDispManagerAR.CustomRatio)
|
||||
rbUseCustomRatio.Checked = true;
|
||||
|
||||
if(Global.Config.DispCustomUserARWidth != -1)
|
||||
txtCustomARWidth.Text = Global.Config.DispCustomUserARWidth.ToString();
|
||||
if (Global.Config.DispCustomUserARHeight != -1)
|
||||
txtCustomARHeight.Text = Global.Config.DispCustomUserARHeight.ToString();
|
||||
if (Global.Config.DispCustomUserARX != -1)
|
||||
txtCustomARX.Text = Global.Config.DispCustomUserARX.ToString();
|
||||
if (Global.Config.DispCustomUserARY != -1)
|
||||
txtCustomARY.Text = Global.Config.DispCustomUserARY.ToString();
|
||||
if(_config.DispCustomUserARWidth != -1)
|
||||
txtCustomARWidth.Text = _config.DispCustomUserARWidth.ToString();
|
||||
if (_config.DispCustomUserARHeight != -1)
|
||||
txtCustomARHeight.Text = _config.DispCustomUserARHeight.ToString();
|
||||
if (_config.DispCustomUserARX != -1)
|
||||
txtCustomARX.Text = _config.DispCustomUserARX.ToString();
|
||||
if (_config.DispCustomUserARY != -1)
|
||||
txtCustomARY.Text = _config.DispCustomUserARY.ToString();
|
||||
|
||||
txtCropLeft.Text = Global.Config.DispCropLeft.ToString();
|
||||
txtCropTop.Text = Global.Config.DispCropTop.ToString();
|
||||
txtCropRight.Text = Global.Config.DispCropRight.ToString();
|
||||
txtCropBottom.Text = Global.Config.DispCropBottom.ToString();
|
||||
txtCropLeft.Text = _config.DispCropLeft.ToString();
|
||||
txtCropTop.Text = _config.DispCropTop.ToString();
|
||||
txtCropRight.Text = _config.DispCropRight.ToString();
|
||||
txtCropBottom.Text = _config.DispCropBottom.ToString();
|
||||
|
||||
RefreshAspectRatioOptions();
|
||||
|
||||
|
@ -96,84 +99,83 @@ namespace BizHawk.Client.EmuHawk
|
|||
private void btnOk_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (rbNone.Checked)
|
||||
Global.Config.TargetDisplayFilter = 0;
|
||||
_config.TargetDisplayFilter = 0;
|
||||
if (rbHq2x.Checked)
|
||||
Global.Config.TargetDisplayFilter = 1;
|
||||
_config.TargetDisplayFilter = 1;
|
||||
if (rbScanlines.Checked)
|
||||
Global.Config.TargetDisplayFilter = 2;
|
||||
_config.TargetDisplayFilter = 2;
|
||||
if (rbUser.Checked)
|
||||
Global.Config.TargetDisplayFilter = 3;
|
||||
_config.TargetDisplayFilter = 3;
|
||||
|
||||
if (rbFinalFilterNone.Checked)
|
||||
Global.Config.DispFinalFilter = 0;
|
||||
_config.DispFinalFilter = 0;
|
||||
if (rbFinalFilterBilinear.Checked)
|
||||
Global.Config.DispFinalFilter = 1;
|
||||
_config.DispFinalFilter = 1;
|
||||
if (rbFinalFilterBicubic.Checked)
|
||||
Global.Config.DispFinalFilter = 2;
|
||||
_config.DispFinalFilter = 2;
|
||||
|
||||
Global.Config.DispPrescale = (int)nudPrescale.Value;
|
||||
_config.DispPrescale = (int)nudPrescale.Value;
|
||||
|
||||
Global.Config.TargetScanlineFilterIntensity = tbScanlineIntensity.Value;
|
||||
Global.Config.DispFixAspectRatio = checkLetterbox.Checked;
|
||||
Global.Config.DispFixScaleInteger = checkPadInteger.Checked;
|
||||
Global.Config.DispFullscreenHacks = cbFullscreenHacks.Checked;
|
||||
Global.Config.DispAutoPrescale = cbAutoPrescale.Checked;
|
||||
_config.TargetScanlineFilterIntensity = tbScanlineIntensity.Value;
|
||||
_config.DispFixAspectRatio = checkLetterbox.Checked;
|
||||
_config.DispFixScaleInteger = checkPadInteger.Checked;
|
||||
_config.DispFullscreenHacks = cbFullscreenHacks.Checked;
|
||||
_config.DispAutoPrescale = cbAutoPrescale.Checked;
|
||||
|
||||
Global.Config.DispAlternateVsync = cbAlternateVsync.Checked;
|
||||
_config.DispAlternateVsync = cbAlternateVsync.Checked;
|
||||
|
||||
Global.Config.DispChrome_StatusBarWindowed = cbStatusBarWindowed.Checked;
|
||||
Global.Config.DispChrome_CaptionWindowed = cbCaptionWindowed.Checked;
|
||||
Global.Config.DispChrome_MenuWindowed = cbMenuWindowed.Checked;
|
||||
Global.Config.DispChrome_StatusBarFullscreen = cbStatusBarFullscreen.Checked;
|
||||
Global.Config.DispChrome_MenuFullscreen = cbMenuFullscreen.Checked;
|
||||
Global.Config.DispChrome_FrameWindowed = trackbarFrameSizeWindowed.Value;
|
||||
Global.Config.DispChrome_Fullscreen_AutohideMouse = cbFSAutohideMouse.Checked;
|
||||
Global.Config.DispChrome_AllowDoubleClickFullscreen = cbAllowDoubleclickFullscreen.Checked;
|
||||
_config.DispChrome_StatusBarWindowed = cbStatusBarWindowed.Checked;
|
||||
_config.DispChrome_CaptionWindowed = cbCaptionWindowed.Checked;
|
||||
_config.DispChrome_MenuWindowed = cbMenuWindowed.Checked;
|
||||
_config.DispChrome_StatusBarFullscreen = cbStatusBarFullscreen.Checked;
|
||||
_config.DispChrome_MenuFullscreen = cbMenuFullscreen.Checked;
|
||||
_config.DispChrome_FrameWindowed = trackbarFrameSizeWindowed.Value;
|
||||
_config.DispChrome_Fullscreen_AutohideMouse = cbFSAutohideMouse.Checked;
|
||||
_config.DispChrome_AllowDoubleClickFullscreen = cbAllowDoubleclickFullscreen.Checked;
|
||||
|
||||
if (rbDisplayFull.Checked) Global.Config.DispSpeedupFeatures = 2;
|
||||
if (rbDisplayMinimal.Checked) Global.Config.DispSpeedupFeatures = 1;
|
||||
if (rbDisplayAbsoluteZero.Checked) Global.Config.DispSpeedupFeatures = 0;
|
||||
if (rbDisplayFull.Checked) _config.DispSpeedupFeatures = 2;
|
||||
if (rbDisplayMinimal.Checked) _config.DispSpeedupFeatures = 1;
|
||||
if (rbDisplayAbsoluteZero.Checked) _config.DispSpeedupFeatures = 0;
|
||||
|
||||
if (rbUseRaw.Checked)
|
||||
Global.Config.DispManagerAR = Config.EDispManagerAR.None;
|
||||
_config.DispManagerAR = Config.EDispManagerAR.None;
|
||||
else if (rbUseSystem.Checked)
|
||||
Global.Config.DispManagerAR = Config.EDispManagerAR.System;
|
||||
_config.DispManagerAR = Config.EDispManagerAR.System;
|
||||
else if (rbUseCustom.Checked)
|
||||
Global.Config.DispManagerAR = Config.EDispManagerAR.Custom;
|
||||
_config.DispManagerAR = Config.EDispManagerAR.Custom;
|
||||
else if (rbUseCustomRatio.Checked)
|
||||
Global.Config.DispManagerAR = Config.EDispManagerAR.CustomRatio;
|
||||
_config.DispManagerAR = Config.EDispManagerAR.CustomRatio;
|
||||
|
||||
if (txtCustomARWidth.Text != "")
|
||||
int.TryParse(txtCustomARWidth.Text, out Global.Config.DispCustomUserARWidth);
|
||||
else Global.Config.DispCustomUserARWidth = -1;
|
||||
int.TryParse(txtCustomARWidth.Text, out _config.DispCustomUserARWidth);
|
||||
else _config.DispCustomUserARWidth = -1;
|
||||
if (txtCustomARHeight.Text != "")
|
||||
int.TryParse(txtCustomARHeight.Text, out Global.Config.DispCustomUserARHeight);
|
||||
else Global.Config.DispCustomUserARHeight = -1;
|
||||
int.TryParse(txtCustomARHeight.Text, out _config.DispCustomUserARHeight);
|
||||
else _config.DispCustomUserARHeight = -1;
|
||||
if (txtCustomARX.Text != "")
|
||||
float.TryParse(txtCustomARX.Text, out Global.Config.DispCustomUserARX);
|
||||
else Global.Config.DispCustomUserARX = -1;
|
||||
float.TryParse(txtCustomARX.Text, out _config.DispCustomUserARX);
|
||||
else _config.DispCustomUserARX = -1;
|
||||
if (txtCustomARY.Text != "")
|
||||
float.TryParse(txtCustomARY.Text, out Global.Config.DispCustomUserARY);
|
||||
else Global.Config.DispCustomUserARY = -1;
|
||||
float.TryParse(txtCustomARY.Text, out _config.DispCustomUserARY);
|
||||
else _config.DispCustomUserARY = -1;
|
||||
|
||||
var oldDisplayMethod = Global.Config.DispMethod;
|
||||
var oldDisplayMethod = _config.DispMethod;
|
||||
if(rbOpenGL.Checked)
|
||||
Global.Config.DispMethod = Config.EDispMethod.OpenGL;
|
||||
_config.DispMethod = Config.EDispMethod.OpenGL;
|
||||
if(rbGDIPlus.Checked)
|
||||
Global.Config.DispMethod = Config.EDispMethod.GdiPlus;
|
||||
_config.DispMethod = Config.EDispMethod.GdiPlus;
|
||||
if(rbD3D9.Checked)
|
||||
Global.Config.DispMethod = Config.EDispMethod.SlimDX9;
|
||||
_config.DispMethod = Config.EDispMethod.SlimDX9;
|
||||
|
||||
int.TryParse(txtCropLeft.Text, out Global.Config.DispCropLeft);
|
||||
int.TryParse(txtCropTop.Text, out Global.Config.DispCropTop);
|
||||
int.TryParse(txtCropRight.Text, out Global.Config.DispCropRight);
|
||||
int.TryParse(txtCropBottom.Text, out Global.Config.DispCropBottom);
|
||||
int.TryParse(txtCropLeft.Text, out _config.DispCropLeft);
|
||||
int.TryParse(txtCropTop.Text, out _config.DispCropTop);
|
||||
int.TryParse(txtCropRight.Text, out _config.DispCropRight);
|
||||
int.TryParse(txtCropBottom.Text, out _config.DispCropBottom);
|
||||
|
||||
if (oldDisplayMethod != Global.Config.DispMethod)
|
||||
if (oldDisplayMethod != _config.DispMethod)
|
||||
NeedReset = true;
|
||||
|
||||
Global.Config.DispUserFilterPath = _pathSelection;
|
||||
GlobalWin.DisplayManager.RefreshUserShader();
|
||||
_config.DispUserFilterPath = _pathSelection;
|
||||
|
||||
DialogResult = DialogResult.OK;
|
||||
Close();
|
||||
|
@ -256,8 +258,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
public void tbScanlineIntensity_Scroll(object sender, EventArgs e)
|
||||
{
|
||||
Global.Config.TargetScanlineFilterIntensity = tbScanlineIntensity.Value;
|
||||
int scanlines = Global.Config.TargetScanlineFilterIntensity;
|
||||
_config.TargetScanlineFilterIntensity = tbScanlineIntensity.Value;
|
||||
int scanlines = _config.TargetScanlineFilterIntensity;
|
||||
float percentage = (float) scanlines / 256 * 100;
|
||||
lblScanlines.Text = $"{percentage:F2}%";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue