Getting a list of active vertex input attributes and locations
As covered in the previous recipe, the input variables within a vertex shader are linked to generic vertex attribute indices at the time the program is linked. If we need to specify the relationship, we can either use layout qualifiers within the shader, or we could call glBindAttribLocation
before linking.
However, it may be preferable to let the linker create the mappings automatically and query for them after program linking is complete. In this recipe, we'll see a simple example that prints all the active attributes and their indices.
Getting ready
Start with an OpenGL program that compiles and links a shader pair. You could use the shaders from the previous recipe.
As in previous recipes, we'll assume that the handle to the shader program is stored in a variable named programHandle
.
How to do it...
After linking and enabling the shader program, use the following code to display the list of active attributes:
- Start by querying...