Hi
I currently trying to rewrite a application from opengl 3.2 (compabilty)to 4.0 (forward-compatible).
I’ve created a vertex array object containing an vbo with vertecies and another vbo with indices:
glGenVertexArrays(1,&vao);
glBindVertexArray(vao);
glGenBuffers(2,&vbos);
glBindBuffer(GL_ARRAY_BUFFER,vbos);
glBufferData(GL_ARRAY_BUFFER,sizeof(Vertex)*w*h,(const void*)vertices,GL_DYNAMIC_DRAW);
glVertexAttribPointer(in_pos_loc,4,GL_FLOAT,GL_FALSE,sizeof(Vertex),(void*)0);getAllError(__FILE__,__LINE__);
glEnableVertexAttribArray(in_pos_loc);
glVertexAttribPointer(normal_loc,3,GL_FLOAT,GL_FALSE,sizeof(Vertex),(void*)16);getAllError(__FILE__,__LINE__);
glEnableVertexAttribArray(normal_loc);
glVertexAttribPointer(tex_coord_loc,2,GL_FLOAT,GL_FALSE,sizeof(Vertex),(void*)28);getAllError(__FILE__,__LINE__);
glEnableVertexAttribArray(tex_coord_loc);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,vbos+1);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,sizeof(unsigned short)*(w-1)*(h-1)*2*3,indices,GL_STATIC_DRAW);
and are trying to draw them with:
glBindVertexArray(vao);
glDrawElements(GL_TRIANGLES,(w-1)*(h-1)*6, GL_UNSIGNED_BYTE, 0);
glBindVertexArray(0);
but all I get is a black screen.
my vert and frag shaders:
#version 150 core
precision highp float;
out vec4 out_Color;
in vec3 out_normal;
in vec2 out_tex_coord;
void main(){
out_Color = vec4(1.0,0.0,1.0,1.0);
}
#version 150 core
precision highp float;
out vec4 out_Color;
in vec3 out_normal;
in vec2 out_tex_coord;
void main(){
gl_FragColor = vec4(1.0,0.0,1.0,1.0);
}
uniform/attrib locations are fetch with glGetUniformLocation and glGetAttribLocation.
But when I render the screen stays black.
If I change from GL_TRIANGLES to GL_POINTS i get a single pixel/dot in the middle of viewport, the rest stays black