У меня есть следующая программа
void allocVars(){
m_window = new GLWindow(); //glGenTexture() is called //CRASH!
m_window->Init(m_cam.w, m_cam.h, "Window Name");
}
void glInit()
{
glutReshapeFunc(reshape);
glutIdleFunc(idle);
glutKeyboardFunc(keyboard);
glutMouseFunc(mouse);
glutDisplayFunc(display);
glBlendFunc(GL_SRC_ALPHA, GL_ONE); //CRASH!
}
int main(int argc, char **argv)
{
glutInit(&argc, argv);
glInit(); // CRASH HERE
camInit(); //ok
allocVars(); // CRASH HERE
trackingInit();
glutMainLoop();
return 0;
}
В соответствии с другими сообщениями, для того, чтобы делать вызовы gl, мне нужно сначала иметь действительный контекст openGL. (По странным причинам в Windows это работает, даже если контекст еще не действителен.)
Вот почему я перемещаю все после функций glutInit и glInit, но это приложение всегда вылетает в функциях gl, таких как
glGenTextures () внутри allocVars (); в GLWindow (); или в
glBlendFunc () внутри glInit ()
Интересно, что мне здесь не хватает и / или как я могу проверить, что у меня есть действительный контекст opengl?
Заранее спасибо