繁体   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