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:
Laszlo Agocs 2016-08-08 10:42:28 +02:00
parent c8afc67875
commit af7b4e3f55
4 changed files with 2 additions and 8 deletions

View File

@ -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)

View File

@ -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:

View File

@ -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);
}

View File

@ -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()