使用glutDisplayFunc(opengl)绘图

时间:2015-01-19 21:49:02

标签: c++ function opengl glut

我有一个显示功能,它显示由两点定义的各种线段:

void display(long total_points, vector<vector<long>> adjmat){
    //stuff here
    glVertex2f(n1,n2);
    glVertex2f(n3,n4);
}

我想在一个窗口中显示这些片段,并且我使用过剩来做这件事:

int main(int argc, char *argv[]){
    //stuff here
    glutDisplayFunc(display(total_points, adjmat));
    glutMainLoop();
    return EXIT_SUCCESS;
}

我在glutDisplayFunc()invalid use of void expression收到错误 我需要将一些参数传递给display()以获得我想要的输出。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

不要将它们作为参数传递,而是作为全局传递,这是函数没有参数的过剩缺点。

long total_points;
vector<vector<long>> adjmat;

void display(){
    //stuff here
    glVertex2f(n1,n2);
    glVertex2f(n3,n4);
}

int main(int argc, char *argv[]){
    //stuff here
    //fill and assign total_points, adjmat
    glutDisplayFunc(display);
    glutMainLoop();
    return EXIT_SUCCESS;
}