之間的關係,在讀我發現紅皮書:瞭解glutDisplayFunc和glutPostRedisplay
glutDisplayFunc(無效(* FUNC)(無效))是 第一和最重要的事件 回調函數,你會看到。 每當GLUT確定窗口內容 需要重新顯示 時,由glutDisplayFunc()註冊的回調函數 爲 執行。因此,你應該把 所需的所有例程重新繪製在 的場景中,在顯示回調 函數中。
如果你的程序改變內容的窗口 ,有時你必須 調用glutPostRedisplay(),它 給glutMainLoop()輕推調用 註冊的顯示回調在其 下次有機會
哪些是應該調用glutPostRedisplay()的時間?從這一段,我不明白爲什麼它的功能是需要的。
我不明白爲什麼你不會在你提到的情況下調用glutDisplayFunc而不是glutPostRedisplay,因爲glutPostRedisplay最終會調用glutDisplayFunc。隊列的重要性是什麼?它可以在等待條件時延遲渲染嗎? – andandandand 2010-11-17 17:07:34
@omgzor:在上面的例子中,你可以這樣做。但這不是最好的選擇。你看,最好不要直接調用它,而是把它放在隊列中。例如,如果您想要動畫並直接從displayFunc調用displayFunc,則您的程序將不會響應。因爲你會阻止循環。這就是爲什麼最好發佈事件並讓主循環輪流處理它 – 2010-11-17 17:17:53
@omgzor:它不會延遲渲染。它會延遲其他一切:) – 2010-11-17 17:18:42