1From 329c2a748739ddd5d025a44c1c69b11b5257c370 Mon Sep 17 00:00:00 2001 2From: Jeffy Chen <jeffy.chen@rock-chips.com> 3Date: Thu, 14 Mar 2019 20:28:34 +0800 4Subject: [PATCH 12/28] eglfs_kms: Support EGL platform display 5 6Conflicts: 7 src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_support/qeglfskmsscreen.cpp 8 9Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> 10Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com> 11--- 12 .../eglfs/api/qeglfsdeviceintegration.cpp | 18 +++++++++++++++++- 13 1 file changed, 17 insertions(+), 1 deletion(-) 14 15diff --git a/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp b/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp 16index b985386a..a9a9521f 100644 17--- a/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp 18+++ b/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp 19@@ -192,7 +192,23 @@ EGLNativeDisplayType QEglFSDeviceIntegration::platformDisplay() const 20 21 EGLDisplay QEglFSDeviceIntegration::createDisplay(EGLNativeDisplayType nativeDisplay) 22 { 23- return eglGetDisplay(nativeDisplay); 24+ EGLDisplay display; 25+ 26+ PFNEGLGETPLATFORMDISPLAYEXTPROC get_platform_display = 27+ reinterpret_cast<PFNEGLGETPLATFORMDISPLAYEXTPROC>(eglGetProcAddress("eglGetPlatformDisplayEXT")); 28+ 29+ if (get_platform_display) { 30+ display = get_platform_display(EGL_PLATFORM_GBM_KHR, 31+ nativeDisplay, Q_NULLPTR); 32+ } else { 33+ qWarning("EGL_EXT_platform_device not available, falling back to legacy path!"); 34+ display = eglGetDisplay(nativeDisplay); 35+ } 36+ 37+ if (Q_UNLIKELY(display == EGL_NO_DISPLAY)) 38+ qFatal("Could not get EGL display"); 39+ 40+ return display; 41 } 42 43 bool QEglFSDeviceIntegration::usesDefaultScreen() 44-- 452.20.1 46 47