glfw3窗口在随机时间后冻结

时间:2019-05-13 22:02:54

标签: c++ linux opengl raspberry-pi glfw

我遇到一些基本glfw和opengl代码未按预期运行的问题。至少在几秒钟之后,窗户才会完全冻结,甚至更多次。

我已经注释了几乎所有代码,只剩下很少的几行。

init函数是:

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分钟之间,程序停止运行,窗口不再响应。 我很确定我已经运行了一些完全像这样的代码,并且运行了好几个小时。我不明白。

有什么明显的吗? 我忘了提及:我在Linux Jessie上的rasberry PI上

0 个答案:

没有答案