Tak więc w moim projekcie używam oddzielnej klasy do tworzenia buforów o nazwie Buffer.cpp. Oto konstruktorBłąd glGenBuffers() z błędem segmentacji. (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);
...
}
oraz definicje członków:
GLuint buffer;
const GLsizei size;
const GLenum type;
Buffer(GLenum, const void*, GLsizei, GLenum);
Problemem jest to, że gdy próbuję wygenerować bufor stosując na przykład polecenie:
Buffer vBuffer(GL_ARRAY_BUFFER, vertexPositions, sizeof(vertexPositions), GL_STATIC_DRAW);
się Program zawiesza się w glGenBuffers() z zakończeniem statusu "-1073741819". Próbowałem debugowania programu i to, co mam:
Program received signal SIGSEGV, Segmentation fault.
Moja karta obsługuje OpenGL 1.5, tak że nie jest to przypadek.
Warto również zauważyć, że samodzielnie skompilowałem bibliotekę statyczną.
EDYCJA: W końcu rozwiązałem problem. Problem polegał na tym, że wywołałem glewInit() przed utworzeniem kontekstu renderowania OpenGL.
Czy wypróbowałeś 'glGetError()'? – Florian
Nie importujesz gl.h? Tylko dlatego, że miałem dziwne awarie, zanim nie zaimportowałem nagłówków, a GCC nie jęknął. –
Czy masz aktualny kontekst 'glewInit()' 'GL, zanim dojdziesz do tego wywołania 'glGenBuffers()'? – genpfault