protected override void ChooseEffect(GraphicsDevice graphicsDevice) { // TODO: Free previous descriptor sets and layouts? // Looks like the effect changed, it needs a recompilation var compilerParameters = new CompilerParameters { EffectParameters = EffectCompilerParameters }; foreach (var effectParameterKey in Parameters.ParameterKeyInfos) { if (effectParameterKey.Key.Type == ParameterKeyType.Permutation) { // TODO GRAPHICS REFACTOR avoid direct access, esp. since permutation values might be separated from Objects at some point compilerParameters.SetObject(effectParameterKey.Key, Parameters.ObjectValues[effectParameterKey.BindingSlot]); } } effect = effectSystem.LoadEffect(effectName, compilerParameters).WaitForResult(); }
/// <summary> /// Creates an effect. /// </summary> /// <param name="effectSystem">The effect system.</param> /// <param name="effectName">Name of the effect.</param> /// <returns>A new instance of an effect.</returns> public static TaskOrResult <Effect> LoadEffect(this EffectSystem effectSystem, string effectName) { var compilerParameters = new CompilerParameters(); return(effectSystem.LoadEffect(effectName, compilerParameters)); }