我是OpenGL的初学者。在Windows 7 64位上配置开发环境后,使用vs2012,当我从gflw网站运行演示程序时没有任何效果。
这里是代码
void runRenderLoop(GLFWwindow *window){
glfwMakeContextCurrent(window);
glfwSwapInterval(1);
glfwSetKeyCallback(window,keyCallback);
while (!glfwWindowShouldClose(window)) {
int width;
int height;
glfwGetFramebufferSize(window,&width,&height);
glViewport(0,0,width,height);
glClear(GL_COLOR_BUFFER_BIT);
GLfloat ratio = static_cast<GLfloat>(width)/static_cast<GLfloat>(height);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glRotatef((float) glfwGetTime() * 50.f, 0.f, 0.f, 1.f);
glBegin(GL_TRIANGLES);
glColor3f(1.f, 0.f, 0.f);
glVertex3f(-0.6f, -0.4f, 0.f);
glColor3f(0.f, 1.f, 0.f);
glVertex3f(0.6f, -0.4f, 0.f);
glColor3f(0.f, 0.f, 1.f);
glVertex3f(0.f, 0.6f, 0.f);
glEnd();
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwMakeContextCurrent(NULL);
glfwDestroyWindow(window);
glfwTerminate();
}
奇怪的是,我可以看到窗口是正确创建的,当我在glBegin()和glEnd()之间附加断点时,它也会正确触发。此外,glfw完美地处理我的keyCallback。然而,窗户是完全黑暗的,没有任何东西。这让我很困惑
我目前的opengl版本是3.2
答案 0 :(得分:1)
我目前的opengl版本是3.2
如果这是核心配置文件上下文(没有兼容性),则glBegin
/ glEnd
和朋友使用无效:它们已从OpenGL-3核心及以后删除。