Exemple #1
0
        public IEffect GetEffect(string filename)
        {
            if (!_effects.ContainsKey(filename))
            {
                _effects[filename] = LoadEffect(filename);
            }

            var wrappedEffect = new WrappedEffect(this, _effects[filename], filename);

            _wrappedEffects.Add(wrappedEffect);

            return wrappedEffect;
        }
Exemple #2
0
        public void Reload(WrappedEffect wrappedEffect)
        {
            Effect newEffect;

            try
            {
                newEffect = LoadEffect(wrappedEffect.Filename);
            }
            catch (SlimDX.CompilationException compilationException)
            {
                Logger.WriteException(compilationException);
                Logger.Write("Shader reload was aborted.", LoggerLevel.Warning);
                return;
            }

            _effects.Remove(wrappedEffect.Filename);
            wrappedEffect.Effect.Dispose();

            _effects.Add(wrappedEffect.Filename, newEffect);

            wrappedEffect.Effect = newEffect;
        }