| 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> |