//--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Methods //--------------------------------------------------------------- /// <summary> /// Binds a shader constant to the light. /// </summary> /// <param name="constant">The constant to bind to the light.</param> public override void Bind(IShaderConstant constant) { base.Bind(constant); if (constant.Children.Contains("Position")) { constant.Children["Position"].UpdateHandler += new UpdateHandler(UpdateObjectSpacePosition); } }
//--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Initialisation //--------------------------------------------------------------- //--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Methods //--------------------------------------------------------------- /// <summary> /// Binds a shader constant to the light. /// </summary> /// <param name="constant">The constant to bind to the light.</param> public virtual void Bind(IShaderConstant constant) { if (constant.Children.Contains("Ambient")) { constant.Children["Ambient"].Set(AmbientVector); } if (constant.Children.Contains("Diffuse")) { constant.Children["Diffuse"].Set(DiffuseVector); } }
//--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Initialisation //--------------------------------------------------------------- //--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Methods //--------------------------------------------------------------- /// <summary> /// Fills a shaderConstant with the material. /// </summary> /// <param name="constant">The constant that takes the material.</param> public virtual void Fill(IShaderConstant constant) { if (constant.Children.Contains("Ambient")) { constant.Children["Ambient"].Set(AmbientVector); } if (constant.Children.Contains("Diffuse")) { constant.Children["Diffuse"].Set(DiffuseVector); } if (constant.Children.Contains("Emissive")) { constant.Children["Emissive"].Set(EmissiveVector); } if (constant.Children.Contains("Specular")) { constant.Children["Specular"].Set(SpecularVector); } if (constant.Children.Contains("SpecularSharpness")) { constant.Children["SpecularSharpness"].Set(SpecularSharpness); } }
/// <summary> /// Adds a new shader constant to the list. /// </summary> /// <param name="constant">The ShaderConstant object to add.</param> public void Add(IShaderConstant constant) { table.Add(constant.Name, constant); }
//--------------------------------------------------------------- #endregion //--------------------------------------------------------------- //--------------------------------------------------------------- #region Initialisation //--------------------------------------------------------------- /// <summary> /// Creates a new ShaderConstantWrapper. /// </summary> /// <param name="constant">The constant to wrap.</param> /// <param name="mappingObject">The object that is used for mapping it to the constant table on the cpu or to a native shader parameter.</param> public ShaderConstantWrapper(IShaderConstant constant, object mappingObject) { this.internalConstant = constant; this.mappingObject = mappingObject; }