opengl - glfwGetWindowSize 和 glfwGetFramebufferSize 有什么区别?

标签 opengl glfw

我正在学习 opengl,我正在使用 glfw 库。我试图了解文档的含义是屏幕坐标和窗口的帧缓冲区。因此,我记录了这两个函数的宽度和高度输出,但它们彼此相同。

所以我不太确定 glfwGetWindowSize 和 glfwGetFramebufferSize 有什么区别。

另外,我可以澄清一下帧缓冲区大小和屏幕坐标中的窗口大小之间的区别吗? (这两种尺寸在文档中都有提及,但没有说明。另外,这两种尺寸分别对应glfwGetFramebufferSize和glfwGetWindowSize)。

最佳答案

GLFW 在文档 here 中解释了这两个坐标系和 here .

简而言之,窗口坐标是相对于监视器和/或窗口的,并且以不一定对应于真实屏幕像素的人工单位给出。激活 dpi 缩放时尤其如此(例如,在具有视网膜显示屏的 Mac 上)。

与窗口坐标相比,帧缓冲区大小以像素为单位,以匹配 glViewport 的 OpenGL 要求。

请注意,在某些系统上,窗口坐标和像素坐标可以相同,但不一定如此。

关于opengl - glfwGetWindowSize 和 glfwGetFramebufferSize 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719635/

相关文章:

c - 如何在 Xcode 中为命令行工具程序创建 .app 文件

java - 透明度顶点顺序

c++ - fatal error C1083 : Cannot open include file: 'GL/glew.h' : No such file or directory

c++ - 如果在着色器中未使用绑定(bind)属性位置,是否会有惩罚?

c++ - Qt 5.5.0 找不到 OpenGL 函数

opengl - 使用 OpenGL 用不同的图像对立方体进行纹理化

c - glfw - key_callback 中的 realloc 可能吗?

c - 当我在我的代码中指定了一个头文件时,为什么我需要在我的 gcc 编译命令中指定一个库?

c - GLFW3 : warning: implicit declaration of function ‘glGenBuffers’

OpenGL 拉伸(stretch)形状 - 纵横比