2013-02-06 1 views
0

나는 이미 GLFW 라이브러리를 설정했고 사용 설명서에 따라 glfwInit() 함수를 사용하여 초기화해야합니다. 그 후에는 키보드의 키를 누른 후 콜백 함수를 호출 할 수 있어야하지만이 함수는 호출되지 않아 마우스 위치를 얻는 것이 더 쉽습니다. 그러나 그것도 작동하지 않습니다, 그래서 나는 내 전체 GLFW에 문제가 있다고 가정합니다.glfwInit()이 1을 반환하더라도 GLFW를 얻을 수 없습니다

이 내 응용 프로그램에 대한 주요 루프이 루프 전에 또한

while (!m_exit) 
{ 

    int x, y; 
    glfwGetMousePos(&x, &y); 
    glfwPollEvents(); 
    gameCycle();      // Do one cycle 

    while (PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE)) 
    { 
     // Check the pressence of commands 
     if (!GetMessage (&msg, NULL, 0, 0)) 
     { 
      return msg.wParam; // Hand the control on to system 
     } 

     TranslateMessage (&msg); 
     DispatchMessage (&msg); 
    } 
} 

, 나는 초기화 내 GLFW :

// Initialize GLFW 
if(!glfwInit()) 
{ 
    exit(EXIT_FAILURE); 
} 

glfwSetKeyCallback(processKeys); 

// Main message loop: 
int loopRet = g_pGameAppLayer->mainLoop(); 

내가 xy 변수에 저장된 값을 확인

, I 값이 전달되지 않았 음을 나타내는 -858993460 만 가져옵니다.

그래서 GLFW을 어떻게 설정하지 않았습니까?

+0

GLFW를 사용하는 경우 Win32 메시지를 명시 적으로 펌핑하는 이유는 무엇입니까? – rioki

+0

@rioki 나는 그것을하지 말아야한다는 것을 모르기 때문에. –

답변

6

귀하의 문제는 여기에 있습니다 : 그 후

내가 할 수 있어야 - 예를 들어 - 내 키보드

없음에 키를 누른 후 안, 콜백 함수를 호출합니다. GLFW를 사용하여 을 만들 때까지 입력을받을 수 없습니다. 이것은 많은 윈도우 시스템에서 일반적으로 발생합니다. 당신은 창문이 있으면 입력 만받습니다.

+0

Nicol, GLFW를 사용하지 않고 창을 이미 만들었 기 때문에 입력을 처리 할 때만 GLFW를 사용할 수 있다고 생각했습니다. –