eglfs: Enable virtual desktop with EGLDevice as well
Not clear why separateScreen was overridden to true. The GBM-based backend goes with the default of false, leading to setting up the screens as virtual siblings and reporting the correct virtual desktop geometry. The difference currently lies in the OpenGL mouse cursor, which, unlike the GBM hardware cursor, does not yet support virtual desktops. Its behavior is not affected of the flag however. Task-number: QTBUG-54151 Task-number: QTBUG-55161 Task-number: QTBUG-55188 Change-Id: I888ffc43ed4add66065a2f7c606c9b3a2d56a9ab Reviewed-by: Andy Nichols <andy.nichols@qt.io> Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
This commit is contained in:
parent
c8afc67875
commit
af7b4e3f55
@ -222,11 +222,6 @@ QEglFSWindow *QEglFSKmsEglDeviceIntegration::createWindow(QWindow *window) const
|
||||
return eglWindow;
|
||||
}
|
||||
|
||||
bool QEglFSKmsEglDeviceIntegration::separateScreens() const
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
QEglFSKmsDevice *QEglFSKmsEglDeviceIntegration::createDevice(const QString &devicePath)
|
||||
{
|
||||
Q_UNUSED(devicePath)
|
||||
|
@ -61,8 +61,6 @@ public:
|
||||
bool supportsPBuffers() const Q_DECL_OVERRIDE;
|
||||
QEglFSWindow *createWindow(QWindow *window) const Q_DECL_OVERRIDE;
|
||||
|
||||
virtual bool separateScreens() const Q_DECL_OVERRIDE;
|
||||
|
||||
EGLDeviceEXT eglDevice() const { return m_egl_device; }
|
||||
|
||||
protected:
|
||||
|
@ -376,6 +376,7 @@ void QEglFSKmsDevice::createScreens()
|
||||
drmModeFreeResources(resources);
|
||||
|
||||
if (!m_integration->separateScreens()) {
|
||||
// set up a virtual desktop
|
||||
Q_FOREACH (QPlatformScreen *screen, siblings)
|
||||
static_cast<QEglFSKmsScreen *>(screen)->setVirtualSiblings(siblings);
|
||||
}
|
||||
|
@ -81,7 +81,7 @@ QEglFSKmsScreen::QEglFSKmsScreen(QEglFSKmsIntegration *integration,
|
||||
, m_powerState(PowerStateOn)
|
||||
, m_interruptHandler(new QEglFSKmsInterruptHandler(this))
|
||||
{
|
||||
m_siblings << this;
|
||||
m_siblings << this; // gets overridden by QEglFSKmsDevice later if !separateScreens
|
||||
}
|
||||
|
||||
QEglFSKmsScreen::~QEglFSKmsScreen()
|
||||
|
Loading…
Reference in New Issue
Block a user