OpenGL рендеринг в элемент QML - PullRequest
6 голосов
/ 14 октября 2011

У меня есть файл QML, который содержит макет элементов QML, и теперь я хочу, чтобы один из этих элементов был QGLWidget. я хочу визуализировать определенный элемент QML.

Кто-нибудь знает, как это сделать?

1 Ответ

3 голосов
/ 16 октября 2011

Я предполагаю, что это самый простой способ предоставить QML новый пользовательский компонент, реализованный на C ++. Я не мог найти ничего готового.

Вы можете создать подкласс QDeclarativeItem и реализовать свой код OpenGL в функции рисования после использования функции QPainter :: beginNative () . После этого вы можете «экспортировать» ваш новый пользовательский элемент в QML таким образом . Это довольно просто и должно работать, но вам нужно настроить окно просмотра вашего QDeclarativeView, чтобы оно было QGLWidget, примерно так:

QDeclarativeView view;
// This is needed because OpenGL viewport doesn't support partial updates.
view.setViewportUpdateMode(QGraphicsView::FullViewportUpdateMode);
view.setViewport(new QGLWidget);

или вам придется использовать графическую систему opengl для всего приложения. Другой способ - использование QML / 3D .

Эта тема даст вам некоторую другую информацию.

...