OpenGL glfw黑色窗口

OpenGL glfw黑色窗口,opengl,glfw,glew,Opengl,Glfw,Glew,我对glfw有一个小问题 我的代码非常简单,我只想创建一个空窗口 #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream> int main(void) { // initialise the windows GLFWwindow *window; if (!glfwInit()) { return -1; } // create a windows window

我对glfw有一个小问题

我的代码非常简单,我只想创建一个空窗口

#include <GL/glew.h>
#include <GLFW/glfw3.h>
#include <iostream>

int main(void) {


// initialise the windows
GLFWwindow *window;

if (!glfwInit()) {

    return -1;
}

// create  a windows

window = glfwCreateWindow(640, 480, "Test", NULL, NULL);
if (!window) {
    fprintf(stderr, "Failed to initialize GLFW\n");
    glfwTerminate();
    return -1;
}


// make the window's current context
glClearColor(1.0f, 1.0f, 1.0f, 1.0f);
// loop until the window close

while (!glfwWindowShouldClose(window)) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    // swap back and front buffers

    glfwSwapBuffers(window);


    // poll the events

    glfwPollEvents();
}

std::cout << "finished ";
glfwTerminate();

return 0;
但我的窗户仍然是白色的。。。。 我使用visual studio 2015

如何得到一个黑色的窗口

编辑:

我忘了添加以下内容:
glfwMakeContextCurrent(窗口)

对于未来的访问者,我将发布编辑作为正式答案

这里缺少的是通过调用
glfwMakeContextCurrent(window)将新创建的窗口设置为当前OpenGL上下文

有趣的是,代码中的注释说您正在这样做

//创建窗口的当前上下文


但是,您不调用上面的方法,而是在之后立即设置背景颜色。如果您在该注释之后和设置背景颜色之前添加上述方法调用,那么当我运行代码时,它工作正常。

对于未来的访问者,我将发布编辑作为正式答案

这里缺少的是通过调用
glfwMakeContextCurrent(window)将新创建的窗口设置为当前OpenGL上下文

有趣的是,代码中的注释说您正在这样做

//创建窗口的当前上下文


但是,您不调用上面的方法,而是在之后立即设置背景颜色。如果您在该注释之后和设置背景颜色之前添加上述方法调用,那么当我运行代码时,它可以正常工作。

Replace
glClearColor(1.0f、1.0f、1.0f、1.0f)带有
glClearColor(0.0f、0.0f、0.0f、1.0f)也许?你可以把这个放在答案中,然后关闭主题@SkarwimReplace
glClearColor(1.0f、1.0f、1.0f、1.0f)带有
glClearColor(0.0f、0.0f、0.0f、1.0f)也许?你可以把这个放在答案中,然后关闭主题@斯卡维姆
while (!glfwWindowShouldClose(window)) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(1, 1, 0, 0);