gl: do not include GL headers in public gstgl headers

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
This commit is contained in:
Julien Isorce 2017-07-07 16:15:12 +01:00
parent 5c8d4271d6
commit a4d74fda9a
4 changed files with 6 additions and 1 deletions

View 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) \

View file

@ -27,6 +27,8 @@
#include "config.h"
#endif
#include <gst/gl/gstglfuncs.h>
#include "gstgtkglsink.h"
#include "gtkgstglwidget.h"

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

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