Por lo tanto, en mi proyecto estoy usando una clase separada para crear almacenamientos intermedios llamados Buffer.cpp. Aquí es el constructorglGenBuffers() bloqueando con falla de Segmentación. (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);
...
}
Y las definiciones de los miembros:
GLuint buffer;
const GLsizei size;
const GLenum type;
Buffer(GLenum, const void*, GLsizei, GLenum);
El problema es que cuando intento generar un buffer usando, por ejemplo, este comando:
Buffer vBuffer(GL_ARRAY_BUFFER, vertexPositions, sizeof(vertexPositions), GL_STATIC_DRAW);
la programa se bloquea en glGenBuffers() con estado de terminación "-1073741819". He intentado probar el programa y esto es lo que tengo:
Program received signal SIGSEGV, Segmentation fault.
Mi tarjeta compatible con OpenGL 1.5 de manera que no es el caso.
También vale la pena tener en cuenta que compilé una biblioteca de glew estática.
EDIT: Finalmente arreglé el problema. El problema era que estaba llamando a glewInit() antes de crear un contexto de representación de OpenGL.
¿Has probado 'glGetError()'? – Florian
¿No está importando gl.h? Solo porque tuve bloqueos extraños antes cuando no importé los encabezados y GCC no gimió –
¿Tiene un contexto actual 'glewInit()' 'd GL en el momento en que llega a esa llamada 'glGenBuffers()'? – genpfault