42 lines
1.8 KiB
Diff
42 lines
1.8 KiB
Diff
diff --git a/src/backend_mpv/MpvBackend.cpp b/src/backend_mpv/MpvBackend.cpp
|
|
index 1234567..abcdefg 100644
|
|
--- a/src/backend_mpv/MpvBackend.cpp
|
|
+++ b/src/backend_mpv/MpvBackend.cpp
|
|
@@ -36,7 +36,9 @@
|
|
# include <QX11Info> // IWYU pragma: keep
|
|
#endif
|
|
//#endif
|
|
+#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
|
|
# include <qpa/qplatformnativeinterface.h> // IWYU pragma: keep
|
|
+#endif
|
|
#endif
|
|
|
|
Q_LOGGING_CATEGORY(wekdeMpv, "wekde.mpv")
|
|
@@ -81,19 +83,24 @@ int create_gl(MPVCLientAPI* mpv, mpv_render_context** mpv_gl, mpv_opengl_init_p
|
|
#if defined(__linux__) || defined(__FreeBSD__)
|
|
if (QGuiApplication::platformName().contains("xcb")) {
|
|
params[2].type = MPV_RENDER_PARAM_X11_DISPLAY;
|
|
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
|
- // TODO: QGuiApplication::nativeInterface<QNativeInterface::QX11Application>()::display();
|
|
- // same for wayland
|
|
- auto* native = QGuiApplication::platformNativeInterface();
|
|
- params[2].data = native->nativeResourceForWindow("display", nullptr);
|
|
+ auto* x11App = qApp->nativeInterface<QNativeInterface::QX11Application>();
|
|
+ params[2].data = x11App ? x11App->display() : nullptr;
|
|
#else
|
|
params[2].data = QX11Info::display();
|
|
#endif
|
|
}
|
|
if (QGuiApplication::platformName().contains("wayland")) {
|
|
params[2].type = MPV_RENDER_PARAM_WL_DISPLAY;
|
|
+#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
|
|
+ auto* waylandApp = qApp->nativeInterface<QNativeInterface::QWaylandApplication>();
|
|
+ params[2].data = waylandApp ? waylandApp->display() : nullptr;
|
|
+#else
|
|
auto* native = QGuiApplication::platformNativeInterface();
|
|
params[2].data = native->nativeResourceForWindow("display", nullptr);
|
|
+#endif
|
|
}
|
|
#endif
|
|
int code = mpv_render_context_create(mpv_gl, mpv, params);
|