10 votes

Pourquoi glGetString(GL_VERSION) pourrait-il causer une erreur de segmentation ?

Je suis en train d'apprendre OpenGL sur Fedora 13 et j'ai remarqué qu'un appel à glGetString provoque un seg fault. J'ai cherché sur Google, mais je n'ai trouvé aucune solution.

Le code est simple :

#include <GL/gl.h>

int main() {
    glGetString(GL_VERSION);
    return 0;
}

Commande de compilation :

g++ -lGL main.cpp -o test.bin

Résultat de la course :

$ ./test.bin 
Segmentation fault (core dumped)

Info OpenGL :

$ glxinfo | grep OpenGL
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) IGDNG_M GEM 20100328 2010Q1 
OpenGL version string: 2.1 Mesa 7.8.1
OpenGL shading language version string: 1.20
OpenGL extensions:

Toute idée ou référence est la bienvenue.

Solution :

#include <iostream>
#include <GL/freeglut.h>

int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_RGBA);
    glutCreateWindow("test");
    glutFullScreen();
    std::cout << glGetString(GL_VERSION) << std::endl;
    return 0;
}

16voto

Bethor Points 2997

Je doute que vous puissiez appeler quelque chose d'aussi simple que glGetString sans un contexte OpenGL .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X