сбой 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.