summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp')
-rw-r--r--src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
index 426fb8f4e9..3a0222db92 100644
--- a/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
+++ b/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms/qeglfskmsgbmwindow.cpp
@@ -67,7 +67,21 @@ void QEglFSKmsGbmWindow::resetSurface()
}
if (createPlatformWindowSurface) {
- m_surface = createPlatformWindowSurface(display, m_config, reinterpret_cast<void *>(m_window), nullptr);
+ QVector<EGLint> contextAttributes;
+#ifdef EGL_EXT_protected_content
+ if (platformFormat.testOption(QSurfaceFormat::ProtectedContent)) {
+ if (q_hasEglExtension(display, "EGL_EXT_protected_content")) {
+ contextAttributes.append(EGL_PROTECTED_CONTENT_EXT);
+ contextAttributes.append(EGL_TRUE);
+ qCDebug(qLcEglfsKmsDebug, "Enabled EGL_PROTECTED_CONTENT_EXT for eglCreatePlatformWindowSurfaceEXT");
+ } else {
+ m_format.setOption(QSurfaceFormat::ProtectedContent, false);
+ }
+ }
+#endif
+ contextAttributes.append(EGL_NONE);
+
+ m_surface = createPlatformWindowSurface(display, m_config, reinterpret_cast<void *>(m_window), contextAttributes.constData());
} else {
qCDebug(qLcEglfsKmsDebug, "No eglCreatePlatformWindowSurface for GBM, falling back to eglCreateWindowSurface");
m_surface = eglCreateWindowSurface(display, m_config, m_window, nullptr);