From 603cdbf0424e3d9d1542dbc0ee28fa4e90525dec Mon Sep 17 00:00:00 2001 From: codeimp <codeimp@e0d998f2-2e9b-42fe-843d-47128df60a06> Date: Sun, 22 Aug 2010 12:09:32 +0000 Subject: [PATCH] Added some functionality for plugins that want to render in other editing modes --- Source/Core/Editing/ClassicMode.cs | 3 +++ Source/Core/Plugins/Plug.cs | 1 + Source/Core/Plugins/PluginManager.cs | 1 + Source/Core/Rendering/Renderer2D.cs | 2 ++ Source/Core/Rendering/Renderer3D.cs | 2 ++ Source/Core/VisualModes/VisualMode.cs | 3 +++ 6 files changed, 12 insertions(+) diff --git a/Source/Core/Editing/ClassicMode.cs b/Source/Core/Editing/ClassicMode.cs index 6411ff79..db4e977a 100644 --- a/Source/Core/Editing/ClassicMode.cs +++ b/Source/Core/Editing/ClassicMode.cs @@ -102,6 +102,9 @@ namespace CodeImp.DoomBuilder.Editing // Panning public bool IsPanning { get { return panning; } } + // Rendering + public IRenderer2D Renderer { get { return renderer; } } + #endregion #region ================== Constructor / Disposer diff --git a/Source/Core/Plugins/Plug.cs b/Source/Core/Plugins/Plug.cs index 7ad7c6e4..1a8b77fb 100644 --- a/Source/Core/Plugins/Plug.cs +++ b/Source/Core/Plugins/Plug.cs @@ -322,6 +322,7 @@ namespace CodeImp.DoomBuilder.Plugins // Rendering events public virtual void OnEditRedrawDisplayBegin() { } public virtual void OnEditRedrawDisplayEnd() { } + public virtual void OnPresentDisplayBegin() { } #endregion } diff --git a/Source/Core/Plugins/PluginManager.cs b/Source/Core/Plugins/PluginManager.cs index 26696865..2788ae51 100644 --- a/Source/Core/Plugins/PluginManager.cs +++ b/Source/Core/Plugins/PluginManager.cs @@ -300,6 +300,7 @@ namespace CodeImp.DoomBuilder.Plugins public void OnEditMouseInput(Vector2D delta) { foreach(Plugin p in plugins) p.Plug.OnEditMouseInput(delta); } public void OnEditRedrawDisplayBegin() { foreach(Plugin p in plugins) p.Plug.OnEditRedrawDisplayBegin(); } public void OnEditRedrawDisplayEnd() { foreach(Plugin p in plugins) p.Plug.OnEditRedrawDisplayEnd(); } + public void OnPresentDisplayBegin() { foreach(Plugin p in plugins) p.Plug.OnPresentDisplayBegin(); } #endregion } diff --git a/Source/Core/Rendering/Renderer2D.cs b/Source/Core/Rendering/Renderer2D.cs index 13c7b1a1..e7710a37 100644 --- a/Source/Core/Rendering/Renderer2D.cs +++ b/Source/Core/Rendering/Renderer2D.cs @@ -202,6 +202,8 @@ namespace CodeImp.DoomBuilder.Rendering // This draws the image on screen public void Present() { + General.Plugins.OnPresentDisplayBegin(); + // Start drawing if(graphics.StartRendering(true, General.Colors.Background.ToColorValue(), graphics.BackBuffer, graphics.DepthBuffer)) { diff --git a/Source/Core/Rendering/Renderer3D.cs b/Source/Core/Rendering/Renderer3D.cs index 47c0bfcf..79e15e32 100644 --- a/Source/Core/Rendering/Renderer3D.cs +++ b/Source/Core/Rendering/Renderer3D.cs @@ -767,6 +767,8 @@ namespace CodeImp.DoomBuilder.Rendering // This finishes rendering public void Finish() { + General.Plugins.OnPresentDisplayBegin(); + // Done graphics.FinishRendering(); graphics.Present(); diff --git a/Source/Core/VisualModes/VisualMode.cs b/Source/Core/VisualModes/VisualMode.cs index 1d62ad9b..363f7983 100644 --- a/Source/Core/VisualModes/VisualMode.cs +++ b/Source/Core/VisualModes/VisualMode.cs @@ -86,6 +86,9 @@ namespace CodeImp.DoomBuilder.VisualModes public bool ProcessGeometry { get { return processgeometry; } set { processgeometry = value; } } public bool ProcessThings { get { return processthings; } set { processthings = value; } } public VisualBlockMap BlockMap { get { return blockmap; } } + + // Rendering + public IRenderer3D Renderer { get { return renderer; } } #endregion