Details
-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
None
-
5.0.0
-
None
-
Any egl single full screen / null window surface implementations - TI, freescale etc. Primarily ARM, have not check the Mesa/Weston backends.
Description
When used in platforms that support only one window/surface, and therefore do not expose Capability::MultipleWindows, one surface should be created and shared. In current implementation 2 places are noted that call window/surface create repeatedly (for example, when opening a new menu item in browser application):
1. from void QEglFSBackingStore::makeCurrent()
{
// needed to prevent QOpenGLContext::makeCurrent() from failing
window()->setSurfaceType(QSurface::OpenGLSurface);
(static_cast<QEglFSWindow *>(window()>handle()))>create();
2. from QEglFSWindow::QEglFSWindow constructor.
Though the platform plugin returns 0 windowId always, as there is no check for the platform capability for creation of multiple window/surfaces, the egl call fails resulting in application exit.
The correct fix would be to fix the makeCurrent implementation that does not look kosher. We should not be creating new windows only to make the context current. The attached patch is a temporary work around till this is sorted out.
Ofcourse there is an alternative to this - just use the minimalegl with the input event handling/cursor added to it, but there are other limitations in minimalegl as well.
Patch also available at https://github.com/prabindh/qt-configs/