glutMainloop() 関数について本当に混乱しています。この関数のループで使用される関数は? glutIdleFunc() が使われていると思っていたのですが、この関数を使わないコードを見たことがあります。
#include <GL/glut.h>
static void RenderSceneCB()
{
glClear(GL_COLOR_BUFFER_BIT);
glutSwapBuffers();
}
static void InitializeGlutCallbacks()
{
glutDisplayFunc(RenderSceneCB);
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA);
glutInitWindowSize(1024, 768);
glutInitWindowPosition(100, 100);
glutCreateWindow("Tutorial 01");
InitializeGlutCallbacks();
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
glutMainLoop();
return 0;
}
また、このコードで InitializeGlutCallbacks() が使用されるのはなぜですか? glutDisplayFunc(RenderSceneCB); だけではないのはなぜですか。InitializeGlutCallbacks() の代わりに書かれていますか? 最後に、なぜ InitializeGlutCallbacks() は static なのですか?