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; }
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; }