@@ -1221,6 +1221,10 @@ private void OnRenderingStep(RenderSteps step, SpriteBatch spriteBatch, RenderTa
12211221 this . RaiseRenderEvent ( events . RenderingHud , spriteBatch , renderTarget ) ;
12221222 break ;
12231223 }
1224+
1225+ // raise generic rendering stage event
1226+ if ( events . RenderingStep . HasListeners )
1227+ this . RaiseRenderEvent ( events . RenderingStep , spriteBatch , renderTarget , RenderingStepEventArgs . Instance ( step ) ) ;
12241228 }
12251229
12261230 /// <summary>Raised when the game finishes a render step in the draw loop.</summary>
@@ -1245,6 +1249,10 @@ private void OnRenderedStep(RenderSteps step, SpriteBatch spriteBatch, RenderTar
12451249 this . RaiseRenderEvent ( events . RenderedHud , spriteBatch , renderTarget ) ;
12461250 break ;
12471251 }
1252+
1253+ // raise generic rendering stage event
1254+ if ( events . RenderedStep . HasListeners )
1255+ this . RaiseRenderEvent ( events . RenderedStep , spriteBatch , renderTarget , RenderedStepEventArgs . Instance ( step ) ) ;
12481256 }
12491257
12501258 /// <summary>Raised after an instance finishes a draw loop.</summary>
@@ -1261,6 +1269,18 @@ private void OnRendered(RenderTarget2D renderTarget)
12611269 /// <param name="renderTarget">The render target being drawn to the screen.</param>
12621270 private void RaiseRenderEvent < TEventArgs > ( ManagedEvent < TEventArgs > @event , SpriteBatch spriteBatch , RenderTarget2D renderTarget )
12631271 where TEventArgs : EventArgs , new ( )
1272+ {
1273+ this . RaiseRenderEvent ( @event , spriteBatch , renderTarget , Singleton < TEventArgs > . Instance ) ;
1274+ }
1275+
1276+ /// <summary>Raise a rendering/rendered event, temporarily opening the given sprite batch if needed to let mods draw to it.</summary>
1277+ /// <typeparam name="TEventArgs">The event args type to construct.</typeparam>
1278+ /// <param name="event">The event to raise.</param>
1279+ /// <param name="spriteBatch">The sprite batch being drawn to the screen.</param>
1280+ /// <param name="renderTarget">The render target being drawn to the screen.</param>
1281+ /// <param name="eventArgs">The event arguments to pass to the event.</param>
1282+ private void RaiseRenderEvent < TEventArgs > ( ManagedEvent < TEventArgs > @event , SpriteBatch spriteBatch , RenderTarget2D renderTarget , TEventArgs eventArgs )
1283+ where TEventArgs : EventArgs
12641284 {
12651285 if ( ! @event . HasListeners )
12661286 return ;
@@ -1286,7 +1306,7 @@ private void RaiseRenderEvent<TEventArgs>(ManagedEvent<TEventArgs> @event, Sprit
12861306 Game1 . SetRenderTarget ( renderTarget ) ;
12871307 }
12881308
1289- @event . RaiseEmpty ( ) ;
1309+ @event . Raise ( eventArgs ) ;
12901310 }
12911311 finally
12921312 {
0 commit comments