6 #define LOC QString("EGL: ")
10 #include <EGL/eglext.h>
13 #ifndef EGL_EXT_platform_device
14 #define EGL_PLATFORM_DEVICE_EXT 0x313F
17 #ifndef EGL_EXT_platform_wayland
18 #define EGL_PLATFORM_WAYLAND_EXT 0x31D8
21 #ifndef EGL_EXT_platform_x11
22 #define EGL_PLATFORM_X11_EXT 0x31D5
59 LOG(VB_GENERAL, LOG_ERR,
LOC +
"Failed to resolve EGL functions");
70 QByteArray extensions = QByteArray(eglQueryString(
m_eglDisplay, EGL_EXTENSIONS));
71 return extensions.contains(Extension.data()->toLatin1());
85 auto CheckDisplay = [](EGLDisplay EglDisplay)
87 if (EglDisplay == EGL_NO_DISPLAY)
91 if (!eglInitialize(EglDisplay, &major, &
minor))
93 QString vendor = eglQueryString(EglDisplay, EGL_VENDOR);
94 QString apis = eglQueryString(EglDisplay, EGL_CLIENT_APIS);
95 QString
version = eglQueryString(EglDisplay, EGL_VERSION);
96 eglTerminate(EglDisplay);
97 if (!apis.contains(
"opengl", Qt::CaseInsensitive) || (major < 1 ||
minor < 2))
99 return QString(
"%1, %2").arg(vendor,
version);
102 QString extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
103 if (extensions.contains(
"EGL_EXT_platform_base"))
108 if (getdisp && extensions.contains(
"platform_x11"))
111 if (!vendor.isEmpty())
114 if (getdisp && extensions.contains(
"platform_wayland"))
117 if (!vendor.isEmpty())
120 if (getdisp && extensions.contains(
"platform_device"))
123 if (!vendor.isEmpty())
128 return CheckDisplay(eglGetDisplay(EGL_DEFAULT_DISPLAY));
137 return static_cast<qint32
>(eglGetError());
150 void *
Buffer,
const int32_t *Attributes)