public void LoadContent() { if (Resource.TryGetString(this.GetType().Assembly, "Thundershock.Resources.Effects.PostProcessor.glsl", out var text)) { _ppEffect = ShaderPipeline.CompileShader(_gpu, text); } _brightnessThreshold = _ppEffect.Programs["BloomThreshold"]; _gaussian = _ppEffect.Programs["BloomGaussian"]; _bloom = _ppEffect.Programs["Bloom"]; _shadowmask = _ppEffect.Programs["CRT"]; /* _brightnessThreshold.Parameters["Threshold"].SetValue(_bloomThreshold); * // _gaussian.Parameters["Kernel"].SetValue(_gaussianKernel); * * // _bloom.Parameters["BaseIntensity"].SetValue(_baseIntensity); * // _bloom.Parameters["BloomIntensity"].SetValue(_bloomIntensity); * * // _bloom.Parameters["BloomSaturation"].SetValue(_bloomSaturation); * // _bloom.Parameters["BaseSaturation"].SetValue(_baseSaturation); */ _brightnessThreshold.Parameters["transform"].SetValue(_matrix); _gaussian.Parameters["transform"].SetValue(_matrix); _bloom.Parameters["transform"].SetValue(_matrix); _shadowmask.Parameters["transform"].SetValue(_matrix); }
public void Begin(IEffect effect = null) { ThrowIfNotEnded(); if (effect != null) { _program = effect.Programs.First(); } else { _program = _defaultEffect.Programs.First(); } _program.Apply(); _gpu.PrepareRender(); _isRendering = true; }
public void UnloadContent() { // shaders // _bloom.Dispose(); // _shadowmask.Dispose(); // _glitch.Dispose(); // effect buffers _intermediate.Dispose(); _effectBuffer1.Dispose(); _effectBuffer2.Dispose(); // null _bloom = null; _shadowmask = null; _glitch = null; _intermediate = null; _effectBuffer1 = null; _effectBuffer2 = null; }
public EffectParameterList(GraphicsProcessor gpu, Effect.EffectProgram program) { _gpu = gpu ?? throw new ArgumentNullException(nameof(gpu)); _program = program ?? throw new ArgumentNullException(nameof(program)); }
public abstract EffectParameter GetEffectParameter(Effect.EffectProgram program, string name);