2014-04-05 3 views
6

나는 다음과 같은 코드가에 창을 열려면 실패 : 그것은 우분투 및 Windows 모두에서 내 바탕 화면에 잘 작동GLFW는 OSX

glfwWindowHint(GLFW_SAMPLES, 4); // 4x antialiasing 
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); 
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); 
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 

// Open window and create OpenGL context 
GLFWwindow * window; 
window = glfwCreateWindow(1024, 768, "OpenGL Testing", NULL, NULL); 
if(window == NULL) 
{ 
    fprintf(stderr, "Failed to open GLFW Window.\n"); 
    glfwTerminate(); 
    return -1; 
} 

하지만 OSX를 실행 내 노트북에 실패합니다. 나는이 버전의 OpenGL을 지원하지 않는 랩탑에서 문제라고 생각했지만, 비디오 카드로 최대 4.1까지 지원합니다.

nVidia 대신 통합 인텔 GPU를 사용하고 있다고 생각했지만, 내가 본 것을 이해하면 GLFW는 올바른 GPU가 렌더링을 수행하도록 강제 할 것입니다.

컨텍스트를 2.1로 변경하면 모든 것이 작동하는 것처럼 보이지만 셰이더는 호환되지 않습니다.

아이디어가 있으십니까?

업데이트 :모든 호출이 제거되면 창은 생성되지만 셰이더는 호환되지 않습니다. GLFW가 자동으로 컨텍스트를 선택하면 셰이더와 호환되지 않는 경우가 발생합니다 (version 330 core).

+0

오류 메시지가 표시됩니까? – Gurgadurgen

+0

내가 얻는 유일한 오류 메시지는 창을 null로 확인하고 메시지를 인쇄하여 반환하는 경우입니다. 컨텍스트를 2.1로 변경하거나 컨텍스트 설정을 제거하면 셰이더를로드하려고 할 때 비 호환성 오류 메시지가 나타납니다. – danielunderwood

+0

이 답변은 도움이 될 수 있습니다 : http://stackoverflow.com/questions/22213874/creating-opengl-3-3-context-with-glfw-in-mac-os-x-10-9 – Gurgadurgen

답변

11

GLFW에서 호환성 플래그를 설정하는 문제가 발생했습니다. This answer는 다음 호출을의 대답을 주도 :

glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);

이 또한 GLFW FAQ에 표시됩니다.