Итак, в моем проекте я использую отдельный класс для создания буферов с именем Buffer.cpp. Вот конструктор
#define GLEW_STATIC
#define GLEW_NO_GLU
#define GLFW_NO_GLU
#include "GL/glew.h"
#include "GL/glfw.h"
Buffer::Buffer(GLenum _type, const void *data, GLsizei _size, GLenum usage) : type(_type), size(_size)
{
...
//Generate Buffer
glGenBuffers(1, &buffer);
...
}
И определения членов:
GLuint buffer;
const GLsizei size;
const GLenum type;
Buffer(GLenum, const void*, GLsizei, GLenum);
Проблема в том, что когда я пытаюсь создать буфер с помощью, например, этой команды:
Buffer vBuffer(GL_ARRAY_BUFFER, vertexPositions, sizeof(vertexPositions), GL_STATIC_DRAW);
программа аварийно завершает работу на glGenBuffers ()со статусом завершения "-1073741819". Я попробовал отладить программу и вот что у меня получилось:
Program received signal SIGSEGV, Segmentation fault.
Моя карта поддерживает OpenGL 1.5, так что это не так.
Также стоит отметить, что я сам собрал статическую библиотеку glew.
РЕДАКТИРОВАТЬ:Я наконец исправил проблему. Проблема заключалась в том, что я вызывал glewInit ()перед созданием контекста рендеринга OpenGL.