Add support for EGL_EXT_platform_xcb
This allows to create EGL context without involving Xlib. This extension was created a year ago and is present in Mesa since 21.0 Change-Id: Id9bcbffe8c46cb00d9cc0a9a425c1706d1b52b28 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
This commit is contained in:
parent
82b86960c0
commit
816c5de460
@ -149,6 +149,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMEROUTPUTEXTPROC) (EGLDisplay
|
||||
#define EGL_PLATFORM_X11_KHR 0x31D5
|
||||
#endif
|
||||
|
||||
#ifndef EGL_PLATFORM_XCB_KHR
|
||||
#define EGL_PLATFORM_XCB_KHR 0x31DC
|
||||
#endif
|
||||
|
||||
#ifndef EGL_NV_stream_attrib
|
||||
typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBNVPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list);
|
||||
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
|
||||
|
@ -67,7 +67,12 @@ bool QXcbEglIntegration::initialize(QXcbConnection *connection)
|
||||
|
||||
const char *extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
|
||||
|
||||
if (extensions && strstr(extensions, "EGL_EXT_platform_x11")) {
|
||||
if (extensions && (strstr(extensions, "EGL_EXT_platform_xcb") || strstr(extensions, "EGL_MESA_platform_xcb"))) {
|
||||
QEGLStreamConvenience streamFuncs;
|
||||
m_egl_display = streamFuncs.get_platform_display(EGL_PLATFORM_XCB_KHR,
|
||||
reinterpret_cast<void *>(connection->xcb_connection()),
|
||||
nullptr);
|
||||
} else if (extensions && strstr(extensions, "EGL_EXT_platform_x11")) {
|
||||
QEGLStreamConvenience streamFuncs;
|
||||
m_egl_display = streamFuncs.get_platform_display(EGL_PLATFORM_X11_KHR,
|
||||
xlib_display(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user