我一直在嘗試使用openGL製作小行星克隆,並且完全停留在分割錯誤上,我不確定如何解決。它似乎發生在函數glGenBuffersARB()的使用上。如果我使用vertexbuffer註釋掉這些行,程序會編譯並運行正常(但顯然沒有任何渲染)。我在eclipse上使用minGW編譯器和gdb調試器並試圖使用擴展,所以我可以支持早於1.5的OpenGL版本。glGenBuffersARB(1,&_VertexBufferObject)上的段錯誤;
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被聲明爲private在這樣的標題:
GLuint _VertexArrayObject;
GLuint _VertexBufferObject;
int U8VertexStride;
int U8VertexCount;
gdb的痕跡在這裏:gdb trace
您是否通過初始化GLEW實際*加載*擴展?此外,緩衝區對象自從** 1.5 **開始就是核心OpenGL,而不是3.0。 –
我相信我在開始時使用glewInit()正確地初始化了GLEW,因爲它在GLEW站點上完成了。當它變成核心時,我一定會混淆不清,我會編輯這個問題。謝謝! – Stephen
在初始化glew之前,您是否設置了GL版本?打印出函數指針也可以幫助理解正在發生的事情。 glBufferDataARB與glBufferData等。我認爲glew將基於你的硬件支持的功能,除非你在glewInit之前指定gl版本(使用glfwOpenWindowHint) – Grimmy