2010-10-14 9 views
0

J'ai le programme suivantgl appels se terminent par EXC_BAC_ACCESS - mauvais contexte opengl?

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; 

} 

Acccording à d'autres postes, afin de faire des appels gl je dois avoir un contexte openGL valide d'abord. (Pour des raisons étranges dans Windows cela fonctionne même si le contexte n'est pas encore valide.) C'est pourquoi je déplace tout après les fonctions glutInit et glInit mais cette application se bloque toujours dans les fonctions gl comme glGenTextures() dans allocVars(); dans GLWindow(); ou dans glBlendFunc() dans glInit()

Je me demande ce qui me manque ici et/ou comment puis-je vérifier que j'ai un contexte opengl valide?

Merci à l'avance

+1

Où sont vos 'glutInitDisplayMode()' et '' glutCreateWindow() appels? – genpfault

+0

Je viens de me rendre compte que, ... merci! glutInitDisplayMode(); -> glutInitWindowPosition(); -> glutInitWindowSize(); -> glutCreateWindow (nom); -> glGenTextures(); est la bonne commande à droite!, cela a résolu mon problème et maintenant le programme fonctionne;) – nacho4d

Répondre

0

réponse est dans les commentaires ↑

+0

merci genpfault – nacho4d