Hey all,
Having some trouble with what should be a simple thing to do...
I've successfully compiled and linked very simple vertex and fragment shaders.
Having trouble seeing my red triangle though.
This stuff all goes fine:
GLint ProgramObject = glCreateProgram();
glAttachShader ( ProgramObject, VertexShaderObject );
glAttachShader ( ProgramObject, PixelShaderObject );
glLinkProgram ( ProgramObject );
glUseProgram ( ProgramObject );
VBO creation:
GLuint vbo;
glGenBuffers ( 1, &vbo );
glBindBuffer ( GL_ARRAY_BUFFER, vbo );
GLfloat pos[] = { -0.5, -0.5, 0.5,
0.5, -0.5, 0.5,
0.0, 0.5, 0.5 };
glBufferData, GL_ARRAY_BUFFER, sizeof(pos), &pos[0], GL_STATIC_DRAW;
// Something is wrong here i am guessing...
int nPositionID = glGetAttribLocation ( ProgramObject, "s_vPosition" );
glEnableVertexAttribArray ( nPositionID );
glVertexAttribPointer ( nPositionID, 3, GL_FLOAT, FALSE, 0, 0 );
/*
glBegin(GL_TRIANGLES);
glVertexAttrib3f ( nPositionID, -0.5, -0.5, 0.0 ); // If i do this, i see my red triangle (correct fragment color).
glVertexAttrib3f ( nPositionID, 0.5, -0.5, 0.0 ); // Makes me believe context is ok.
glVertexAttrib3f ( nPositionID, 0.0, 0.5, 0.0 );
glEnd();
*/
glDrawArrays ( GL_TRIANGLES, 0, 3 );
SwapBuffers ( m_DeviceContext );
vertex shader looks like this:
#version 130\n
in vec4 s_vPosition;
void main()
{
gl_Position = vec4 ( s_vPosition.x, s_vPosition.y, s_vPosition.z, 1.0 );
}
Any ideas?