From a31b5bf5dac9ffc48ec89c30b60a0c67057ab5fa Mon Sep 17 00:00:00 2001 From: Laszlo Agocs Date: Fri, 8 Sep 2017 17:07:52 +0200 Subject: 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 --- .../eglfs_kms/qeglfskmsgbmscreen.cpp | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp') diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp index e8a94ed997..73342327cc 100644 --- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp +++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmscreen.cpp @@ -235,8 +235,14 @@ void QEglFSKmsGbmScreen::waitForFlip() return; QMutexLocker lock(&m_waitForFlipMutex); - while (m_gbm_bo_next) - static_cast(device())->handleDrmEvent(); + while (m_gbm_bo_next) { + 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() @@ -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(user_data); + screen->flipFinished(); +} + void QEglFSKmsGbmScreen::flipFinished() { if (m_cloneSource) { -- cgit v1.2.3