如何删除在没有相应makeCurrent()的情况下调用的QOpenGLContext::swapBuffers()



如何在调试/发布模式下停止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文档

相关内容

  • 没有找到相关文章

最新更新