Quindi, nel mio progetto sto usando una classe separata per creare buffer chiamati Buffer.cpp. Ecco il costruttoreglGenBuffers() in arresto anomalo con errore di segmentazione. (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);
...
}
E le definizioni dei membri:
GLuint buffer;
const GLsizei size;
const GLenum type;
Buffer(GLenum, const void*, GLsizei, GLenum);
Il problema è che quando provo a generare un buffer usando per esempio il comando:
Buffer vBuffer(GL_ARRAY_BUFFER, vertexPositions, sizeof(vertexPositions), GL_STATIC_DRAW);
la il programma si blocca su glGenBuffers() con stato di terminazione "-1073741819". Ho provato a test del programma e questo è quello che ho ottenuto:
Program received signal SIGSEGV, Segmentation fault.
La mia scheda supporta OpenGL 1.5 in modo che non è il caso.
Vale anche la pena di notare che ho compilato una libreria di Glew statica me stesso.
MODIFICA: Ho finalmente risolto il problema. Il problema era che stavo chiamando glewInit() prima di creare un contesto di rendering OpenGL.
Hai provato 'glGetError()'? – Florian
Non stai importando gl.h? Solo perché ho avuto strani incidenti prima di dove non importavo le intestazioni e GCC non si lamentava –
Hai un contesto corrente, 'glewInit()' 'd GL quando arrivi a quella chiamata 'glGenBuffers()'? – genpfault