GLfloat vertices[] = { -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, 1.0f, -1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0f, -1.0f, 1.0f, 1.0f, -1.0f, -1.0f, 1.0f, -1.0f, }; glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); glClearDepth( 1.0f ); glEnable( GL_DEPTH_TEST ); glDepthFunc( GL_LEQUAL ); glViewport( 0, 0, static_cast(width), static_cast(height) ); // 640 x 480 glUseProgram(prog) // already successfully compiled and linked glUniform1f(glGetAttribLocation(prog, "height"), 2.0f); glUniform1f(glGetAttribLocation(prog, "aspect"), 4.0f/3.0f); glUniform1f(glGetAttribLocation(prog, "zNear"), -2.0f); glUniform1f(glGetAttribLocation(prog, "zFar"), 2.0f); glGenBuffers(1, &vbo); glBindBuffer(GL_ARRAY_BUFFER, vbo); glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW); glGenVertexArrays(1, &vao); glBindVertexArray(vao); GLuint name = glGetAttribLocation(prog, "position"); glEnableVertexAttribArray(name); glVertexAttribPointer(name, 3, GL_FLOAT, GL_FALSE, 0, reinterpret_cast(0));