2013-11-01 1 views
3

C++과 GLFW를 통해 OpenGL을 사용하기 시작했지만 glfwCreateWindow(...)을 호출하면 내 시스템에서 사용할 수있는 OpenGL 최신 버전 (현재 4.3)을 사용하는 컨텍스트가 작성되지 않습니다. 이전에 OpenGL 4.3 컨텍스트를 Java 및 LWJGL과 함께 사용했지만 GLFW로 전환 한 이후 실패했습니다. 2 부 버전을 변경하면 잘 작동하지만GLFW가 만들 수없는 4.3 컨텍스트

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4); 
    glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 

추가 호출이 오류 코드를 반환 할 glfwCreateWindow(...)됩니다. 코어 힌트를 사용하여 코어 프로파일을 사용하고 앞으로 호환성을 true로 설정해도 아무런 효과가 없습니다.

누구나 그 원인을 알 수 있습니까? /이 문제의 해결책은 무엇입니까?

편집 :이이 수행 윈도우 7

+0

글쎄,'glfwInit (...) '을 호출하기 전에 glfw API 호출을해서는 안됩니다. 라이브러리를 초기화하기 전이 아니라 창을 만들기 전에 윈도우 힌트를 설정하고 싶습니다.) –

+0

초기화는 두 줄보다 약간 더 길 수 있습니다 : opengl 3.2/3.3에서 해결 된 문제 : http://stackoverflow.com/ 질문/19658745/why-is-my-opengl-version-always-2-1-on-mac-os-x? noredirect = 1 # comment29233630_19658745 –

+0

@ AndonM.Coleman 죄송합니다. 내 코드는 힌트 전에 호출합니다. –

답변

2

에 :

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); // yes, 3 and 2!!! 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2); 
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

그리고 당신은 어쨌든 OpenGL을 4.x의를 사용할 수 있습니다 ...

이유는 무엇입니까?

FAQ - "4.1 - 어떻게 OpenGL 3.0+ 컨텍스트를 만들 수 있습니까?"를 확인하십시오.

+1

감사! GL 버전을 쿼리해도 3.2가 반환되지만 4.3 기능 (예 : 계산 쉐이더)을 사용할 수 있습니다. –

관련 문제