сбой glGenBuffers () с ошибкой сегментации. (C++ / GLFW/GLEW)
Итак, в моем проекте я использую отдельный класс для создания буферов, называемых буферами.СРР. Вот конструктор
#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.
EDIT: я, наконец, исправил проблему. Проблема заключалась в том, что я вызывал glewInit() перед созданием контекста рендеринга OpenGL.
1 ответов
Итак, ваша проблема заключалась в том, что вы создавали контекст OpenGL после вызова glewInit() - и, таким образом, glewInit() не мог правильно настроить точки входа GL.
в этом случае glewInit (), вероятно, вернул код ошибки. Вы проверяете коды ошибок из функций? Он должен вернуть GLEW_OK.