GL вызывает конец в EXC_BAC_ACCESS - плохой контекст opengl? - PullRequest
0 голосов
/ 14 октября 2010

У меня есть следующая программа

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?

Заранее спасибо

1 Ответ

0 голосов
/ 15 октября 2010

ответ в комментариях 100

...