如何使用GLFW确定OpenGL 3.3窗口的可绘制区域的大小

时间:2014-10-04 22:09:48

标签: c++ glfw opengl-3

我正在尝试使用GLFW和OpenGL 3.3创建游戏/应用程序。我希望能够检测到窗口两侧的碰撞,但似乎窗口的可绘制区域与使用glfwCreateWindow()的窗口大小不同。

所以我的问题是,如何获得可绘制区域,即。窗户的大小减去边界?我宁愿不必使用WinAPI以使其更具跨平台性,glfwGetWindowFrameSize()在GLFW 3.1中,但尚未完成。

编辑:我的问题让我觉得我需要使用GLFW来做到这一点,但事实并非如此。我只是想说明我正在使用GLFW作为窗口/输入处理程序。

2 个答案:

答案 0 :(得分:4)

你想要glfwGetFramebufferSize

glfwGetVideoMode返回指定监视器的视频模式,而不是窗口的大小。对于全屏窗口,它们恰好相同,但对于其他窗口,它们可能会非常不同。

答案 1 :(得分:0)

从它的外观来看,你不需要知道窗口的大小,我假设是像素?如果你想用窗口的边界进行碰撞检测,你只需要检测你的顶点的NDC,一旦它到达x或y =(-1,1),你就会发生碰撞。尽管如此,如果您想获得OpenGL上下文的像素大小,请使用glfwGetVideoMode()