我真的对 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() 是静态的?