/// <inheritdoc/> protected override void OnInitializeBindings(IGraphicsService graphicsService, IDictionary <string, object> opaqueData) { float alpha = GetOpaqueDatum(opaqueData, "Alpha", 1.0f); Vector3 diffuse = GetOpaqueDatum(opaqueData, "DiffuseColor", new Vector3(1, 1, 1)); ParameterBindings.Add( new ConstParameterBinding <Vector4>( Effect, Effect.Parameters["DiffuseColor"], new Vector4(diffuse.X * alpha, diffuse.Y * alpha, diffuse.Z * alpha, alpha))); // Pre-multiplied alpha. ParameterBindings.Add( new ConstParameterBinding <Texture>( Effect, Effect.Parameters["Texture"], GetOpaqueDatum(opaqueData, "Texture", (Texture)null))); ParameterBindings.Add( new ConstParameterBinding <Texture>( Effect, Effect.Parameters["Texture2"], GetOpaqueDatum(opaqueData, "Texture2", (Texture)null))); VertexColorEnabled = GetOpaqueDatum(opaqueData, "VertexColorEnabled", false); base.OnInitializeBindings(graphicsService, opaqueData); }
public DelegateParameterArrayBinding <T> Set <T>(EffectParameter parameter, Action <DelegateParameterArrayBinding <T>, RenderContext, T[]> computeParameter) { DelegateParameterArrayBinding <T> binding; int index = ParameterBindings.IndexOf(parameter); if (index >= 0) { // An effect parameter binding already exists. binding = ParameterBindings[index] as DelegateParameterArrayBinding <T>; if (binding != null) { // Update existing binding. binding.ComputeParameter = computeParameter; } else { // Replace existing binding. binding = new DelegateParameterArrayBinding <T>(Effect, parameter, computeParameter); ParameterBindings[index] = binding; } } else { // Create a new binding. binding = new DelegateParameterArrayBinding <T>(Effect, parameter, computeParameter); CheckHint(binding); ParameterBindings.Add(binding); } return(binding); }
/// <summary> /// Sets a <see cref="ConstParameterArrayBinding{T}"/> for the specified effect parameter. /// </summary> /// <typeparam name="T"> /// The value type. See <see cref="EffectParameterArrayBinding{T}"/>. /// </typeparam> /// <param name="parameter"> /// The effect parameter to which the binding is applied. /// </param> /// <param name="values">The array of values.</param> /// <returns>The <see cref="ConstParameterArrayBinding{T}"/> that has been set.</returns> /// <remarks> /// If an appropriate effect parameter binding for <paramref name="parameter"/> already exists, /// then the existing binding is updated. /// </remarks> /// <exception cref="ArgumentNullException"> /// <paramref name="parameter"/> is <see langword="null"/>. /// </exception> /// <exception cref="EffectBindingException"> /// The value type <typeparamref name="T"/> is not supported. /// </exception> public ConstParameterArrayBinding <T> Set <T>(EffectParameter parameter, T[] values) { ConstParameterArrayBinding <T> binding; int index = ParameterBindings.IndexOf(parameter); if (index >= 0) { // An effect parameter binding already exists. binding = ParameterBindings[index] as ConstParameterArrayBinding <T>; if (binding != null) { // Update existing binding. binding.Values = values; } else { // Replace existing binding. binding = new ConstParameterArrayBinding <T>(Effect, parameter, values); ParameterBindings[index] = binding; } } else { // Create a new binding. binding = new ConstParameterArrayBinding <T>(Effect, parameter, values); CheckHint(binding); ParameterBindings.Add(binding); } return(binding); }
/// <inheritdoc/> protected override void OnInitializeBindings(IGraphicsService graphicsService, IDictionary <string, object> opaqueData) { float alpha = GetOpaqueDatum(opaqueData, "Alpha", 1.0f); Vector3 diffuse = GetOpaqueDatum(opaqueData, "DiffuseColor", new Vector3(1, 1, 1)); ParameterBindings.Add( new ConstParameterBinding <Vector4>( Effect, Effect.Parameters["DiffuseColor"], new Vector4(diffuse.X * alpha, diffuse.Y * alpha, diffuse.Z * alpha, alpha))); // Pre-multiplied alpha. ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["EmissiveColor"], GetOpaqueDatum(opaqueData, "EmissiveColor", new Vector3(0, 0, 0)))); ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["EnvironmentMapSpecular"], GetOpaqueDatum(opaqueData, "EnvironmentMapSpecular", new Vector3(0, 0, 0)))); ParameterBindings.Add( new ConstParameterBinding <float>( Effect, Effect.Parameters["EnvironmentMapAmount"], GetOpaqueDatum(opaqueData, "EnvironmentMapAmount", 1.0f))); ParameterBindings.Add( new ConstParameterBinding <float>( Effect, Effect.Parameters["FresnelFactor"], GetOpaqueDatum(opaqueData, "FresnelFactor", 1.0f))); var texture = GetOpaqueDatum(opaqueData, "Texture", (Texture)null); ParameterBindings.Add( new ConstParameterBinding <Texture>( Effect, Effect.Parameters["Texture"], texture)); ParameterBindings.Add( new ConstParameterBinding <TextureCube>( Effect, Effect.Parameters["EnvironmentMap"], GetOpaqueDatum(opaqueData, "EnvironmentMap", (TextureCube)null))); base.OnInitializeBindings(graphicsService, opaqueData); }
private Exception ExecuteCommandTextSpecialErrorHandling(OleDbHResult hr, Exception e) { if (((OleDbHResult.DB_E_ERRORSOCCURRED == hr) || (OleDbHResult.DB_E_BADBINDINFO == hr)) && (null != _dbBindings)) { // // this code exist to try for a better user error message by post-morten detection // of invalid parameter types being passed to a provider that doesn't understand // the user specified parameter OleDbType Debug.Assert(null != e, "missing inner exception"); StringBuilder builder = new StringBuilder(); ParameterBindings.ParameterStatus(builder); e = ODB.CommandParameterStatus(builder.ToString(), e); } return(e); }
/// <inheritdoc/> protected override void OnInitializeBindings(IGraphicsService graphicsService, IDictionary <string, object> opaqueData) { // We need a special binding for DiffuseColor because when lighting is enabled, the // DiffuseColor parameter should contain diffuse + emissive! float alpha = GetOpaqueDatum(opaqueData, "Alpha", 1.0f); Vector3 diffuse = GetOpaqueDatum(opaqueData, "DiffuseColor", new Vector3(1, 1, 1)); ParameterBindings.Add( new ConstParameterBinding <Vector4>( Effect, Effect.Parameters["DiffuseColor"], new Vector4(diffuse.X * alpha, diffuse.Y * alpha, diffuse.Z * alpha, alpha))); // Pre-multiplied alpha. ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["EmissiveColor"], GetOpaqueDatum(opaqueData, "EmissiveColor", new Vector3(0, 0, 0)))); ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["SpecularColor"], GetOpaqueDatum(opaqueData, "SpecularColor", new Vector3(1, 1, 1)))); ParameterBindings.Add( new ConstParameterBinding <float>( Effect, Effect.Parameters["SpecularPower"], GetOpaqueDatum(opaqueData, "SpecularPower", 16.0f))); var texture = GetOpaqueDatum(opaqueData, "Texture", (Texture)null); ParameterBindings.Add( new ConstParameterBinding <Texture>( Effect, Effect.Parameters["Texture"], texture)); TextureEnabled = (texture != null); VertexColorEnabled = GetOpaqueDatum(opaqueData, "VertexColorEnabled", false); base.OnInitializeBindings(graphicsService, opaqueData); }
/// <summary> /// Creates a <see cref="MethodCallExpression" /> using the given method. /// </summary> /// <param name="bindingInfo"> Information needed to create the expression. </param> /// <returns> The expression tree. </returns> public override Expression CreateConstructorExpression(ParameterBindingInfo bindingInfo) { var arguments = ParameterBindings.Select(b => b.BindToParameter(bindingInfo)); Expression expression = _factoryInstance == null ? Expression.Call( _factoryMethod, arguments) : Expression.Call( Expression.Constant(_factoryInstance), _factoryMethod, arguments); if (_factoryMethod.ReturnType != RuntimeType) { expression = Expression.Convert(expression, RuntimeType); } return(expression); }
/// <inheritdoc/> protected override void OnInitializeBindings(IGraphicsService graphicsService, IDictionary <string, object> opaqueData) { float alpha = GetOpaqueDatum(opaqueData, "Alpha", 1.0f); Vector3 diffuse = GetOpaqueDatum(opaqueData, "DiffuseColor", new Vector3(1, 1, 1)); ParameterBindings.Add( new ConstParameterBinding <Vector4>( Effect, Effect.Parameters["DiffuseColor"], new Vector4(diffuse.X * alpha, diffuse.Y * alpha, diffuse.Z * alpha, alpha))); // Pre-multiplied alpha. ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["EmissiveColor"], GetOpaqueDatum(opaqueData, "EmissiveColor", new Vector3(0, 0, 0)))); ParameterBindings.Add( new ConstParameterBinding <Vector3>( Effect, Effect.Parameters["SpecularColor"], GetOpaqueDatum(opaqueData, "SpecularColor", new Vector3(1, 1, 1)))); ParameterBindings.Add( new ConstParameterBinding <float>( Effect, Effect.Parameters["SpecularPower"], GetOpaqueDatum(opaqueData, "SpecularPower", 16.0f))); ParameterBindings.Add( new ConstParameterBinding <Texture>( Effect, Effect.Parameters["Texture"], GetOpaqueDatum(opaqueData, "Texture", (Texture)null))); WeightsPerVertex = GetOpaqueDatum(opaqueData, "WeightsPerVertex", 4); base.OnInitializeBindings(graphicsService, opaqueData); }
/// <summary> /// Creates a <see cref="NewExpression" /> that represents creating an entity instance using the given /// constructor. /// </summary> /// <param name="bindingInfo"> Information needed to create the expression. </param> /// <returns> The expression tree. </returns> public override Expression CreateConstructorExpression(ParameterBindingInfo bindingInfo) => Expression.New( Constructor, ParameterBindings.Select(b => b.BindToParameter(bindingInfo)));
public ParametersViewModel(ParameterBindings bindings) { this.Parameters = bindings.Parameters.Where(p => p is RangedDoubleParameter).Select(p => new RangedDoubleParameterVM((RangedDoubleParameter)p, bindings)).ToList(); }
public RangeViewModel(ParameterBindings bindings, RangedDoubleParameter parameter) { parameterBindings = bindings; this.parameter = parameter; this.Value = this.parameterBindings.Read(this.parameter); }
public BindingsViewModel(ParameterBindings bindings) { this.bindings = bindings; }
public void setBinding(ParameterBindings b) { Bindings = b; }
public RangedDoubleParameterVM(RangedDoubleParameter parameter, ParameterBindings bindings) { this.parameter = parameter; this.bindings = bindings; }
public RangedParamViewModel(ParameterBindings bindings, RangedDoubleParameter param) { this.param = param; this.bindings = bindings; }