頂點屬性資訊
可以使用 OGL 函式 glGetProgram 和引數 GL_ACTIVE_ATTRIBUTES
和 GL_ACTIVE_ATTRIBUTE_MAX_LENGTH
檢索有關頂點屬性的資訊。
活動著色器屬性的位置可以由 OGL 函式 glGetAttribLocation 通過屬性的索引來確定。
GLuint shaderProg = ...;
std::map< std::string, GLint > attributeLocation;
GLint maxAttribLen, nAttribs;
glGetProgramiv( shaderProg, GL_ACTIVE_ATTRIBUTES, &nAttribs );
glGetProgramiv( shaderProg, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &maxAttribLen
GLint written, size;
GLenum type;
std::vector< GLchar >attrName( maxAttribLen );
for( int attribInx = 0; attribInx < nAttribs; attribInx++ )
{
glGetActiveAttrib( shaderProg, attribInx, maxAttribLen, &written, &size, &type, &attrName[0] );
attributeLocation[attrName] = glGetAttribLocation( shaderProg, attrName.data() );
}