protected virtual void CloneCore(MaterialInstance source) { Material = source.Material; // Clone effect parameter bindings for all render passes. _bindingsPerPass = new Dictionary<string, EffectBinding>(source.Count); foreach (var effectBindingPerPass in source) { string pass = effectBindingPerPass.Key; var effectBinding = effectBindingPerPass.Value; _bindingsPerPass.Add(pass, effectBinding.Clone()); } }
protected virtual void CloneCore(MaterialInstance source) { Material = source.Material; // Clone effect parameter bindings for all render passes. _bindingsPerPass = new Dictionary <string, EffectBinding>(source.Count); foreach (var effectBindingPerPass in source) { string pass = effectBindingPerPass.Key; var effectBinding = effectBindingPerPass.Value; _bindingsPerPass.Add(pass, effectBinding.Clone()); } }
/// <summary> /// Initializes a new instance of the <see cref="TerrainClearLayer"/> class. /// </summary> /// <param name="graphicService">The graphic service.</param> /// <exception cref="ArgumentNullException"> /// <paramref name="graphicService"/> is <see langword="null"/>. /// </exception> public TerrainClearLayer(IGraphicsService graphicService) { if (graphicService == null) throw new ArgumentNullException("graphicService"); var effect = graphicService.Content.Load<Effect>("DigitalRune/Terrain/TerrainClearLayer"); var effectBinding = new EffectBinding(graphicService, effect, null, EffectParameterHint.Material); Material = new Material { { "Base", effectBinding }, { "Detail", effectBinding } }; MaterialInstance = new MaterialInstance(Material); }