c ++ Glut显示需要调用我的绘图函数,但我无法传递任何参数

时间:2012-11-14 19:03:45

标签: c++ glut

我试图在c ++中使用过剩来根据我输入主函数的文件中的信息创建一个绘图。

int main (int argc, char** argv)  //I think this is all relevant info in main
{   
glutDisplayFunc (display);

fstream file = fstream ("Tree.txt");
Tree myTree = Tree(file);
}

static    //this is the function I need to draw from but it can't take any parameters
void display(void)
{  
}

static void draw_frame(Tree::Node* t) //my draw function needs access to info from my file stream
{
    int x = t->xValue;  //for example I need to access these variables
    int y = t->yValue;
}

我尝试将Tree * myTree作为一个全局变量,但我只是犯了更多错误,它会完全停止在我的文件中读取。如果有人有任何想法,我将非常感激!

1 个答案:

答案 0 :(得分:0)

在您的情况下,您需要将Tree作为全局变量。我建议从构造函数中移动“树构建”代码,并从主函数初始化它。有点像:

Tree GTree;
int main (int argc, char** argv)  //I think this is all relevant info in main
{   
    glutDisplayFunc (display);

    fstream file = fstream ("Tree.txt");
    GTree.Initialize(file);
}

然后,在display中,您可以使用您的GTree进行渲染。

请注意,如果您需要更新渲染,则需要调用 glutPostRedisplay 或将display作为 glutIdleFunc