eglfs_kms: Remove unused virtuals and move flip callback
...to the screen, where it belongs. Task-number: QTBUG-63088 Change-Id: I4bfc4c259f91431d12851f888a7d044e43856d63 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
This commit is contained in:
parent
6ada5f876e
commit
a31b5bf5da
@ -53,17 +53,6 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug)
|
Q_DECLARE_LOGGING_CATEGORY(qLcEglfsKmsDebug)
|
||||||
|
|
||||||
void QEglFSKmsGbmDevice::pageFlipHandler(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data)
|
|
||||||
{
|
|
||||||
Q_UNUSED(fd);
|
|
||||||
Q_UNUSED(sequence);
|
|
||||||
Q_UNUSED(tv_sec);
|
|
||||||
Q_UNUSED(tv_usec);
|
|
||||||
|
|
||||||
QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(user_data);
|
|
||||||
screen->flipFinished();
|
|
||||||
}
|
|
||||||
|
|
||||||
QEglFSKmsGbmDevice::QEglFSKmsGbmDevice(QKmsScreenConfig *screenConfig, const QString &path)
|
QEglFSKmsGbmDevice::QEglFSKmsGbmDevice(QKmsScreenConfig *screenConfig, const QString &path)
|
||||||
: QEglFSKmsDevice(screenConfig, path)
|
: QEglFSKmsDevice(screenConfig, path)
|
||||||
, m_gbm_device(Q_NULLPTR)
|
, m_gbm_device(Q_NULLPTR)
|
||||||
@ -138,17 +127,6 @@ void QEglFSKmsGbmDevice::destroyGlobalCursor()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QEglFSKmsGbmDevice::handleDrmEvent()
|
|
||||||
{
|
|
||||||
drmEventContext drmEvent;
|
|
||||||
memset(&drmEvent, 0, sizeof(drmEvent));
|
|
||||||
drmEvent.version = 2;
|
|
||||||
drmEvent.vblank_handler = nullptr;
|
|
||||||
drmEvent.page_flip_handler = pageFlipHandler;
|
|
||||||
|
|
||||||
drmHandleEvent(fd(), &drmEvent);
|
|
||||||
}
|
|
||||||
|
|
||||||
QPlatformScreen *QEglFSKmsGbmDevice::createScreen(const QKmsOutput &output)
|
QPlatformScreen *QEglFSKmsGbmDevice::createScreen(const QKmsOutput &output)
|
||||||
{
|
{
|
||||||
QEglFSKmsGbmScreen *screen = new QEglFSKmsGbmScreen(this, output, false);
|
QEglFSKmsGbmScreen *screen = new QEglFSKmsGbmScreen(this, output, false);
|
||||||
|
@ -65,8 +65,6 @@ public:
|
|||||||
QPlatformCursor *globalCursor() const;
|
QPlatformCursor *globalCursor() const;
|
||||||
void destroyGlobalCursor();
|
void destroyGlobalCursor();
|
||||||
|
|
||||||
void handleDrmEvent();
|
|
||||||
|
|
||||||
QPlatformScreen *createScreen(const QKmsOutput &output) override;
|
QPlatformScreen *createScreen(const QKmsOutput &output) override;
|
||||||
QPlatformScreen *createHeadlessScreen() override;
|
QPlatformScreen *createHeadlessScreen() override;
|
||||||
void registerScreenCloning(QPlatformScreen *screen,
|
void registerScreenCloning(QPlatformScreen *screen,
|
||||||
@ -79,12 +77,6 @@ private:
|
|||||||
gbm_device *m_gbm_device;
|
gbm_device *m_gbm_device;
|
||||||
|
|
||||||
QEglFSKmsGbmCursor *m_globalCursor;
|
QEglFSKmsGbmCursor *m_globalCursor;
|
||||||
|
|
||||||
static void pageFlipHandler(int fd,
|
|
||||||
unsigned int sequence,
|
|
||||||
unsigned int tv_sec,
|
|
||||||
unsigned int tv_usec,
|
|
||||||
void *user_data);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
@ -125,8 +125,7 @@ QPlatformCursor *QEglFSKmsGbmIntegration::createCursor(QPlatformScreen *screen)
|
|||||||
void QEglFSKmsGbmIntegration::presentBuffer(QPlatformSurface *surface)
|
void QEglFSKmsGbmIntegration::presentBuffer(QPlatformSurface *surface)
|
||||||
{
|
{
|
||||||
QWindow *window = static_cast<QWindow *>(surface->surface());
|
QWindow *window = static_cast<QWindow *>(surface->surface());
|
||||||
QEglFSKmsScreen *screen = static_cast<QEglFSKmsScreen *>(window->screen()->handle());
|
QEglFSKmsGbmScreen *screen = static_cast<QEglFSKmsGbmScreen *>(window->screen()->handle());
|
||||||
|
|
||||||
screen->flip();
|
screen->flip();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -235,8 +235,14 @@ void QEglFSKmsGbmScreen::waitForFlip()
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
QMutexLocker lock(&m_waitForFlipMutex);
|
QMutexLocker lock(&m_waitForFlipMutex);
|
||||||
while (m_gbm_bo_next)
|
while (m_gbm_bo_next) {
|
||||||
static_cast<QEglFSKmsGbmDevice *>(device())->handleDrmEvent();
|
drmEventContext drmEvent;
|
||||||
|
memset(&drmEvent, 0, sizeof(drmEvent));
|
||||||
|
drmEvent.version = 2;
|
||||||
|
drmEvent.vblank_handler = nullptr;
|
||||||
|
drmEvent.page_flip_handler = pageFlipHandler;
|
||||||
|
drmHandleEvent(device()->fd(), &drmEvent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void QEglFSKmsGbmScreen::flip()
|
void QEglFSKmsGbmScreen::flip()
|
||||||
@ -298,6 +304,17 @@ void QEglFSKmsGbmScreen::flip()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QEglFSKmsGbmScreen::pageFlipHandler(int fd, unsigned int sequence, unsigned int tv_sec, unsigned int tv_usec, void *user_data)
|
||||||
|
{
|
||||||
|
Q_UNUSED(fd);
|
||||||
|
Q_UNUSED(sequence);
|
||||||
|
Q_UNUSED(tv_sec);
|
||||||
|
Q_UNUSED(tv_usec);
|
||||||
|
|
||||||
|
QEglFSKmsGbmScreen *screen = static_cast<QEglFSKmsGbmScreen *>(user_data);
|
||||||
|
screen->flipFinished();
|
||||||
|
}
|
||||||
|
|
||||||
void QEglFSKmsGbmScreen::flipFinished()
|
void QEglFSKmsGbmScreen::flipFinished()
|
||||||
{
|
{
|
||||||
if (m_cloneSource) {
|
if (m_cloneSource) {
|
||||||
|
@ -66,14 +66,21 @@ public:
|
|||||||
const QVector<QPlatformScreen *> &screensCloningThisScreen);
|
const QVector<QPlatformScreen *> &screensCloningThisScreen);
|
||||||
|
|
||||||
void waitForFlip() override;
|
void waitForFlip() override;
|
||||||
void flip() override;
|
|
||||||
void flipFinished() override;
|
void flip();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
void flipFinished();
|
||||||
void ensureModeSet(uint32_t fb);
|
void ensureModeSet(uint32_t fb);
|
||||||
void cloneDestFlipFinished(QEglFSKmsGbmScreen *cloneDestScreen);
|
void cloneDestFlipFinished(QEglFSKmsGbmScreen *cloneDestScreen);
|
||||||
void updateFlipStatus();
|
void updateFlipStatus();
|
||||||
|
|
||||||
|
static void pageFlipHandler(int fd,
|
||||||
|
unsigned int sequence,
|
||||||
|
unsigned int tv_sec,
|
||||||
|
unsigned int tv_usec,
|
||||||
|
void *user_data);
|
||||||
|
|
||||||
gbm_surface *m_gbm_surface;
|
gbm_surface *m_gbm_surface;
|
||||||
|
|
||||||
gbm_bo *m_gbm_bo_current;
|
gbm_bo *m_gbm_bo_current;
|
||||||
|
@ -203,14 +203,6 @@ void QEglFSKmsScreen::waitForFlip()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void QEglFSKmsScreen::flip()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void QEglFSKmsScreen::flipFinished()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void QEglFSKmsScreen::restoreMode()
|
void QEglFSKmsScreen::restoreMode()
|
||||||
{
|
{
|
||||||
m_output.restoreMode(m_device);
|
m_output.restoreMode(m_device);
|
||||||
|
@ -90,8 +90,6 @@ public:
|
|||||||
QKmsDevice *device() const { return m_device; }
|
QKmsDevice *device() const { return m_device; }
|
||||||
|
|
||||||
virtual void waitForFlip();
|
virtual void waitForFlip();
|
||||||
virtual void flip();
|
|
||||||
virtual void flipFinished();
|
|
||||||
|
|
||||||
QKmsOutput &output() { return m_output; }
|
QKmsOutput &output() { return m_output; }
|
||||||
void restoreMode();
|
void restoreMode();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user