public int AttributeLocation(string attribute_name) { int location = gl.GetAttribLocationString(ProgramId, attribute_name); if (location < 0) { throw new InvalidOperationException($"No attribute {attribute_name}"); } return(location); }