Also verwende ich in meinem Projekt eine separate Klasse, um Puffer namens Buffer.cpp zu erstellen. Hier ist der KonstruktorglGenBuffers() stürzt mit Segmentierungsfehler ab. (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);
...
}
und die Definitionen der Mitglieder:
GLuint buffer;
const GLsizei size;
const GLenum type;
Buffer(GLenum, const void*, GLsizei, GLenum);
Das Problem ist, dass wenn ich versuche, diesen Befehl unter Verwendung eines Puffers zum Beispiel zu generieren:
Buffer vBuffer(GL_ARRAY_BUFFER, vertexPositions, sizeof(vertexPositions), GL_STATIC_DRAW);
die Programm stürzt bei glGenBuffers() mit Beendigungsstatus "-1073741819" ab. Ich habe versucht das Debuggen des Programms und das ist, was ich habe:
Program received signal SIGSEGV, Segmentation fault.
Meine Karte unterstützt OpenGL 1.5, so dass das nicht der Fall.
Es ist auch erwähnenswert, dass ich selbst eine statische Bibliothek erstellt habe.
EDIT: Ich endlich das Problem behoben. Das Problem war, dass ich glewInit() aufruft, bevor ich einen OpenGL-Rendering-Kontext erstelle.
Haben Sie 'glGetError()' versucht? – Florian
Importieren Sie gl.h nicht? Nur weil ich vorher seltsame Abstürze hatte, bei denen ich keine Header importierte und GCC nicht stöhnte –
Haben Sie einen aktuellen 'glewInit()' 'd GL Kontext, wenn Sie zu diesem 'glGenBuffers()' Aufruf kommen? – genpfault