为什么Windows 8.1和freeglut不适合在窗口中调用draw(窗口截断)



在运行这些OpenGL示例时,我遇到了一些不希望的行为(单击下载以访问visual studio解决方案)。所有内容都能正确编译,但在运行教程3时,窗口会截断三角形的顶部和右侧。(此处显示)

我以前在Ubuntu和Mac上运行过这个演示,没有遇到任何问题。我没有在Windows7或更低版本上尝试过。我从来没有修改过代码或项目。此外,当我将freeglut带入全屏时,三角形根本没有被截断。

我是错过了什么,还是这是使用windows 8和freeglut的新挫折?其他人有这个问题吗?

很可能是一个bug。在Windows中,指定窗口的大小时,该大小包括系统边框。因此,有效的客户端区域(屏幕截图中的黑色区域)小于请求的原始大小,并且此问题会传播到glViewport。当这两者不匹配时,你会经历这些切割。

有两个修复的机会i对自由供过于求进行调整,使其正确地尊重客户区域请求的窗口大小ii调整glviewport以符合实际客户端区域。

最新更新