我已经获得了 GLUT 3.7 源码并打开了 MSVC 项目。我在项目设置中将DLL切换为静态lib并得到了一个lib。然后,我在应用程序中链接到它,并添加了 GLUT_STATIC 预处理器定义。它创建窗口并渲染我的游戏的一帧,仅此而已。而游戏在 GLUT 的动态版本中运行得很好。我做错了什么?
谢谢
看来发生的事情是我的计时器功能没有被调用:
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
glutInitWindowSize(640, 480);
glutCreateWindow("Game");
CubeEngine.InitEngine();
glutDisplayFunc(drawScene);
glutReshapeFunc(handleResize);
glutSpecialFunc(keyboard);
glutSpecialUpFunc(keyboardup);
glutKeyboardFunc(rkeyboard);
glutKeyboardUpFunc(rkeyboardup);
glutPassiveMotionFunc(mousemove);
glewInit();
glutTimerFunc(17, update, 0);
glutMainLoop();
void update(int val) {
CubeEngine.UpdateLogic();
glutPostRedisplay();
glutTimerFunc(17, update, 0);
}
只是一个想法:可能是因为重复的符号。您可以尝试重命名该
update
函数吗?