Files
RobustToolbox/SS14.Client/Player/PostProcessing/BlurPostProcessingEffect.cs
2017-05-20 22:26:34 +02:00

33 lines
998 B
C#

using SFML.System;
using SS14.Client.Graphics.Render;
using SS14.Client.Interfaces.Resource;
using SS14.Client.Helpers;
using SS14.Shared.IoC;
using System;
namespace SS14.Client.Player.PostProcessing
{
public class BlurPostProcessingEffect : PostProcessingEffect
{
private readonly GaussianBlur _gaussianBlur = new GaussianBlur(IoCManager.Resolve<IResourceManager>());
public BlurPostProcessingEffect(float duration)
: base(duration)
{
}
public override void ProcessImage(RenderImage image)
{
if (_duration < 3)
_gaussianBlur.SetRadius(3);
else if (_duration < 10)
_gaussianBlur.SetRadius(5);
else
_gaussianBlur.SetRadius(7);
_gaussianBlur.SetSize(new Vector2f(image.Height, image.Height));
_gaussianBlur.SetAmount(Math.Min(_duration/2, 3f));
_gaussianBlur.PerformGaussianBlur(image);
}
}
}