У меня проблема с некоторыми базовыми кодами 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