我的操作系统是mac。但是,当我将此代码放入Xcode编译器并运行它时。控制台说“没有用于调用'glutDisplayFunc'的匹配函数”。
#include "GLUT/glut.h"
void init(void)
{
glClearColor(1.0, 1.0, 1.0, 0.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(0.0, 200.0, 0.0, 150.0);
}
void lineSegement(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINE);
glVertex2i(180, 15);
glVertex2i(10, 145);
glEnd();
glFlush();
}
int main (int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowPosition(50, 100);
glutInitWindowSize(400, 300);
glutCreateWindow("An Example OpenGL program");
init();
glutDisplayFunc(lineSegement());
glutMainLoop();
return 1;
}
答案 0 :(得分:4)
glutDisplayFunc
将函数指针作为其参数。您尝试使用的语法与以下内容不匹配:
glutDisplayFunc(lineSegement());
在此声明中,lineSegment()
是lineSegment
函数的调用,其中返回值(void
)被传递给glutDisplayFunc
。
要传递函数指针,只需编写glutDisplayFunc
参数的函数名称:
glutDisplayFunc(lineSegement);