QGLWidget всегда имеет недопустимый контекст

У меня есть производный класс QGLWidget, но независимо от того, какой QGLFormat я пытаюсь установить, контекст возвращается как недействительный, когда я вызываю isValid ().

GLWidget::GLWidget(const QGLFormat& glFormat, QWidget* parent)
:QGLWidget(glFormat, parent)
{

//basically just debug output here

}

Я создаю свой виджет так:

QGLFormat glFormat;
glFormat.setSwapInterval(1);
glFormat.setVersion(2, 0);
glFormat.setStencil(true);
glFormat.setStencilSize(8);
glFormat.setProfile(QGLFormat::CompatibilityProfile);

GLWidget * glView = new GLWidget(glFormat, w); //w is the QGraphicsView
w->setViewport(glView);

Этот код кросс-скомпилирован для Linux, и я не знаю много о самом оборудовании. Я знаю, что поддерживается сам OpenGL ES 2.0 (я это проверял), хотя я не уверен, что приведенный выше код — это то, как я генерирую контекст с OpenGL ES 2.0. РЕДАКТИРОВАТЬ: Что странно, что я могу позвонить QGLFormat::openGLVersionFlags ()и это возвращает 2048 (OpenGL ES 2.0), но ссылка на класс говорит:

Определяет во время выполнения, какие версии OpenGL поддерживаются
текущая платформа. Обратите внимание, что если поддерживается версия 1.5 OpenGL,
его предшественники (т.е. версия 1.4 и ниже) также поддерживаются. к
определить поддержку конкретной функции, такой как мульти-текстурирование,
проверить версию, в которой эта функция была впервые представлена ​​(т.е.
версия 1.3 в случае мультитекстурирования) для адаптации к самой большой
возможная группа платформ времени выполнения. Эта функция нуждается в действительном
текущий контекст OpenGL для работы; в противном случае он вернется
OpenGL_Version_None.
Эта функция была введена в Qt 4.2.

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

Любая помощь будет принята с благодарностью.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]