-1
我正在使用QT和OpenGL的组合创建一个程序。我尝试初始化OpenGL部分时收到警告:GLUT警告:glutInit被第二次调用。我只在我的程序中调用过一次。该程序适用于基于Linux的机器,但不适用于Mac。GLUT警告:glutInit被第二次调用
凡的OpenGL最初从drawOpTableFunction叫:
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()只被调用一次。
您是否多次调用'init_gl_window'?在其上放置打印语句或断点。 –
它是probalby,因为Qt在内部调用函数 - 只是把它放在外面,它应该工作 – Felix