2013-04-08 2 views
0

내 MacBook Air에서 EXC_BAD_ACCESS로 많은 OpenGL 함수가 실패한 이상한 문제가 있습니다. glGenBuffers 또는 glGetString (GL_VENDOR)과 같은 매우 간단한 함수는이 결과를 얻습니다. Xcode에서 실행합니다. 그리고 세분화 오류가 발생합니다. 터미널에서 실행하면 11입니다.glGenBuffers 및 MacBook Air의 많은 OpenGL 함수 EXC_BAD_ACCESS

이 같은 예제 코드가 실패 :

#include<GLUT/glut.h> 
#include<OpenGL/gl.h> 
#include<OpenGL/glu.h> 
#include<OpenGL/glext.h> 

int main(){ 
    unsigned int test[3]; 
    glGenBuffers(3, test); 
    return 0; 
} 

나는이 내 시스템이나하지에 문제가 있는지 모르겠습니다. 나는 2012 버전의 MacBook Air를 OSX 10.8.2와 함께 사용하고 있습니다.

답변

3

OpenGL 컨텍스트 생성 코드는 어디에 있습니까? OpenGL에 액세스 할 수 있도록 유효한 OpenGL 컨텍스트가 필요합니다. 또한 glext.h을 포함하면 glGenBuffers을 확장로드 메커니즘을 통해 초기화해야하는 함수 포인터로 선언합니다. 오른쪽 OpenGL 함수에 대한 포인터를 초기화하지 않으면 그것을 역 참조 (= 호출)하면 segfault가 발생합니다.

MacOS X에서는 일반적으로 사용 가능한 MacOS X 버전에서 실제로 지원되는 모든 OpenGL 기능이 OS X 프레임 워크에 이미 있기 때문에 glext.h이 필요하지 않습니다.

MacOS X의 다양한 버전을 지원하려면 확장 메커니즘을 사용하는 것이 좋습니다.

관련 문제