glfwGetWindowSize和glfwGetFramebufferSize有什么区别?

Wow*_*zer 2 opengl glfw

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

所以我不太确定glfwGetWindowSize和glfwGetFramebufferSize之间有什么区别.

另外,我是否可以澄清帧缓冲区大小与屏幕坐标中窗口大小的区别?(这两个大小都在文档中提到但没有解释.此外,这两个大小分别对应于glfwGetFramebufferSize和glfwGetWindowSize).

BDL*_*BDL 5

GLFW在这里这里解释了文档中的两个坐标系.

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

与窗口坐标相比,帧缓冲区大小以像素给出,以匹配OpenGL的要求glViewport.

注意,在某些系统上,窗口坐标和像素坐标可以相同,但这不一定是真的.

  • 一般来说:是的。具有非本机分辨率的全屏应用程序也可能存在一些差异。最后,这将取决于操作系统和确切的硬件/软件配置。在编写应用程序时,您应该假设这两种大小不同。 (2认同)