public CDomainShader(ICDevice device, CShaderReflection reflection) : base(device, reflection) { glShadersToGeometry = new TightConcurrentDictionary<TesselationLayout, TesselationEvaluationShader>(TesselationLayout.Equal); glShadersToPixel = new TightConcurrentDictionary<TesselationLayout, TesselationEvaluationShader>(TesselationLayout.Equal); domain = Reflection.GetTesselationDomain(); }
protected ShaderSpecialParametersHolder(string name, IEnumerable<KeyValuePair<string, string>> specialParameters) { if (name == null) throw new ArgumentNullException("name"); if (specialParameters == null) throw new ArgumentNullException("specialParameters"); this.name = name; this.specialParameters = new TightConcurrentDictionary<string, string>(string.Equals, specialParameters.Count()); foreach (var specialParameter in specialParameters) this.specialParameters.GetOrAdd(specialParameter.Key, specialParameter.Value, (k, v) => v); }