From 25476776496815bd186ff9f4fd87f0e91157b555 Mon Sep 17 00:00:00 2001 From: gered Date: Sat, 24 Aug 2013 16:29:56 -0400 Subject: [PATCH] ScreenEffectManager now passes off a "service-located" SpriteBatch object to it's effects --- Blarg.GameFramework/Graphics/ScreenEffects/DimEffect.cs | 4 ++-- Blarg.GameFramework/Graphics/ScreenEffects/FadeEffect.cs | 4 ++-- .../Graphics/ScreenEffects/FlashEffect.cs | 4 ++-- .../Graphics/ScreenEffects/ScreenEffect.cs | 2 +- .../Graphics/ScreenEffects/ScreenEffectManager.cs | 9 +++++++-- 5 files changed, 14 insertions(+), 9 deletions(-) diff --git a/Blarg.GameFramework/Graphics/ScreenEffects/DimEffect.cs b/Blarg.GameFramework/Graphics/ScreenEffects/DimEffect.cs index c986cac..43eae81 100644 --- a/Blarg.GameFramework/Graphics/ScreenEffects/DimEffect.cs +++ b/Blarg.GameFramework/Graphics/ScreenEffects/DimEffect.cs @@ -16,7 +16,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects Alpha = DefaultDimAlpha; } - public override void OnRender(float delta) + public override void OnRender(float delta, SpriteBatch spriteBatch) { int width = Framework.GraphicsDevice.ViewContext.ViewportWidth; int height = Framework.GraphicsDevice.ViewContext.ViewportHeight; @@ -25,7 +25,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects var color = Color; color.A = Alpha; - //Platform.SpriteBatch.Render(texture, 0, 0, width, height, ref color); + spriteBatch.Render(texture, 0, 0, width, height, ref color); } } } diff --git a/Blarg.GameFramework/Graphics/ScreenEffects/FadeEffect.cs b/Blarg.GameFramework/Graphics/ScreenEffects/FadeEffect.cs index 32ed9f7..e58c0c1 100644 --- a/Blarg.GameFramework/Graphics/ScreenEffects/FadeEffect.cs +++ b/Blarg.GameFramework/Graphics/ScreenEffects/FadeEffect.cs @@ -42,7 +42,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects _fadeToAlpha = toAlpha; } - public override void OnRender(float delta) + public override void OnRender(float delta, SpriteBatch spriteBatch) { int width = Framework.GraphicsDevice.ViewContext.ViewportWidth; int height = Framework.GraphicsDevice.ViewContext.ViewportHeight; @@ -50,7 +50,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects var texture = Framework.GraphicsDevice.GetSolidColorTexture(Color.White); _color.A = _alpha; - //Platform.SpriteBatch.Render(texture, 0, 0, width, height, ref _color); + spriteBatch.Render(texture, 0, 0, width, height, ref _color); } public override void OnUpdate(float delta) diff --git a/Blarg.GameFramework/Graphics/ScreenEffects/FlashEffect.cs b/Blarg.GameFramework/Graphics/ScreenEffects/FlashEffect.cs index 18af972..f812361 100644 --- a/Blarg.GameFramework/Graphics/ScreenEffects/FlashEffect.cs +++ b/Blarg.GameFramework/Graphics/ScreenEffects/FlashEffect.cs @@ -24,7 +24,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects Color = Color.White; } - public override void OnRender(float delta) + public override void OnRender(float delta, SpriteBatch spriteBatch) { int width = Framework.GraphicsDevice.ViewContext.ViewportWidth; int height = Framework.GraphicsDevice.ViewContext.ViewportHeight; @@ -33,7 +33,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects var color = Color; color.A = _alpha; - //Platform.SpriteBatch.Render(texture, 0, 0, width, height, ref color); + spriteBatch.Render(texture, 0, 0, width, height, ref color); } public override void OnUpdate(float delta) diff --git a/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffect.cs b/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffect.cs index 276603e..15ef0dc 100644 --- a/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffect.cs +++ b/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffect.cs @@ -44,7 +44,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects { } - public virtual void OnRender(float delta) + public virtual void OnRender(float delta, SpriteBatch spriteBatch) { } diff --git a/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffectManager.cs b/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffectManager.cs index ad71d57..6b8a366 100644 --- a/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffectManager.cs +++ b/Blarg.GameFramework/Graphics/ScreenEffects/ScreenEffectManager.cs @@ -8,12 +8,17 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects LinkedList _effects; int _numLocalEffects; int _numGlobalEffects; + SpriteBatch _spriteBatch; public ScreenEffectManager() { _effects = new LinkedList(); _numLocalEffects = 0; _numGlobalEffects = 0; + + _spriteBatch = Framework.Services.Get(); + if (_spriteBatch == null) + throw new InvalidOperationException("No SpriteBatch object registered with the service locator."); } #region Get / Add / Remove @@ -133,7 +138,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects for (var node = _effects.First; node != null; node = node.Next) { if (node.Value.IsLocal) - node.Value.Effect.OnRender(delta); + node.Value.Effect.OnRender(delta, _spriteBatch); } } @@ -145,7 +150,7 @@ namespace Blarg.GameFramework.Graphics.ScreenEffects for (var node = _effects.First; node != null; node = node.Next) { if (!node.Value.IsLocal) - node.Value.Effect.OnRender(delta); + node.Value.Effect.OnRender(delta, _spriteBatch); } }