簡體   English   中英

即使glfwInit()返回1,也無法使GLFW工作

[英]Can't get GLFW to work even if glfwInit() returns 1

我已經設置了GLFW庫,並且根據它的用戶指南,我應該使用glfwInit()函數對其進行初始化。 之后,我應該能夠-例如-按下鍵盤上的鍵后調用回調函數,但是沒有調用此函數,因此我嘗試了一些簡單的操作-獲取鼠標位置。 但這也行不通,所以我認為整個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變量中的值時,只得到-858993460,這表明沒有值傳遞給它們。

那么在設置GLFW時我缺少什么呢?

您的問題在這里:

之后,我應該能夠(例如)在按下鍵盤上的鍵后調用回調函數

不,你不應該。 在使用GLFW創建窗口之前,您無法獲得輸入。 在許多窗口系統中通常都是這樣。 只有在有窗口的情況下,您才能獲得輸入。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM