From b45a9b80a3e5e42013c372b07a412bf32bd391f9 Mon Sep 17 00:00:00 2001 From: adelikat Date: Sun, 2 Sep 2012 14:54:30 +0000 Subject: [PATCH] Fix lua drawing from disappearing while paused, only have it update once per frame, and have it draw before frame advance --- BizHawk.MultiClient/DisplayManager/DisplayManager.cs | 12 +++++++++++- BizHawk.MultiClient/MainForm.cs | 1 + 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/BizHawk.MultiClient/DisplayManager/DisplayManager.cs b/BizHawk.MultiClient/DisplayManager/DisplayManager.cs index a0f43f3cbd..a3e73ebcc8 100644 --- a/BizHawk.MultiClient/DisplayManager/DisplayManager.cs +++ b/BizHawk.MultiClient/DisplayManager/DisplayManager.cs @@ -559,6 +559,14 @@ namespace BizHawk.MultiClient volatile bool VsyncToggle = false; volatile bool VsyncRequested = false; SwappableDisplaySurfaceSet sourceSurfaceSet = new SwappableDisplaySurfaceSet(); + + + DisplaySurface luaEmuSurface = null; + public void PreFrameUpdateLuaSource() + { + luaEmuSurface = luaEmuSurfaceSet.GetCurrent(); + } + public void UpdateSource(IVideoProvider videoProvider) { var newPendingSurface = sourceSurfaceSet.AllocateSurface(videoProvider.BufferWidth, videoProvider.BufferHeight, false); @@ -584,7 +592,7 @@ namespace BizHawk.MultiClient int w = currNativeWidth; int h = currNativeHeight; - DisplaySurface luaEmuSurface = luaEmuSurfaceSet.GetCurrent(); + DisplaySurface luaSurface = luaNativeSurfaceSet.GetCurrent(); //do we have anything to do? @@ -598,7 +606,9 @@ namespace BizHawk.MultiClient Global.RenderPanel.Clear(Color.FromArgb(videoProvider.BackgroundColor)); Global.RenderPanel.Render(surfaceToRender); if (luaEmuSurface != null) + { Global.RenderPanel.RenderOverlay(luaEmuSurface); + } RenderOSD(); diff --git a/BizHawk.MultiClient/MainForm.cs b/BizHawk.MultiClient/MainForm.cs index a868069e28..9f809f2df3 100644 --- a/BizHawk.MultiClient/MainForm.cs +++ b/BizHawk.MultiClient/MainForm.cs @@ -1900,6 +1900,7 @@ namespace BizHawk.MultiClient UpdateToolsBefore(); #if WINDOWS LuaConsole1.ResumeScripts(true); + Global.DisplayManager.PreFrameUpdateLuaSource(); #endif }