Details
-
Type:
Bug
-
Status: Closed
-
Priority:
P2: Important
-
Resolution: Done
-
Affects Version/s: 5.7.1
-
Fix Version/s: 5.9.0 Beta 2
-
Component/s: GUI: OpenGL, Widgets: GraphicsView
-
Labels:None
-
Environment:Debian, GCC 6.2.1, Qt 5.7.1
Description
I'm using QGraphicsView with QOpenGLWidget as viewport. When using QOpenGLFramebufferObject::release() within QGraphicsItem::paint() the current OpenGL framebuffer is set to the system's default and not to the QOpenGLWidget's framebuffer.
QOpenGLWidgetPrivate::invokeUserPaint() sets a flag on QOpenGLContext before calling virtual QOpenGLWidget::paintGL(). QOpenGLContext::defaultFramebufferObject() then returns the QOpenGLWidget's framebuffer while in paintGL().
This initialization step seems to be missing when using QOpenGLWidget as viewport for QGraphicsView.