public bool SetUniform(string varNameInShader, samplerValue[] value) { bool gotUniform = false; bool updated = false; if (value.Length <= 0) { return updated; } foreach (var item in this.uniformVariables) { if (item.VarName == varNameInShader) { (item as UniformSamplerArray).Value = value; updated = true; gotUniform = true; break; } } if (!gotUniform) { int location = ShaderProgram.GetUniformLocation(varNameInShader); if (location < 0) { throw new Exception(string.Format( "uniform variable [{0}] not exists!", varNameInShader)); } var variable = GetVariableArray(value, varNameInShader) as UniformSamplerArray; variable.Value = value; this.uniformVariables.Add(variable); updated = true; } return updated; }
/// <summary> /// /// </summary> /// <param name="varNameInShader"></param> /// <param name="value"></param> /// <returns></returns> public bool SetUniform(string varNameInShader, samplerValue[] value) { //if ((!this.Initialized) && (!this.Initializing)) { this.Initialize(); } bool gotUniform = false; bool updated = false; if (value.Length <= 0) { return updated; } foreach (UniformVariable item in this.uniformVariables) { if (item.VarName == varNameInShader) { (item as UniformSamplerArray).Value = new NoisyArray<samplerValue>(value); updated = true; gotUniform = true; break; } } if (!gotUniform) { //int location = Program.GetUniformLocation(varNameInShader); //if (location < 0) { //throw new Exception(string.Format( //"niform variable [{0}] not exists! Remember to invoke RendererBase.Initialize(); before this method.", varNameInShader)); } var variable = GetVariableArray(value, varNameInShader) as UniformSamplerArray; variable.Value = new NoisyArray<samplerValue>(value); this.uniformVariables.Add(variable); updated = true; } return updated; }
public bool GetUniformSamplerArrayValue(string varNameInShader, out samplerValue[] value) { value = null; bool gotUniform = false; foreach (var item in this.uniformVariables) { if (item.VarName == varNameInShader) { value = (item as UniformSamplerArray).Value; gotUniform = true; break; } } return gotUniform; }
/// <summary> /// /// </summary> /// <param name="varNameInShader"></param> /// <param name="value"></param> /// <returns></returns> public bool GetUniformSamplerArrayValue(string varNameInShader, out samplerValue[] value) { //if ((!this.Initialized) && (!this.Initializing)) { this.Initialize(); } value = null; bool gotUniform = false; foreach (UniformVariable item in this.uniformVariables) { if (item.VarName == varNameInShader) { value = (item as UniformSamplerArray).Value.Array; gotUniform = true; break; } } return gotUniform; }