Сбой OpenGL в glTexBuffer (…)

Я пытаюсь запрограммировать систему частиц для моей 2D игры opengl.
Следовательно, создание геометрии кажется хорошим вместе с TBO, хранящим данные каждой частицы.
Проблема в том, что при инициализации функция

glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, buffer);

падает с ошибкой сегментации. Функция init для TBO:

glGenBuffers(1, &buffer);
glBindBuffer(GL_TEXTURE_BUFFER, buffer);
glBufferData(GL_TEXTURE_BUFFER, MAX_PARTICLES_N * 4 * sizeof(float), NULL,
GL_DYNAMIC_DRAW);
glGenTextures(1, &transforms);
glBindTexture(GL_TEXTURE_BUFFER, transforms);
glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, buffer);

С контекстом OpenGL все в порядке. OpenGL-3.0 также поддерживается (необходим для TBO).
Я запускаю это на Ubuntu 13.04 с картой Radeon. Драйвер Intel® Sandybridge Mobile.
Решение:

Моя главная ошибка заключалась в том, что я ожидал, что все в OpenGL, которое компилируется, должно работать. На самом деле, моя версия OpenGL используется 3.0, в то время как

glTexBuffer(GL_TEXTURE_BUFFER, GL_RGBA32F, buffer);

нужна версия 3.1 или выше.

glewIsSupported("GL_ARB_texture_buffer_object")

возвращает false, единственный способ заставить его работать — установить

glewExperimental = GL_TRUE;

до глевинита ();

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]