#include <iostream>
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
void GraphiqueAffichage() {
glClearColor(1.0, 1.0, 0.5, 0.5);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glFlush();
}
int main(int argc, const char * argv[]) {
// insert code here...
glutInitWindowPosition(10, 10);
glutInitWindowSize(480, 272);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutCreateWindow("Bonjour");
glutDisplayFunc(GraphiqueAffichage);
glutMainLoop();
return 0;
}
您好 我在使用OS X 10.12的Mac上,使用此代码的ans,没有显示窗口,这是正常的吗?为什么?请帮我。 编译是正确的,没有错误,构建成功,但没有创建窗口! 我尝试了这个适用于Windows的代码,但我有一台Mac,它不起作用,如何让它工作?
答案 0 :(得分:3)
编译正确,没有错误,构建成功...
但是当你运行程序时,你会得到一个错误列表,对吗? “成功编译”不会(唉)意味着您的代码是正确的。
查找第一条错误消息,您似乎忘记先致电glutInit
:
int main(int argc, char * argv[]) {
glutInit(&argc, argv);
glutInitWindowPosition(10, 10);
...
(代码所在的位置,“在此处插入代码”......)
man glutInit
告诉你为什么它也失败了:
glutInit
将初始化GLUT库并与窗口系统协商会话。
其中“窗口系统”是Mac OS X.
此外,您的main
错了。 argv
不是const char *
- 使用const
说明符,编译器会对你大喊大叫。
通过这些更改,我得到了一个漂亮的黄色窗口 - 您的glClearColor
- 以及自定义标题“Bonjour”。
答案 1 :(得分:1)
您需要初始化过剩
glutInit(&amp; argc,argv);
在您的主要。
//#include <iostream>
#include <GLUT/GLUT.h>
#include <OpenGL/OpenGL.h>
void GraphiqueAffichage() {
glClearColor(1.0, 1.0, 0.5, 0.5);
glClear(GL_COLOR_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glFlush();
}
int main(int argc, const char * argv[]) {
// insert code here...
glutInit(&argc, argv);
glutInitWindowPosition(10, 10);
glutInitWindowSize(480, 272);
glutInitDisplayMode(GLUT_RGBA | GLUT_SINGLE);
glutCreateWindow("Bonjour");
glutDisplayFunc(GraphiqueAffichage);
glutMainLoop();
return 0;
}