//in the shader
#version 420 core
layout(location = 5) in unsigned int inByte;
out vec3 colour;
void main()
{
if(inByte==0)
{
colour = vec3(1,0,0);
gl_Position = vec4(-0.5, -0.5, 0 ,1.0);
}
else if(inByte==1)
{
colour = vec3(0,1,0);
gl_Position = vec4(0.5, -0.5, 0 ,1.0);
}
else
{
colour = vec3(0,0,1);
gl_Position = vec4(0.0, 0.5, 0 ,1.0);
}
}
...
//in the C program
glBindVertexArray(vao);
glBindBuffer(GL_ARRAY_BUFFER, ab_byte);
glVertexAttribIPointer(5, 1, GL_UNSIGNED_BYTE, sizeof(unsigned char), BUFFER_OFFSET(0));
glEnableVertexAttribArray(5);