在c ++中,我们习惯于看到opengl安装在main函数中。例如 -
int main(int argv,char **argc){
glutInit(&argv,argc);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH);
..............................
}
但是如果没有这个主函数,我们如何在其他子函数中声明opengl? 如 -
int main(){
...........}
int installopengl(int argv,char **argc){
glutInit(&argv,argc);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH);
..............................
}
答案 0 :(得分:3)
也许我误解了 - 为什么你不能直接调用下面这个函数?
int main(int argv,char **argc) {
installopengl(argv, argc);
...........
}
int installopengl(int argv,char **argc) {
glutInit(&argv,argc);
glutInitDisplayMode(GLUT_DOUBLE| GLUT_RGB|GLUT_DEPTH);
..............................
}
答案 1 :(得分:2)
请正确使用您的术语。 OpenGL未在程序中安装。它被初始化。
您引用的模式也是GLUT初始化。 GLUT不是OpenGL,而是一个简单的窗口框架,它创建一个OpenGL上下文供您用于绘制到窗口。但是还有其他一些框架。
然后你似乎完全误解了主要功能的作用。 main
是程序入口点,是在运行时环境设置之后在进程中调用的第一个函数。 main可以调用任何函数,你只需在那里调用一个专用的框架初始化。如果它需要来自main的参数,你只需传递它们。
答案 2 :(得分:1)
虽然不建议使用,但您始终可以这样做:
int i = 0;
glutInit(&i, NULL);
这样做的问题是你将无法从命令行向glut库传递任何信息。