Есть ли способ удалить ограничение 60 кадров в секунду в GLFW?
Самый простой способ - использовать одиночную буферизацию вместо двойной буферизации.Так как при одиночной буферизации всегда используется один и тот же буфер, нет замены буфера и нет "vsync".
Используйте glfwWindowHint
для отключения двойной буферизации:
glfwWindowHint( GLFW_DOUBLEBUFFER, GL_FALSE );
GLFWwindow *wnd = glfwCreateWindow( w, h, "OGL window", nullptr, nullptr );
Обратите внимание, что когда вы используете одиночную буферизацию, вы должны объяснить принудительное выполнение команд GL с помощью (glFlush
) вместо замены буфера (glfwSwapBuffers
).
Другая возможность - установить количество экранных обновлений, ожидающих от момента вызова glfwSwapBuffers
до замены буферов на 0. Это можно сделать с помощью * 1025.*glfwSwapInterval
, после создания текущего контекста OpenGL (glfwMakeContextCurrent
):
glfwMakeContextCurrent( wnd );
glfwSwapInterval( 0 );
Но учтите, работает это решение или нет, может зависеть от аппаратного обеспеченияи водитель.