GLFWwindow* window = glfwCreateWindow(0, 0, "GLFW全屏窗口", NULL, NULL);窗口大小填0,0就是全屏?
时间: 2024-10-27 13:06:45 浏览: 37
`glfwCreateWindow(0, 0, "GLFW全屏窗口", NULL, NULL)` 这行代码的意思是在GLFW中创建一个新的窗口。其中,参数 `0` 和 `0` 表示窗口宽度和高度为零,但这并不是直接创建一个全屏窗口。
当你将宽度和高度设置为0时,GLFW会根据屏幕分辨率自动调整窗口大小来填充整个屏幕。实际上,这相当于设置了窗口“隐式全屏”模式,即窗口将覆盖整个显示器,而不是在屏幕的一个特定区域内。
然而,值得注意的是,这样创建的窗口并不会完全占据所有监视器,因为每个显示器可能有不同的分辨率和缩放比例。为了获得真正的全屏效果,你应该在初始化GLFW时指定 `NULL` 作为窗口大小,然后在窗口创建之后动态获取屏幕的尺寸来调整窗口大小。例如:
```cpp
// 获取显示器信息
Monitor* primaryMonitor = glfwGetPrimaryMonitor();
DisplayMode* displayMode = glfwGetVideoMode(primaryMonitor);
// 创建全屏窗口
GLFWwindow* window = glfwCreateWindow(displayMode->width, displayMode->height, "GLFW全屏窗口", primaryMonitor, NULL);
```
相关问题
glfw打印窗口大小
GLFW (OpenGL Foundation Library for Windowing) 是一个用于创建图形用户界面的跨平台库,特别是在游戏开发中常用。如果你想在 GLFW 窗口中打印出当前窗口的大小,你可以使用以下步骤:
1. 首先,在初始化 GLFW 时,需要配置它来获取窗口大小信息。添加这一行到你的初始化函数中:
```c++
int windowWidth, windowHeight;
glfwWindowHint(GLFW_RESIZABLE, GL_TRUE); // 设置窗口可以调整大小
glfwGetWindowSize(window, &windowWidth, &windowHeight);
```
2. 初始化窗口后,可以在适当的位置更新窗口大小:
```c++
if (glfwWindowShouldClose(window)) {
// ...其他窗口关闭处理...
} else {
printf("窗口大小: %dx%d\n", windowWidth, windowHeight);
}
```
当你运行程序时,窗口大小变化时,上述代码会打印出新的窗口尺寸。
c++怎么设置glfw框架的GLFWwindow在窗口大小改变时不改变画面比例
你可以使用`glfwSetWindowAspectRatio`函数来设置`GLFWwindow`在窗口大小改变时保持画面比例不变。该函数接受两个参数:窗口句柄和纵横比。例如,在以下代码中,我们将窗口的纵横比设置为16:9:
```
glfwSetWindowAspectRatio(window, 16, 9);
```
这意味着,当窗口大小改变时,窗口的宽度和高度将保持16:9的比例不变。如果你希望窗口的大小能够任意改变,你可以将纵横比的值设置为`GLFW_DONT_CARE`:
```
glfwSetWindowAspectRatio(window, GLFW_DONT_CARE, GLFW_DONT_CARE);
```
这将允许窗口的宽度和高度任意改变,而不受比例的限制。
阅读全文