|
@@ -0,0 +1,70 @@
|
|
|
+From 3e0d5577444b32579bdf5b69d720a322322ff7bc Mon Sep 17 00:00:00 2001
|
|
|
+From: Milian Wolff <milian.wolff@kdab.com>
|
|
|
+Date: Tue, 26 Nov 2019 15:08:20 +0100
|
|
|
+Subject: [PATCH] qmlgl: ensure Qt defines GLsync to fix compile on some platforms
|
|
|
+MIME-Version: 1.0
|
|
|
+Content-Type: text/plain; charset=UTF-8
|
|
|
+Content-Transfer-Encoding: 8bit
|
|
|
+
|
|
|
+By explictly including QtGui/qopengl.h we force the code path that
|
|
|
+defines GLsync in the Qt-specific way. Without that, some platforms
|
|
|
+failed to compile the qmlgl plugin, since neither Qt nor gstreamer
|
|
|
+defined GLsync then, leading to e.g.:
|
|
|
+
|
|
|
+```
|
|
|
+make[4]: Entering directory '/.../gst-plugins-good-1.16.1/ext/qt'
|
|
|
+ CXX libgstqmlgl_la-qtitem.lo
|
|
|
+In file included from gstqtgl.h:32,
|
|
|
+ from qtitem.h:27,
|
|
|
+ from qtitem.cc:28:
|
|
|
+/.../usr/include/gstreamer-1.0/
|
|
|
+gst/gl/gstglfuncs.h:93:17: error: expected identifier before ‘*’ token
|
|
|
+ ret (GSTGLAPI *name) args;
|
|
|
+ ^
|
|
|
+/.../usr/include/gstreamer-1.0/
|
|
|
+gst/gl/glprototypes/sync.h:27:1: note: in expansion of macro
|
|
|
+‘GST_GL_EXT_FUNCTION’
|
|
|
+ GST_GL_EXT_FUNCTION (GLsync, FenceSync,
|
|
|
+ ^~~~~~~~~~~~~~~~~~~
|
|
|
+```
|
|
|
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
|
|
+Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/3e0d5577444b32579bdf5b69d720a322322ff7bc]
|
|
|
+---
|
|
|
+ ext/qt/gstqtgl.h | 18 +++++++++++-------
|
|
|
+ 1 file changed, 11 insertions(+), 7 deletions(-)
|
|
|
+
|
|
|
+--- a/ext/qt/gstqtgl.h
|
|
|
++++ b/ext/qt/gstqtgl.h
|
|
|
+@@ -22,14 +22,7 @@
|
|
|
+ #include <QtGui/qtgui-config.h>
|
|
|
+ #endif
|
|
|
+
|
|
|
+-/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
|
|
|
+- * type which confuses the preprocessor. Instead of trying to reconcile the
|
|
|
+- * two, we instead use the GLsync definition from Qt from above, and ensure
|
|
|
+- * that we don't typedef GLsync in gstglfuncs.h */
|
|
|
+ #include <gst/gl/gstglconfig.h>
|
|
|
+-#undef GST_GL_HAVE_GLSYNC
|
|
|
+-#define GST_GL_HAVE_GLSYNC 1
|
|
|
+-#include <gst/gl/gstglfuncs.h>
|
|
|
+
|
|
|
+ /* The glext.h guard was renamed in 2018, but some software which
|
|
|
+ * includes their own copy of the GL headers (such as qt) might have
|
|
|
+@@ -46,6 +39,17 @@
|
|
|
+ #endif
|
|
|
+ #endif
|
|
|
+
|
|
|
++/* pulls in GLsync, see below */
|
|
|
++#include <QtGui/qopengl.h>
|
|
|
++
|
|
|
++/* qt uses the same trick as us to typedef GLsync on GLES2 but to a different
|
|
|
++ * type which confuses the preprocessor. Instead of trying to reconcile the
|
|
|
++ * two, we instead use the GLsync definition from Qt from above, and ensure
|
|
|
++ * that we don't typedef GLsync in gstglfuncs.h */
|
|
|
++#undef GST_GL_HAVE_GLSYNC
|
|
|
++#define GST_GL_HAVE_GLSYNC 1
|
|
|
++#include <gst/gl/gstglfuncs.h>
|
|
|
++
|
|
|
+ #if defined(QT_OPENGL_ES_2)
|
|
|
+ #include <QtGui/QOpenGLContext>
|
|
|
+ #include <QtGui/QOpenGLFunctions>
|