Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
 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);