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