GLUT警告:第二次调用glutInit

时间:2015-12-18 17:52:23

标签: c++ qt opengl

我正在使用QT和OpenGL的组合创建一个程序。当我尝试初始化OpenGL部分时,我收到警告:GLUT警告:第二次调用glutInit。我只在程序中调用一次。该程序适用于基于Linux的计算机,但不适用于Mac。

最初在drawOpTableFunction中调用OpenGL的地方:

n = ui->opTableSize->currentText().toInt();
basePatternCode = ui->basePatternChoose->currentText().toStdString().c_str()[0];

ui->modAddWidget->close();

ModNAdd modA(n);
modA.fillTable();
tiles = new Tile*[n];
for(int i = 0; i < n; i ++)
    tiles[i] = new Tile(m_color, basePatternCode);
drawOpTableFunction(modA.getTable(), tiles, n);

drawOpTableFunction引导您:

void drawOpTableFunction(int **ta, Tile **ti, int en)
{
    table1 = ta;
    tiles1 = ti;
    n1 = en;
    HEIGHT = ((n1*50));
    WIDTH = ((n1*50));

    init_gl_window();
}

init_gl_window():

void init_gl_window()
{
    char *argv[] = {programName};
    int argc = sizeof(argv) / sizeof(argv[0]);
    glutInit(&argc, argv);
    glutInitDisplayMode( GLUT_RGB | GLUT_DOUBLE );
    glutInitWindowSize(WIDTH,HEIGHT);
    glutInitWindowPosition(100,100);
    glutCreateWindow(programName);
    init();

    glutDisplayFunc(drawWindow);
    glutReshapeFunc(reshape);
    glutMainLoop();
}

如您所见,glutInit()仅被调用一次。

1 个答案:

答案 0 :(得分:0)

如果您正在使用Qt,为什么要拉入GLUT? GLUT只是一些第三方框架。 GLUT和Qt正在填补相同的位置。如果您使用的是Qt,请不要使用GLUT。那很简单。