Рендиране на OpenGL към QML елемент

Имам QML файл, който съдържа оформление на QML елементи и сега искам един от тези елементи да бъде QGLWidget. т.е. искам да изобразя на конкретен QML елемент.

Някой знае ли как се прави това?


person blueskin    schedule 14.10.2011    source източник


Отговори (1)


Предполагам, че най-простият начин е да се предостави на 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.

Тази тема ще ви даде друга информация.

person Luca Carlon    schedule 16.10.2011