Browse Source

UI: Move QTToGSWindow outside of Qt wrappers

tytan652 2 years ago
parent
commit
4882db4ec4
3 changed files with 40 additions and 43 deletions
  1. 40 0
      UI/qt-display.cpp
  2. 0 40
      UI/qt-wrappers.cpp
  3. 0 3
      UI/qt-wrappers.hpp

+ 40 - 0
UI/qt-display.cpp

@@ -13,6 +13,14 @@
 #include <Windows.h>
 #endif
 
+#if !defined(_WIN32) && !defined(__APPLE__)
+#include <obs-nix-platform.h>
+#endif
+
+#ifdef ENABLE_WAYLAND
+#include <qpa/qplatformnativeinterface.h>
+#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)
 {

+ 0 - 40
UI/qt-wrappers.cpp

@@ -32,14 +32,6 @@
 #include <QPushButton>
 #include <QToolBar>
 
-#if !defined(_WIN32) && !defined(__APPLE__)
-#include <obs-nix-platform.h>
-#endif
-
-#ifdef ENABLE_WAYLAND
-#include <qpa/qplatformnativeinterface.h>
-#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;

+ 0 - 3
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 &