Opengl 在Windows 7 64位上调用glBegin()后无效

Opengl 在Windows 7 64位上调用glBegin()后无效,opengl,glfw,Opengl,Glfw,我是OpenGL的初学者。在Windows 7 64位上配置开发环境后,使用vs2012,当我从gflw网站运行演示程序时没有效果 这是密码 void runRenderLoop(GLFWwindow *window){ glfwMakeContextCurrent(window); glfwSwapInterval(1); glfwSetKeyCallback(window,keyCallback); while (!glfwWindowShouldClose(window)) {

我是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();
void runRenderLoop(GLFWwindow*window){
glfwMakeContextCurrent(窗口);
glfwSwapInterval(1);
glfwSetKeyCallback(窗口,keyCallback);
而(!glfwWindowShouldClose(窗口)){
整数宽度;
内部高度;
glfwGetFramebufferSize(窗口、宽度和高度);
glViewport(0,0,宽度,高度);
glClear(GLU颜色缓冲位);
GLfloat比率=静态铸件(宽度)/静态铸件(高度);
glMatrixMode(GL_投影);
glLoadIdentity();
格洛托(-ratio,ratio,-1.f,1.f,1.f,-1.f);
glMatrixMode(GLU模型视图);
glLoadIdentity();
glRotatef((float)glfwGetTime()*50.f,0.f,0.f,1.f);
glBegin(GL_三角形);
GL3F(1.f,0.f,0.f);
glVertex3f(-0.6f,-0.4f,0.f);
GL3F(0.f,1.f,0.f);
glVertex3f(0.6f,-0.4f,0.f);
GL3F(0.f,0.f,1.f);
glVertex3f(0.f,0.6f,0.f);
格伦德();
glfwSwapBuffers(窗口);
glfwPollEvents();
}
glfwMakeContextCurrent(空);
GLFW窗口(窗口);
glfwTerminate();
}

奇怪的是,我可以看到窗口创建正确,而且当我在glBegin()和glEnd()之间附加一个断点时,它会正确触发。此外,glfw可以完美地处理我的键回调。然而,窗户一片漆黑,什么也没有。我真的很困惑

我当前的opengl版本是3.2

我当前的opengl版本是3.2


如果这是一个核心配置文件上下文(不兼容),那么
glBegin
/
glEnd
和朋友是无效的:他们已经从OpenGL-3核心和更高版本中删除。

OpenGL 3.2核心?如果是,请参阅是否可以使用
glGetError
检查是否显示任何错误?从3.2 core profile开始删除固定功能管道。最好使用vao/vbo和着色器。您使用的是哪种语言的opengl?下面是C/C的教程++