struct Vertex
{
.....
glm::vec3 position;
glm::vec4 color;
};
Vertex object[] = {
Vertex(glm::vec3( 0.5f, 0.5f, 0.0f), glm::vec4(1.0f, 0.0f, 0.0f,1.0f)),
Vertex(glm::vec3( 0.5f, -0.5f, 0.0f), glm::vec4(1.0f, 0.0f, 0.0f,1.0f)),
Vertex(glm::vec3( -0.5f, -0.5f, 0.0f), glm::vec4(1.0f, 0.0f, 0.0f,1.0f))
};
//Init
GLuint vao, buffer;
glCreateVertexArrays(1,&vao);
glCreateBuffers(1,&buffer);
glNamedBufferStorage(buffer, sizeof(object), &object, GL_STATIC_DRAW);
//position
glVertexArrayAttribBinding(vao, 0, 0);
glVertexArrayAttribFormat(vao,0,3,GL_FLOAT,GL_FALSE,offsetof(Vertex,position));
glEnableVertexAttribArray(0);
//color
glVertexArrayAttribBinding(vao, 1, 0);
glVertexArrayAttribFormat(vao,1,4,GL_FLOAT,GL_FALSE,offsetof(Vertex,color));
glEnableVertexAttribArray(1);
glVertexArrayVertexBuffer(vao,0,buffer,0,0);
//Draw
glBindVertexArray(vao);
glDrawArrays(GL_TRIANGLES,0,3);
What I do wrong?