Я настраиваю программу, которая работает с перенасыщением, для работы с 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.