Почему glGetString (GL_VERSION) может вызывать ошибку сегмента? - PullRequest
9 голосов
/ 09 июня 2011

Я изучаю OpenGL на Fedora 13 и заметил, что вызов glGetString вызывает ошибку сегмента.Я удалил Google, но не нашел решений.

Код прост:

#include <GL/gl.h>

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

Команда компиляции:

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

Результат выполнения:

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

Информация 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:

Любые идеи или ссылки приветствуются.

Решение:

#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;
}

1 Ответ

14 голосов
/ 09 июня 2011

Я сомневаюсь, что вы можете назвать даже что-то столь же простое, как glGetString без контекста OpenGL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...