glfw のタイマー
glfw3 では glfwGetTime を使って自作する必要があるようです。
以下 "<---" で示した部分がタイマーに関する部分。
[メインループ]の中の通常の描画の部分を[if 節]で囲む。 lastTime の更新は[if 節]のなかで行う。
int main(int argc, char** argv) { // 初期設定など .... // タイマーのセッティング double FPS = 30.0 // <--- 一秒間に更新する回数(30 か 60) double currentTime, lastTime, elapsedTime; // <--- currentTime = lastTime = elapsedTime = 0.0; // <--- glfwSetTime(0.0); // <--- タイマーを初期化する // [メインループ] while( !glfwWindowShouldClose(window) ) { currentTime = glfwGetTime(); // <--- elapsedTime = currentTime - lastTime; // <--- // [if 節] if (elapsedTime >= 1.0/FPS) { // 通常の描画 ... lastTime = glfwGetTime(); // <--- } } glfwDestroyWindow(window); glfwTerminate(); exit( EXIT_SUCCESS ); return(0); }
ただし他にうまい方法があるのかも知れません。