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