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

39 lines
1.3 KiB
C#

using SS14.Client.Graphics;
using SS14.Client.Graphics.Render;
using SS14.Client.Graphics.Shader;
using SS14.Client.Interfaces.Resource;
using SS14.Shared.IoC;
using System;
namespace SS14.Client.Player.PostProcessing
{
public class DeathPostProcessingEffect : PostProcessingEffect
{
private readonly GLSLShader _shader;
public DeathPostProcessingEffect(float duration): base(duration)
{
_shader = IoCManager.Resolve<IResourceManager>().GetShader("deathshader");
}
public override void ProcessImage(RenderImage image)
{
var OstafLikesTheCock = new RenderImage("CockLoverOstaf", image.Height, image.Height);
OstafLikesTheCock.BeginDrawing();
image.Blit(0, 0, image.Height, image.Height, SFML.Graphics.Color.White, BlitterSizeMode.Crop);
OstafLikesTheCock.EndDrawing();
image.BeginDrawing();
_shader.setAsCurrentShader();
_shader.SetParameter("SceneTexture", OstafLikesTheCock);
_shader.setDuration((Math.Abs(_duration)));
OstafLikesTheCock.Blit(0, 0, image.Height, image.Height, SFML.Graphics.Color.White, BlitterSizeMode.Crop);
image.EndDrawing();
_shader.ResetCurrentShader();
OstafLikesTheCock.Dispose();
}
}
}