Через некоторое время окно glfw3 зависает - PullRequest
0 голосов
/ 14 мая 2019

У меня проблема с некоторыми базовыми кодами glfw и opengl, которые не работают должным образом.Окно полностью зависает только через несколько секунд, а иногда и намного больше.

Я прокомментировал почти весь мой код и осталось всего несколько строк.

функция инициализации:

int Renderer::init(std::string scene_file_ , RenderOptions options_)
{

    if(!glfwInit()){
        std::cout<<"Problem with GLFW"<< std::endl;
        glfwTerminate();
        return -1;
    }

    window = glfwCreateWindow(640,480, "raytracer", NULL, NULL);

    if(!window){
        std::cout << "Problem with window " << std::endl;
        glfwTerminate();
        return -1;
    }

    glfwMakeContextCurrent(window);


    glfwSwapInterval(2);
    glewInit();
}

и цикл рисования:

void Renderer::displayScene()
{


    GLCall(glEnable(GL_DEPTH_TEST));
    int width, height;

    glfwGetFramebufferSize(window, &width, &height);

    GLCall(glViewport(0,0,width, height));

    GLCall(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
    GLCall(glClearColor(0.2,0.5,0.2,1.0));      

    printf("drawing %d\n", temp_inc_test++);

    glfwPollEvents();
    glfwSwapBuffers(renderer.window);
}

Окно запускается нормально, фон имеет правильный цвет, а затемпо истечении ~ 3 секунд и ~ 5 минут программа останавливается, окно перестает отвечать на запросы.Я почти уверен, что выполнил какой-то код точно так же, и он работал прекрасно в течение нескольких часов.Я не понимаю.

Что-нибудь очевидное?Я забыл упомянуть: я на Rasberry PI на Linux Jessie

...