-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
None
-
4.6.1
-
None
This is how the problem is created:
see QGraphicsOpacityEffect::draw
QGraphicsOpacityEffect retrieves the source pixmap
it then starts a painter on that pixmap: QPainter pixmapPainter(&pixmap)
this detaches thte pixmap, which in the OpenGL implementation falls back to a toImage->copy->fromImage (QGLPixmapData::draw)
This can be fixed by either:
a. in QGLPixmapData, optimize ::copy to not fall back to QImage
b. in QGraphicsEffect, draw the source image and the effect's transformation to a 3rd pixmap, rather than begin a QPainter on a copy of the source pixmap