glGenBuffersARB(1,& _VertexBufferObject)上的分段错误;

时间:2012-10-18 22:11:26

标签: opengl segmentation-fault mingw fault glew

我一直在尝试使用openGL制作小行星克隆并完全陷入分段错误我不确定如何修复。它似乎发生在函数glGenBuffersARB()的使用上。如果我使用vertexbuffer注释掉行,程序编译并运行正常(但很明显没有渲染)。我在eclipse上使用minGW编译器和gdb调试器并试图使用扩展,所以我可以支持早于1.5的OpenGL版本。

glGenBuffers(1, &_VertexBufferObject);

glBindBufferARB( GL_ARRAY_BUFFER_ARB, _VertexBufferObject ); // Bind The Buffer

glBufferDataARB( GL_ARRAY_BUFFER_ARB, U8VertexCount*3*sizeof(GLfloat), quad,GL_STATIC_DRAW_ARB );

在这样的标题中将GLuints声明为私有:

GLuint _VertexArrayObject;

GLuint _VertexBufferObject;

int U8VertexStride;

int U8VertexCount;

gdb跟踪在这里:gdb trace

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。似乎声明和使用对象并没有像我预期的那样工作。我将对象声明为:         CObj Obj; 并像这样调用draw:         Obj.Draw(); 当我切换到将其声明为指针时:         CObj * Obj; 并像这样初始化它:         Obj = new CObj(); 然后使用:         Obj->绘制(); 开始工作,因为我认为应该。我不确定为什么会这样,如果有人能够为我清除这一点,我将不胜感激。