GLFW获取显示器数量为0,但连接了另外两个显示器。

3

这是我的简单代码。

#include <iostream>
#include <GLFW/glfw3.h>

int main() {

    int count;
    GLFWmonitor** monitors = glfwGetMonitors(&count); 
    std::cout << count << std::endl;
    return 0;
}

由于某些原因,它一直告诉我显示器数量为0。我估计0意味着实际上有1个。但我连接了另外两个显示器到我的电脑。当我进入系统偏好设置时,我可以清楚地看到其他两个显示器。但我不知道为什么它一直告诉我是0。我完全不知道问题出在哪里。

1个回答

8
我猜您需要在进行其他操作之前调用glfwInit()
根据glfw的文档:
int glfwInit (void)
此函数初始化GLFW库。在大多数GLFW函数可以使用之前,必须初始化GLFW,并且在程序终止之前应该终止GLFW以释放在初始化期间或之后分配的任何资源。
如果此函数失败,则在返回之前调用glfwTerminate。如果成功,则您应该在程序退出之前调用glfwTerminate。
在成功初始化但终止之前对此函数的其他调用将成功但不会执行任何操作。
如果成功,返回GL_TRUE;如果发生错误,则返回GL_FALSE。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接