OpenGL:没有用于调用'glutDisplayFunc'的匹配函数

时间:2016-01-17 02:36:22

标签: opengl

我的操作系统是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;
}

1 个答案:

答案 0 :(得分:4)

glutDisplayFunc将函数指针作为其参数。您尝试使用的语法与以下内容不匹配:

glutDisplayFunc(lineSegement());

在此声明中,lineSegment()lineSegment函数的调用,其中返回值void )被传递给glutDisplayFunc

要传递函数指针,只需编写glutDisplayFunc参数的函数名称:

glutDisplayFunc(lineSegement);