这是我的简单代码。
#include <iostream>
#include <GLFW/glfw3.h>
int main() {
int count;
GLFWmonitor** monitors = glfwGetMonitors(&count);
std::cout << count << std::endl;
return 0;
}
出于某种原因,它一直告诉我有零监视器。我假设0意味着确实有1.但我有两台其他显示器连接到我的电脑。当我进入系统偏好时,我可以清楚地看到其他两个显示器。但我不知道为什么它一直告诉我零。我不知道问题是什么。
答案 0 :(得分:7)
我猜你需要在做其他任何事情之前致电glfwInit()
。
来自glfw文档:
int glfwInit(void)
此函数初始化GLFW库。在大多数GLFW功能之前 可以使用,GLFW必须初始化,并在程序终止之前 应终止GLFW以释放任何分配的资源 在初始化期间或之后。
如果此函数失败,则在返回之前调用glfwTerminate。如果它 成功之后,你应该在程序退出之前调用glfwTerminate。
成功初始化后对此函数的其他调用但是 在终止之前会成功,但什么都不做。
返回 如果成功则为GL_TRUE;如果发生错误,则为GL_FALSE。