我正在尝试使用GLFW和OpenGL 3.3创建游戏/应用程序。我希望能够检测到窗口两侧的碰撞,但似乎窗口的可绘制区域与使用glfwCreateWindow()
的窗口大小不同。
所以我的问题是,如何获得可绘制区域,即。窗户的大小减去边界?我宁愿不必使用WinAPI以使其更具跨平台性,glfwGetWindowFrameSize()
在GLFW 3.1中,但尚未完成。
编辑:我的问题让我觉得我需要使用GLFW来做到这一点,但事实并非如此。我只是想说明我正在使用GLFW作为窗口/输入处理程序。
答案 0 :(得分:4)
glfwGetVideoMode
返回指定监视器的视频模式,而不是窗口的大小。对于全屏窗口,它们恰好相同,但对于其他窗口,它们可能会非常不同。
答案 1 :(得分:0)
从它的外观来看,你不需要知道窗口的大小,我假设是像素?如果你想用窗口的边界进行碰撞检测,你只需要检测你的顶点的NDC,一旦它到达x或y =(-1,1),你就会发生碰撞。尽管如此,如果您想获得OpenGL上下文的像素大小,请使用glfwGetVideoMode()
。