@@ -1222,6 +1222,10 @@ private void OnRenderingStep(RenderSteps step, SpriteBatch spriteBatch, RenderTa
12221222 this . RaiseRenderEvent ( events . RenderingHud , spriteBatch , renderTarget ) ;
12231223 break ;
12241224 }
1225+
1226+ // raise generic rendering stage event
1227+ if ( events . RenderingStep . HasListeners )
1228+ this . RaiseRenderEvent ( events . RenderingStep , spriteBatch , renderTarget , RenderingStepEventArgs . Instance ( step ) ) ;
12251229 }
12261230
12271231 /// <summary>Raised when the game finishes a render step in the draw loop.</summary>
@@ -1246,6 +1250,10 @@ private void OnRenderedStep(RenderSteps step, SpriteBatch spriteBatch, RenderTar
12461250 this . RaiseRenderEvent ( events . RenderedHud , spriteBatch , renderTarget ) ;
12471251 break ;
12481252 }
1253+
1254+ // raise generic rendering stage event
1255+ if ( events . RenderedStep . HasListeners )
1256+ this . RaiseRenderEvent ( events . RenderedStep , spriteBatch , renderTarget , RenderedStepEventArgs . Instance ( step ) ) ;
12491257 }
12501258
12511259 /// <summary>Raised after an instance finishes a draw loop.</summary>
@@ -1262,6 +1270,18 @@ private void OnRendered(RenderTarget2D renderTarget)
12621270 /// <param name="renderTarget">The render target being drawn to the screen.</param>
12631271 private void RaiseRenderEvent < TEventArgs > ( ManagedEvent < TEventArgs > @event , SpriteBatch spriteBatch , RenderTarget2D renderTarget )
12641272 where TEventArgs : EventArgs , new ( )
1273+ {
1274+ this . RaiseRenderEvent ( @event , spriteBatch , renderTarget , Singleton < TEventArgs > . Instance ) ;
1275+ }
1276+
1277+ /// <summary>Raise a rendering/rendered event, temporarily opening the given sprite batch if needed to let mods draw to it.</summary>
1278+ /// <typeparam name="TEventArgs">The event args type to construct.</typeparam>
1279+ /// <param name="event">The event to raise.</param>
1280+ /// <param name="spriteBatch">The sprite batch being drawn to the screen.</param>
1281+ /// <param name="renderTarget">The render target being drawn to the screen.</param>
1282+ /// <param name="eventArgs">The event arguments to pass to the event.</param>
1283+ private void RaiseRenderEvent < TEventArgs > ( ManagedEvent < TEventArgs > @event , SpriteBatch spriteBatch , RenderTarget2D renderTarget , TEventArgs eventArgs )
1284+ where TEventArgs : EventArgs
12651285 {
12661286 if ( ! @event . HasListeners )
12671287 return ;
@@ -1287,7 +1307,7 @@ private void RaiseRenderEvent<TEventArgs>(ManagedEvent<TEventArgs> @event, Sprit
12871307 Game1 . SetRenderTarget ( renderTarget ) ;
12881308 }
12891309
1290- @event . RaiseEmpty ( ) ;
1310+ @event . Raise ( eventArgs ) ;
12911311 }
12921312 finally
12931313 {
0 commit comments