public override ShaderVariableI Variable(string name) { // Try to find existing variable foreach (var variable in variables) { if (variable.Name == name) { return(variable); } } // Otherwise add a variable instance for (int i = 0; i != program.UniformCount; ++i) { if (program.GetUniformName(i) == name) { var newVariable = new ShaderVariable(program, i, name); variables.Add(newVariable); return(newVariable); } } Debug.ThrowError("Shader", string.Format("Shader variable '{0}' does not exist", name)); return(null); }
public override ShaderVariableI Variable(string name) { // Try to find existing variable foreach (var variable in variables) { if (variable.Name == name) return variable; } // Otherwise add a variable instance for (int i = 0; i != program.UniformCount; ++i) { if (program.GetUniformName(i) == name) { var newVariable = new ShaderVariable(program, i, name); variables.Add(newVariable); return newVariable; } } Debug.ThrowError("Shader", string.Format("Shader variable '{0}' does not exist", name)); return null; }