Как удалить QOpenGLContext::swapBuffers(), вызванный без соответствующего makeCurrent()

Как я могу остановить это предупреждение в Qt 5.4.1 в режиме отладки / выпуска.

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

Появляется только в режиме отладки, но с релизным режимом все в порядке с VS2010. Он появляется в обоих режимах (Debug & Release) с QtCreator.

Я пробовал так много способов удалить его, но безуспешно, искал в Google, но не смог найти никакой полезной информации.

Plateform: Windows 8.1 - VS2010 - Qt_Creator Nvidia GTX 765

Благодарю.

2 ответа

Решение

Серьезный ответ: отправив сообщение об ошибке разработчикам Qt. призвание SwapBuffers для рисования без привязки к нему контекста OpenGL - это прекрасно. На самом деле SwapBuffers не принадлежит контексту OpenGL, а окну, поэтому этот метод помещается в QGLContext сам по себе большой провал дизайна.


Персональная напыщенная речь (в надежде, что некоторые разработчики Qt увидят это, в конце концов):

Этим ребятам (как и любому другому сообществу разработчиков инструментария, у меня сложилось впечатление) действительно нужна летняя школа о том, как работает OpenGL и что вы должны и не должны делать. Я не знаю ни одного инструментария, который бы правильно управлял контекстом OpenGL. Если бы разработка инструментария не была такой большой работой, я бы пошел: "Хорошо, я разработаю свой собственный инструментарий с графическим интерфейсом, с блэкджеком и проститутками…"

Вы должны исправить свой код, вместо того, чтобы подавлять предупреждение. Вы можете показать SSCCE, если хотите получить подсказки от сообщества.

Но если вы все еще хотите подавить предупреждения, вам нужно следовать документации Qt

Другие вопросы по тегам