From 1bc1f1b3d20c7364322f4f2251a7998691e37478 Mon Sep 17 00:00:00 2001 From: YoshiRulz Date: Fri, 26 Jul 2024 16:03:02 +1000 Subject: [PATCH] Add overload for `IGuiApi.WithSurface` with stronger encapsulation --- src/BizHawk.Client.Common/Api/Classes/GuiApi.cs | 13 +++++++++++++ src/BizHawk.Client.Common/Api/Interfaces/IGuiApi.cs | 3 +++ 2 files changed, 16 insertions(+) diff --git a/src/BizHawk.Client.Common/Api/Classes/GuiApi.cs b/src/BizHawk.Client.Common/Api/Classes/GuiApi.cs index 2fbcc4bb62..41ab85b3c8 100644 --- a/src/BizHawk.Client.Common/Api/Classes/GuiApi.cs +++ b/src/BizHawk.Client.Common/Api/Classes/GuiApi.cs @@ -65,6 +65,19 @@ namespace BizHawk.Client.Common { } + public void WithSurface(DisplaySurfaceID surfaceID, Action drawingCallsFunc) + { + _usingSurfaceID = surfaceID; + try + { + drawingCallsFunc(this); + } + finally + { + _usingSurfaceID = null; + } + } + public void WithSurface(DisplaySurfaceID surfaceID, Action drawingCallsFunc) { _usingSurfaceID = surfaceID; diff --git a/src/BizHawk.Client.Common/Api/Interfaces/IGuiApi.cs b/src/BizHawk.Client.Common/Api/Interfaces/IGuiApi.cs index b9402d41c8..a2c3311037 100644 --- a/src/BizHawk.Client.Common/Api/Interfaces/IGuiApi.cs +++ b/src/BizHawk.Client.Common/Api/Interfaces/IGuiApi.cs @@ -12,6 +12,9 @@ namespace BizHawk.Client.Common [Obsolete("No longer supported, no-op.")] void SetAttributes(ImageAttributes a); + void WithSurface(DisplaySurfaceID surfaceID, Action drawingCallsFunc); + + [Obsolete("use the other overload e.g. `APIs.Gui.WithSurface(..., gui => { gui.DrawLine(...); });`")] void WithSurface(DisplaySurfaceID surfaceID, Action drawingCallsFunc); [Obsolete("No longer supported, no-op.")]