Search code examples
qtopenglqt-creatorqglwidget

How to remove QOpenGLContext::swapBuffers() called without corresponding makeCurrent()


How can I stop this warning in Qt 5.4.1 in Debug/Release mode.

QOpenGLContext::swapBuffers() called without corresponding makeCurrent()

It only appears in debug mode, but release mode is fine with VS2010. It appears in both modes (Debug & Release) with QtCreator.

I have tried so many ways to remove it but no success, searched google but couldn't find any useful info.

Plateform: Windows 8.1- VS2010- Qt_Creator Nvidia GTX 765

Thanks.


Solution

  • Serious answer: By filing a bug report with the Qt developers. Calling SwapBuffers on a drawable without a OpenGL context bound to it is perfectly fine. Actually SwapBuffers does not belong to the OpenGL context but to the window, so having that method placed in QGLContext is a big design failure itself.


    Personal rant (in the hope some Qt devs are going to see it, eventually):

    These guys (like every other toolkit developer community I got the impression) really need some summer school in how OpenGL works and what you should and should not do. I know of no toolkit that gets OpenGL context management right. If developing a toolkit wasn't such a huge amount of work I'd go "Fine, I'll develop my own GUI toolkit, with Blackjack and hookers…"