diff --git a/src/BizHawk.Client.EmuHawk/Api/Libraries/GuiApi.cs b/src/BizHawk.Client.EmuHawk/Api/Libraries/GuiApi.cs index 2ff6ce64af..f0d1a755fe 100644 --- a/src/BizHawk.Client.EmuHawk/Api/Libraries/GuiApi.cs +++ b/src/BizHawk.Client.EmuHawk/Api/Libraries/GuiApi.cs @@ -104,7 +104,7 @@ namespace BizHawk.Client.EmuHawk public (int Left, int Top, int Right, int Bottom) GetPadding() => (_padding.Left, _padding.Top, _padding.Right, _padding.Bottom); - public void AddMessage(string message) => GlobalWin.OSD.AddMessage(message); + public void AddMessage(string message) => _displayManager.OSD.AddMessage(message); public void ClearGraphics() { @@ -112,7 +112,7 @@ namespace BizHawk.Client.EmuHawk DrawFinish(); } - public void ClearText() => GlobalWin.OSD.ClearGuiText(); + public void ClearText() => _displayManager.OSD.ClearGuiText(); public void SetDefaultForegroundColor(Color color) => _defaultForeground = color; @@ -525,7 +525,7 @@ namespace BizHawk.Client.EmuHawk } var pos = new MessagePosition{ X = x, Y = y, Anchor = (MessagePosition.AnchorType)a }; - GlobalWin.OSD.AddGuiText(message, pos, Color.Black, forecolor ?? Color.White); + _displayManager.OSD.AddGuiText(message, pos, Color.Black, forecolor ?? Color.White); } public void Dispose() diff --git a/src/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs b/src/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs index 5c8484367f..17b6eeb374 100644 --- a/src/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs +++ b/src/BizHawk.Client.EmuHawk/DisplayManager/DisplayManager.cs @@ -49,16 +49,15 @@ namespace BizHawk.Client.EmuHawk private readonly Func _getIsSecondaryThrottlingDisabled; - private readonly OSDManager _osdManager; + public readonly OSDManager OSD = new OSDManager(); private Config GlobalConfig => GlobalWin.Config; private IEmulator GlobalEmulator => GlobalWin.Emulator; - public DisplayManager(OSDManager osdManager, IGL gl, PresentationPanel presentationPanel, Func getIsSecondaryThrottlingDisabled) + public DisplayManager(IGL gl, PresentationPanel presentationPanel, Func getIsSecondaryThrottlingDisabled) { _getIsSecondaryThrottlingDisabled = getIsSecondaryThrottlingDisabled; - _osdManager = osdManager; GL = gl; // setup the GL context manager, needed for coping with multiple opengl cores vs opengl display method @@ -284,9 +283,9 @@ namespace BizHawk.Client.EmuHawk ClipBounds = new Rectangle(0, 0, size.Width, size.Height) }; Renderer.SetBlendState(GL.BlendNormal); - _osdManager.Begin(myBlitter); - _osdManager.DrawScreenInfo(myBlitter); - _osdManager.DrawMessages(myBlitter); + OSD.Begin(myBlitter); + OSD.DrawScreenInfo(myBlitter); + OSD.DrawMessages(myBlitter); Renderer.End(); }; diff --git a/src/BizHawk.Client.EmuHawk/GlobalWin.cs b/src/BizHawk.Client.EmuHawk/GlobalWin.cs index 9bbcd76102..6ea15709a9 100644 --- a/src/BizHawk.Client.EmuHawk/GlobalWin.cs +++ b/src/BizHawk.Client.EmuHawk/GlobalWin.cs @@ -21,7 +21,6 @@ namespace BizHawk.Client.EmuHawk public static IGL_TK IGL_GL; public static Sound Sound; - public static readonly OSDManager OSD = new OSDManager(); public static Dictionary UserBag { get; set; } = new Dictionary(); diff --git a/src/BizHawk.Client.EmuHawk/MainForm.cs b/src/BizHawk.Client.EmuHawk/MainForm.cs index d38e189661..e21e234ec5 100644 --- a/src/BizHawk.Client.EmuHawk/MainForm.cs +++ b/src/BizHawk.Client.EmuHawk/MainForm.cs @@ -336,7 +336,7 @@ namespace BizHawk.Client.EmuHawk { GraphicsControl = { MainWindow = true } }; - DisplayManager = new DisplayManager(OSD, GlobalWin.GL, _presentationPanel, () => DisableSecondaryThrottling); + DisplayManager = new DisplayManager(GlobalWin.GL, _presentationPanel, () => DisableSecondaryThrottling); Controls.Add(_presentationPanel); Controls.SetChildIndex(_presentationPanel, 0); @@ -845,7 +845,6 @@ namespace BizHawk.Client.EmuHawk public EmuClientApi EmuClient { get; set; } private InputManager InputManager => GlobalWin.InputManager; - private OSDManager OSD => GlobalWin.OSD; private IVideoProvider _currentVideoProvider = NullVideo.Instance; @@ -861,6 +860,8 @@ namespace BizHawk.Client.EmuHawk private DisplayManager DisplayManager; + private OSDManager OSD => DisplayManager.OSD; + public IMovieSession MovieSession { get => GlobalWin.MovieSession; diff --git a/src/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs b/src/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs index 4b11b47133..1d5b012e85 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Lua/LuaConsole.cs @@ -136,7 +136,7 @@ namespace BizHawk.Client.EmuHawk LuaImp.GuiLibrary?.DrawFinish(); LuaImp?.Close(); - GlobalWin.OSD.ClearGuiText(); + DisplayManager.OSD.ClearGuiText(); } else { @@ -973,7 +973,7 @@ namespace BizHawk.Client.EmuHawk { // Shenanigans // We want any gui.text messages from a script to immediately update even when paused - GlobalWin.OSD.ClearGuiText(); + DisplayManager.OSD.ClearGuiText(); Tools.UpdateToolsAfter(); LuaImp.EndLuaDrawing(); LuaImp.StartLuaDrawing(); diff --git a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs index fbb544c633..4696ab85cf 100644 --- a/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs +++ b/src/BizHawk.Client.EmuHawk/tools/Watch/RamWatch.cs @@ -294,7 +294,7 @@ namespace BizHawk.Client.EmuHawk return; } - GlobalWin.OSD.ClearRamWatches(); + DisplayManager.OSD.ClearRamWatches(); if (_watches.Any()) { _watches.UpdateValues(Config.RamWatchDefinePrevious); @@ -313,11 +313,11 @@ namespace BizHawk.Client.EmuHawk { if (Config.DisplayRamWatch) { - GlobalWin.OSD.ClearRamWatches(); + DisplayManager.OSD.ClearRamWatches(); for (var i = 0; i < _watches.Count; i++) { var frozen = !_watches[i].IsSeparator && MainForm.CheatList.IsActive(_watches[i].Domain, _watches[i].Address); - GlobalWin.OSD.AddRamWatch( + DisplayManager.OSD.AddRamWatch( _watches[i].ToDisplayString(), new MessagePosition { @@ -976,7 +976,7 @@ namespace BizHawk.Client.EmuHawk if (!Config.DisplayRamWatch) { - GlobalWin.OSD.ClearRamWatches(); + DisplayManager.OSD.ClearRamWatches(); } else {