2010-06-01 2 views
0

NSOpenGLView에 유효한 컨텍스트가 있는지 확인하려고하지만 openGLContext를 호출하면이 문제를 파악하는 데 도움이되지 않습니다. openGLContext는 항상 NsOpenGlContext를 반환하는 것처럼 보입니다 (뷰에 컨텍스트가있는 경우 현재 컨텍스트를 반환하고 그렇지 않으면 컨텍스트를 만들고 반환 함). 대신 내가 사용할 수있는 또 다른 방법이 있습니까?NSOpenGLView가 유효한 컨텍스트 (코코아 OSX)를 가지고 있는지 확인

답변

4

스레드별로 OpenGL 컨텍스트가 선택됩니다. NSOpenGLView는 뷰에서 그리는 컨텍스트 (즉, [context setView : view]가 호출 된 컨텍스트)를 알려주지 만 현재 코드를 실행하는 스레드에서 어떤 컨텍스트가 선택되어 있는지 알려주지 않습니다. 이전 Windows에서 그리기 위해 펜/브러시를 선택하는 것과 비슷합니다.

보기로 그릴 수 있는지 알고 싶습니다. 이를 위해 현재 컨텍스트가 NSOpenGLView가 반환하는 컨텍스트인지 확인하고 그렇지 않은 경우 NSOpenGLView가 반환하도록 설정하십시오.

스레드에 대한 현재의 OpenGL 컨텍스트를 얻으려면 : (. 즉, 전류 컨텍스트를 설정하지) 현재 컨텍스트를 지우려면

[context makeCurrentContext]; 

:

NSOpenGLContext* context = [NSOpenGLContext currentContext]; 

현재 하나를 설정하려면

[NSOpenGLContext clearCurrentContext]; 

일반적으로 NSOpenGLContext의 문서를 참조하십시오.

관련 문제