From 8ccbc0b81fef95db1b890a884b643462eba2a226 Mon Sep 17 00:00:00 2001 From: adelikat Date: Mon, 16 Dec 2019 18:45:40 -0600 Subject: [PATCH] DisplayConfig - pass in dependencies --- BizHawk.Client.EmuHawk/MainForm.Events.cs | 5 +- .../config/DisplayConfig.cs | 200 +++++++++--------- 2 files changed, 104 insertions(+), 101 deletions(-) diff --git a/BizHawk.Client.EmuHawk/MainForm.Events.cs b/BizHawk.Client.EmuHawk/MainForm.Events.cs index 527e737ff9..cb88731c1c 100644 --- a/BizHawk.Client.EmuHawk/MainForm.Events.cs +++ b/BizHawk.Client.EmuHawk/MainForm.Events.cs @@ -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"); } } } diff --git a/BizHawk.Client.EmuHawk/config/DisplayConfig.cs b/BizHawk.Client.EmuHawk/config/DisplayConfig.cs index 2b22ce8be4..c57054a0a9 100644 --- a/BizHawk.Client.EmuHawk/config/DisplayConfig.cs +++ b/BizHawk.Client.EmuHawk/config/DisplayConfig.cs @@ -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}%"; }