如何在调试/发布模式下停止Qt 5.4.1中的此警告。
QOpenGLContext::swapBuffers() called without corresponding makeCurrent()
它只出现在调试模式下,但VS2010的发布模式可以。它与QtCreator一起出现在两种模式(调试和发布)中。
我尝试了很多方法来删除它,但没有成功,搜索了谷歌,但找不到任何有用的信息。
平板电脑:Windows 8.1-VS2010-Qt_Creator Nvidia GTX 765
谢谢。
严肃的回答:通过向Qt开发人员提交错误报告。在不绑定OpenGL上下文的drawinable上调用SwapBuffers
是完全可以的。实际上SwapBuffers
不属于OpenGL上下文,而是属于窗口,因此将该方法放在QGLContext
中本身就是一个很大的设计失败。
个人咆哮(希望一些Qt开发者最终会看到):
这些家伙(就像我印象中的其他工具包开发社区一样)真的需要一些关于OpenGL如何工作以及你应该做什么和不应该做什么的暑期学校。我知道没有一个工具包能够正确地管理OpenGL上下文。如果开发一个工具包不是一项艰巨的工作,我会说"好吧,我会用Blackjack和hookers开发我自己的GUI工具包…"
您应该修复代码,而不是抑制警告。如果你想从社区得到一些提示,你可以展示一个SSCCE。
但是,如果您仍然想抑制警告,则需要遵循Qt文档