나는 opengl을 사용하여 소행성 복제본을 만들려고 노력해 왔으며 세분화 오류에 완전히 빠졌습니다. 어떻게 해결해야할지 확신이 서지 않습니다. 그것은 함수 glGenBuffersARB()의 사용에 발생하는 것 같습니다. vertexbuffer를 사용하여 행을 주석 처리하면 프로그램이 컴파일되고 잘 실행됩니다 (그러나 렌더링 된 것은 아님). gdb 디버거를 사용하여 Eclipse에서 minGW 컴파일러를 사용하고 있으며 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이 같은 헤더에 비공개로 선언됩니다
GLuint _VertexArrayObject;
GLuint _VertexBufferObject;
int U8VertexStride;
int U8VertexCount;
gdb를 추적 현재 위치 : gdb trace
실제로 GLEW를 초기화하여 확장을로드 했습니까? 또한 버퍼 오브젝트는 3.0이 아닌 ** 1.5 ** 이후 핵심 OpenGL입니다. –
GLEW 사이트에서 수행되었으므로 처음에는 glewInit()을 사용하여 GLEW를 올바르게 초기화했다고 생각합니다. 코어가 만들어 졌을 때 나는 섞여 있었음에 틀림 없다. 나는 그 질문을 편집 할 것이다. 감사! – Stephen
glew를 초기화하기 전에 GL 버전을 설정하고 있습니까? 함수 포인터를 인쇄하면 무슨 일이 일어나는지 이해하는 데 도움이됩니다. glBufferDataARB 대 glBufferData 등등. glewInit (glfwOpenWindowHint 사용) 전에 gl 버전을 지정하지 않으면 glew가 하드웨어가 지원하는 기능을 기반으로 맵핑 할 것이라고 생각합니다. – Grimmy