Черное окно OpenGL glfw

У меня небольшая проблема с 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;

}

Этот код компилируется, но когда я его запускаю, у меня появляется только белое окно. Заголовок окна правильный, но внутри все белое... Я пытаюсь использовать glClearColor вот так

while (!glfwWindowShouldClose(window)) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glClearColor(1, 1, 0, 0);

но мое окно все еще белое... Я использую визуальную студию 2015.

Как сделать черное окно?

Изменить:

Я забыл добавить это: glfwMakeContextCurrent(window);


person Nicolas Bruno    schedule 09.02.2016    source источник
comment
Замените glClearColor(1.0f, 1.0f, 1.0f, 1.0f); на glClearColor(0.0f, 0.0f, 0.0f, 1.0f);, может быть?   -  person HolyBlackCat    schedule 09.02.2016
comment
Можете поставить это в ответ и закрыть тему. @Скарвим   -  person Nejc Galof    schedule 15.02.2016


Ответы (1)


Для будущих посетителей я отправляю редактирование в качестве официального ответа.

Здесь не хватает того, чтобы установить только что созданное окно в качестве текущего контекста OpenGL, вызвав glfwMakeContextCurrent(window);

Интересно, что комментарии в коде говорят, что вы делаете это

// make the window's current context

Но тогда вы не вызываете описанный выше метод, а сразу после этого устанавливаете цвет фона. Если вы добавите вышеуказанный вызов метода после этого комментария и до того, как установите цвет фона, тогда, когда я запускаю ваш код, он работает нормально.

person CodingLumis    schedule 16.11.2016