Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.13.0, 5.13.1
-
None
-
-
f39230fcac4de01f26945bde16c3a10c5ac74afb (qt/qtbase/5.15) 0912459c9d3f2433aae10cb569f1020868edaeb5 (qt/qtbase/5.12)
Description
Resizing any GL widget, such as QOpenGLWidget or QQuickWidget, causes the position of the window's to stutter. This is jarring when resizing any window with more than minimal painting load. See https://youtu.be/0Qjy2wm6m9M for example with basic widget and jarring effect with substantial but optimized child content.
Maybe there is at least some workaround to synchronize rendering somewhere?
Example 1 with QQuickWidget (run and rapidly resize window using lower-right-hand corner):
app = QApplication(sys.argv) mw = QQuickWidget() mw.show() app.exec()
Example 2 with QOpenGLWidget (run and rapidly resize window using lower-right-hand corner)
class Widget(QOpenGLWidget):
def paintEvent(self, e):
p = QPainter(self)
p.setBrush(Qt.red)
p.drawRect(self.rect())
app = QApplication(sys.argv)
mw = Widget()
mw.show()
app.exec()
Attachments
For Gerrit Dashboard: QTBUG-79139 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
278235,4 | macOS: Skip NSOpenGLContext flush if window exposed size is out of sync | 5.14 | qt/qtbase | Status: MERGED | +2 | 0 |
290650,2 | macOS: Skip NSOpenGLContext flush if window exposed size is out of sync | 5.12 | qt/qtbase | Status: MERGED | +2 | 0 |