Ich bin auf der Suche nach einer Möglichkeit, meine benutzerdefinierte opengl Anrufe in einem Qtquick 2.0-Element zu rendern. Um Ihnen einen Kontext zu geben: Ich habe eine C++ 3D-Engine, die OpenGL zum Rendern verwendet. Das Ziel ist es, es in einer qtquick 2.0 UI rendern zu lassen.Rendering benutzerdefinierte opengl in qt5 qtquick 2.0
Was ich herausgefunden habe, ist, dass vor qt 5.0 (qtquick 2.0) würden Sie ein QtGlWidget verwenden und das in die QDeclarativeView einbetten. Eine andere Methode, die ich gefunden habe, wäre, ein QtDeclarativeItem zu verwenden und die Methode void QDeclarativeItem :: paint (QPainter * p, const QStyleOptionGraphicsItem * o, QWidget * w) zu überschreiben.
Wie ich es verstehe, ist dies nicht mehr möglich, da QtQuick 2.0 einen neuen Renderer verwendet, der auf OpenGl basiert. Es ist daher so, wie es scheint, nicht so einfach wie das Überschreiben einer Malmethode.
Weiß jemand, wie ich ein QQuickItem implementieren würde, das das Rendern meiner Opengl-Aufrufe ermöglicht?
FBO (für: http://doc.qt.io/qt-5/qtquick-scenegraph-textureinsgnode-example.html
Ein Beispiel dafür, wie direkt aus der Szene Diagramm, um den OpenGL-Kontext zu machen finden Sie hier Qt 5.2): http://qt.apidoc.info/5.2.0/qtquick/qtquick-scenegraph-textureinsgnode-example.html Szenengraph - OpenGL unter QML (für Qt 5): http: // qt-project. org/doc/qt-5/qtquick-scenegraf-openglunderqml-beispiel.html – troyane