On 20/11/2014 16:32, Jonathan Poncelet wrote:
Hi all,

I'm attempting to use the QGLPainter from Qt3D with Qt 5.4's new QOpenGLWidget - I was originally making do with QGLWidget from the previous Qt version but I was running into trouble with putting widgets, buttons, etc. on top of the GL widget, which is something I need to do. I'm fairly familiar with the Qt3D library but not so much on the in-depth side, and right now if I call begin() on a QGLPainter I create in the QOpenGLWidget's paintGL() function, I get the following messages output before the program crashes:

/Attempt to cast non-window surface/
/Attempt to activate GL window surface on bad context/
/
/
I've tried various things - calling begin() and passing the widget's GL context doesn't have any effect, and the function won't accept the context's QSurface as it's expecting a QGLSurface. Is there any way to get QGLPainter working with the new QOpenGLWidget, or will I have to stick with QGLWidget?
The old Qt3D is no longer being developed or maintained so please do not use it. We are busy rewriting Qt3D but in it's current state it is not possible to overlay widgets over a Qt3D window. This is in the feature roadmap however.

It sounds like you just need to use QOpenGLWidget which allows compositing widgets on top of the contained OpenGL content. Alternatively if you want to overlay Qt Quick 2 UI on top of GL you can use the QQuickWindow::beforeRendering() signal. See the openglunderqml example to see how to do this.

Cheers,

Sean

--
Dr Sean Harmer | sean.har...@kdab.com | Managing Director UK
Klarälvdalens Datakonsult AB, a KDAB Group company
Tel. Sweden (HQ) +46-563-540090, USA +1-866-777-KDAB(5322)
KDAB - Qt Experts - Platform-independent software solutions

_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to