为什么这个 GLFW 程序不轮询操纵杆?

Why is this GLFW program not polling for joysticks?

我正在使用 GLFW 记录机器人项目中的操纵杆状态,遇到了一些奇怪的事情。

在 Macbook Air 上,运行ning 10.11.3,GLFW 仅 return程序开始时的操纵杆状态。然而,文档声称每次调用操纵杆函数时它都会更新状态。使用操纵杆存在和操纵杆名称功能仅 return 原始状态。

我不能透露我的代码。但是,我正在使用 ImGui,其中一个示例程序就足够了。要重现该问题,运行 对 'opengl3_example' 项目进行以下更改:

在行 ImGui_ImplGlfwGL3_NewFrame(); 之后添加:

for (int i = 0; i < 15; i++)
{
    if (glfwJoystickPresent(i) != GL_TRUE)
    {
        printf("There are %d joysticks detected.\n",i); break;
    }
}

在我的例子中,如果程序启动时没有连接操纵杆,并且在程序启动后插入一个 运行ning,它会声称仍然有 0 个操纵杆连接。该功能之外的问题 运行,因为按钮和轴状态也没有更新。

我正在使用从源代码编译的最新 GLFW 3.1.2。请就此提出建议。

编辑:如果您想知道应该发生什么,请查看 2:09 时间戳上的视频 https://www.youtube.com/watch?v=mx0IUbxAQ34

编辑:我试过一个不同的库,它能正确检测到操纵杆。

提前致谢。

原来是自制软件上的 GLFW 版本有问题。多么虎头蛇尾。

出于某种原因,当我从源代码安装时,它没有覆盖自制程序安装的二进制文件。这使我认为这是代码的问题。

不是。