gl: do not include GL headers in public gstgl headers
authorJulien Isorce <jisorce@oblong.com>
Fri, 7 Jul 2017 15:15:12 +0000 (16:15 +0100)
committerJulien Isorce <jisorce@oblong.com>
Tue, 22 Aug 2017 09:00:19 +0000 (10:00 +0100)
Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779

ext/gtk/Makefile.am
ext/gtk/gstgtkglsink.c
ext/gtk/gtkgstglwidget.c
tests/examples/gtk/glliveshader.c

index 7736b24..3490625 100644 (file)
@@ -27,7 +27,8 @@ libgstgtk_la_CFLAGS = \
        $(GTK3_CFLAGS) \
        $(GST_CFLAGS) \
        $(GST_BASE_CFLAGS) \
-       $(GST_PLUGINS_BASE_CFLAGS)
+       $(GST_PLUGINS_BASE_CFLAGS) \
+       $(GL_CFLAGS)
 libgstgtk_la_LIBADD = \
        $(GTK3_LIBS) \
        $(GST_BASE_LIBS) \
index 5632688..39b54fa 100644 (file)
@@ -27,6 +27,8 @@
 #include "config.h"
 #endif
 
+#include <gst/gl/gstglfuncs.h>
+
 #include "gstgtkglsink.h"
 #include "gtkgstglwidget.h"
 
index ea0fe2f..2423afc 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "gtkgstglwidget.h"
 #include "gstgtkutils.h"
+#include <gst/gl/gstglfuncs.h>
 #include <gst/video/video.h>
 
 #if GST_GL_HAVE_WINDOW_X11 && GST_GL_HAVE_PLATFORM_GLX && defined (GDK_WINDOWING_X11)
index 5a71bc3..03e745e 100644 (file)
@@ -20,6 +20,7 @@
 
 #include <gst/gst.h>
 #include <gst/gl/gl.h>
+#include <gst/gl/gstglfuncs.h>
 #include <gtk/gtk.h>
 #if GST_GL_HAVE_WINDOW_X11
 #include <X11/Xlib.h>