Предупреждение: #warning qopenglfunctions.h несовместим с GLEW, определения GLEW будут неопределенными [-Wcpp]

Я настраиваю программу, которая работает с перенасыщением, для работы с Qt. Я использую Qt 5.1.1. и кажется, что некоторые функциональные возможности openGL были потеряны из Qt4 в Qt5. В моей программе я создаю QOpenGLContext и пытаюсь выполнить рендеринг в QWindow с использованием vbo. Часть vbo работает нормально.

Некоторые другие части программы зависят от glew. Я получаю следующее предупреждение при запуске программы

#warning qopenglfunctions.h is not compatible with GLEW, GLEW defines will be undefined  [-Wcpp]
#warning To use GLEW with Qt, do not include <qopengl.h> or <QOpenGLFunctions> after glew.h [-Wcpp]

Вывод на экран черный.

Когда я закомментирую строку

glBindBuffer(GL_PIXEL_UNPACK_BUFFER, vboId);

который отправляет pbo в текстуру, на экран выводится случайное изображение. Я предполагаю, что это случайное изображение хранится в памяти, к которой я пытаюсь получить доступ.

Очевидно, что вы не можете использовать функции glew и qopengl вместе.

Если вы хотите предложить мне использовать QGLWidget, а не QopenGLContext с QWindow, объясните мне, как использовать QGLWidget с cmake в Qt 5.1.1. Я прочитал множество ответов, предполагающих это, но ни один из них не работает в Qt 5.1.1.


person Community    schedule 10.12.2013    source источник
comment
github.com/YuvalNirkin/face_swap/issues/24 здесь кто-то говорит игнорировать это   -  person noel av    schedule 17.06.2018


Ответы (1)


Публикую как ответ, потому что недостаточно представителей для комментариев.

Чтобы использовать GLEW с Qt, не включайте ‹qopengl.h› или ‹QOpenGLFunctions› после glew.h [-Wcpp]

Как следует из предупреждения, вы должны опустить директивы включения QOpenGLFunctions в пользу включения GLEW.

Изменить: после некоторых дополнительных исследований было обнаружено, что QT включает заголовок QOpenGLFunctions где-то во внутреннем файле. Я должен буду протестировать обходной путь сам, вернусь.

Редактировать: Общее обновление, и, по-видимому, люди неверно истолковали этот пост как оскорбительный и грубый.

person Lisoph    schedule 22.09.2014
comment
Привет @Lisoph Какой обходной путь вы упомянули, и сработало ли оно? - person Barry Rogerson; 14.09.2020
comment
Привет @BarryRogerson, я не думаю, что мне удалось найти рабочий обходной путь, по крайней мере, я не помню, чтобы я это делал. Прошло 6 лет, а память у меня ужасная :С - person Lisoph; 22.09.2020