Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.12, 5.14
-
None
-
-
331e2effa7 (qt/qtdeclarative/dev)
Description
QSGGuiThreadRenderLoop::renderWindow uses a single shared QOpenGLContext for all windows, that is set up on first creation with:
gl->setFormat(window->requestedFormat()); gl->setScreen(window->screen());
This is a problem is subsequent windows are rendered where the screen or surface format doesn't match. For example if the first window doesn't have an alpha, while the second window does, the GL context (on macOS e.g.) is setup without an NSOpenGLPFAAlphaSize, resulting in the second window not being transparent but instead black.
Attachments
Issue Links
- blocks
-
QTBUG-106707 WebAssembly: Can't use multiple canvases/screens for multiple QQuickViews
- Closed
- resulted from
-
QTBUG-75101 When a window is has a transparent background then it will not be rendered correctly and will be rendered black instead
- Closed
For Gerrit Dashboard: QTBUG-80508 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
434340,7 | Make basic render loop use a dedicated QRhi per window | dev | qt/qtdeclarative | Status: MERGED | +2 | 0 |