diff --git a/UI/qt-display.cpp b/UI/qt-display.cpp index 7444c6cb5..81652988b 100644 --- a/UI/qt-display.cpp +++ b/UI/qt-display.cpp @@ -13,6 +13,14 @@ #include #endif +#if !defined(_WIN32) && !defined(__APPLE__) +#include +#endif + +#ifdef ENABLE_WAYLAND +#include +#endif + class SurfaceEventFilter : public QObject { OBSQTDisplay *display; @@ -62,6 +70,38 @@ static inline QColor rgba_to_color(uint32_t rgba) (rgba >> 16) & 0xFF, (rgba >> 24) & 0xFF); } +static bool QTToGSWindow(QWindow *window, gs_window &gswindow) +{ + bool success = true; + +#ifdef _WIN32 + gswindow.hwnd = (HWND)window->winId(); +#elif __APPLE__ + gswindow.view = (id)window->winId(); +#else + switch (obs_get_nix_platform()) { + case OBS_NIX_PLATFORM_X11_EGL: + gswindow.id = window->winId(); + gswindow.display = obs_get_nix_platform_display(); + break; +#ifdef ENABLE_WAYLAND + case OBS_NIX_PLATFORM_WAYLAND: { + QPlatformNativeInterface *native = + QGuiApplication::platformNativeInterface(); + gswindow.display = + native->nativeResourceForWindow("surface", window); + success = gswindow.display != nullptr; + break; + } +#endif + default: + success = false; + break; + } +#endif + return success; +} + OBSQTDisplay::OBSQTDisplay(QWidget *parent, Qt::WindowFlags flags) : QWidget(parent, flags) { diff --git a/UI/qt-wrappers.cpp b/UI/qt-wrappers.cpp index c91fab5fa..3eaac324f 100644 --- a/UI/qt-wrappers.cpp +++ b/UI/qt-wrappers.cpp @@ -32,14 +32,6 @@ #include #include -#if !defined(_WIN32) && !defined(__APPLE__) -#include -#endif - -#ifdef ENABLE_WAYLAND -#include -#endif - static inline void OBSErrorBoxva(QWidget *parent, const char *msg, va_list args) { char full_message[8192]; @@ -120,38 +112,6 @@ void OBSMessageBox::critical(QWidget *parent, const QString &title, mb.exec(); } -bool QTToGSWindow(QWindow *window, gs_window &gswindow) -{ - bool success = true; - -#ifdef _WIN32 - gswindow.hwnd = (HWND)window->winId(); -#elif __APPLE__ - gswindow.view = (id)window->winId(); -#else - switch (obs_get_nix_platform()) { - case OBS_NIX_PLATFORM_X11_EGL: - gswindow.id = window->winId(); - gswindow.display = obs_get_nix_platform_display(); - break; -#ifdef ENABLE_WAYLAND - case OBS_NIX_PLATFORM_WAYLAND: { - QPlatformNativeInterface *native = - QGuiApplication::platformNativeInterface(); - gswindow.display = - native->nativeResourceForWindow("surface", window); - success = gswindow.display != nullptr; - break; - } -#endif - default: - success = false; - break; - } -#endif - return success; -} - uint32_t TranslateQtKeyboardEventModifiers(Qt::KeyboardModifiers mods) { int obsModifiers = INTERACT_NONE; diff --git a/UI/qt-wrappers.hpp b/UI/qt-wrappers.hpp index 4a45ebfc9..7ad47de27 100644 --- a/UI/qt-wrappers.hpp +++ b/UI/qt-wrappers.hpp @@ -37,7 +37,6 @@ class QComboBox; class QWidget; class QLayout; class QString; -struct gs_window; class QLabel; class QToolBar; @@ -60,8 +59,6 @@ public: void OBSErrorBox(QWidget *parent, const char *msg, ...); -bool QTToGSWindow(QWindow *window, gs_window &gswindow); - uint32_t TranslateQtKeyboardEventModifiers(Qt::KeyboardModifiers mods); QDataStream &