2014-10-31 14 views
0

Я пытаюсь использовать freeglut в проекте Qt. К сожалению, когда я использую некоторые GLUT функции, как «glutWireSphere» или «glutWireTorus» Я получаю сообщение об ошибке:qt, используя freeglut, ошибка с 'glutInit'

freeglut ERROR: Function called without first calling 'glutInit'.

И когда я пытаюсь запустить приложение, она сразу завершает работу сама. Я не знаю, где именно следует называть «glutInit». Я установил freeglut согласно этому руководству:

https://www.youtube.com/watch?v=M4fm-cHGoYU&index=1&list=LLkYBBRyDu3gfOojsRQOM3JQ 

ответ

0

Я понял это. Это было довольно просто. Мне нужно использовать 'glutInit (& ARGC, ARGV)' в моей main.cpp, как это:

int main(int argc, char *argv[]) 
{ 
    glutInit(& argc, argv); 
    QApplication a(argc, argv); 
    MainWindow w; 
    w.show(); 

    return a.exec(); 
} 
+0

Не следует смешивать GLUT с Qt. Есть только 4 сетки, предлагаемые GLUT, и за исключением чайника, ни один из них трудно реализовать независимо от GLUT (и чайник не так уж и трудный). – datenwolf

+0

О, ладно. Спасибо за совет! Кстати, вы знаете, что может случиться, если я буду смешивать GLUT с Qt? Какие проблемы могут возникнуть? Мне сейчас любопытно. – user30935

+0

@ user30945: Как вы уже узнали, некоторые функции GLUT могут зависеть от инициализации GLUT. Когда инициализация реализации GLUT может (но не обязательно) устанавливать несколько вещей в процессе, которые влияют на последующее создание Windows и выполнение цикла событий. В конце концов, GLUT построен на предпосылке, что 'glutMainLoop()' никогда не возвращается, т. Е. Не нужно хорошо играть с другими. И тогда, конечно, если вы назовете 'glutMainLoop()' остальная часть вашей программы (с помощью Qt) перестанет работать, потому что никакие события Qt больше не обрабатываются. – datenwolf

Смежные вопросы