gstglfilter.h \
gstglmixer.h \
gstglmixerpad.h \
- gstglshadervariables.h \
+ gstglshadervariables.h \
gstglshader.h \
gstgldownload.h \
gstglupload.h \
gstglapi.h \
gstglfeature.h \
gstglutils.h \
- gstglframebuffer.h
+ gstglframebuffer.h \
+ gstgl_fwd.h \
+ gl.h
libgstgl_@GST_API_VERSION@_la_CFLAGS = \
$(GL_CFLAGS) \
--- /dev/null
+/*
+ * GStreamer
+ * Copyright (C) 2013 Julien Isorce <julien.isorce@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GL_H__
+#define __GL_H__
+
+#include "gstgl_fwd.h"
+#include "gstglconfig.h"
+#include "gstglapi.h"
+#include "gstgldisplay.h"
+#include "gstglfeature.h"
+#include "gstglutils.h"
+#include "gstglwindow.h"
+#include "gstglshader.h"
+#include "gstglupload.h"
+#include "gstgldownload.h"
+#include "gstglmemory.h"
+#include "gstglbufferpool.h"
+#include "gstglframebuffer.h"
+#include "gstglfilter.h"
+#include "gstglmixer.h"
+#include "gstglshadervariables.h"
+
+#endif /* __GL_H__ */
--- /dev/null
+/*
+ * GStreamer
+ * Copyright (C) 2013 Julien Isorce <julien.isorce@gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_GL_FWD_H__
+#define __GST_GL_FWD_H__
+
+#include <gst/gst.h>
+
+#include "gstglapi.h"
+
+G_BEGIN_DECLS
+
+typedef struct _GstGLDisplay GstGLDisplay;
+typedef struct _GstGLDisplayClass GstGLDisplayClass;
+typedef struct _GstGLDisplayPrivate GstGLDisplayPrivate;
+
+typedef struct _GstGLWindow GstGLWindow;
+typedef struct _GstGLWindowPrivate GstGLWindowPrivate;
+typedef struct _GstGLWindowClass GstGLWindowClass;
+
+typedef struct _GstGLMemory GstGLMemory;
+typedef struct _GstGLAllocator GstGLAllocator;
+typedef struct _GstGLAllocatorClass GstGLAllocatorClass;
+
+typedef struct _GstGLShader GstGLShader;
+typedef struct _GstGLShaderPrivate GstGLShaderPrivate;
+typedef struct _GstGLShaderClass GstGLShaderClass;
+
+typedef struct _GstGLDownload GstGLDownload;
+typedef struct _GstGLDownloadClass GstGLDownloadClass;
+typedef struct _GstGLDownloadPrivate GstGLDownloadPrivate;
+
+typedef struct _GstGLUpload GstGLUpload;
+typedef struct _GstGLUploadClass GstGLUploadClass;
+typedef struct _GstGLUploadPrivate GstGLUploadPrivate;
+
+G_END_DECLS
+
+#endif /* __GST_GL_FWD_H__ */
# if __APPLE__
# include <OpenGL/OpenGL.h>
# include <OpenGL/gl.h>
+# include <OpenGL/glu.h>
# else
# include <GL/glu.h>
# include <GL/gl.h>
#define GSTGLAPI
#endif
-#include "glprototypes/gstgl_compat.h"
-
#include <gst/gst.h>
+#include "glprototypes/gstgl_compat.h"
+
G_BEGIN_DECLS
typedef enum {
#include "config.h"
#endif
+#include "gl.h"
#include "gstglbufferpool.h"
/**
#include <gst/video/gstvideometa.h>
#include <gst/video/gstvideopool.h>
-#include "gstgldisplay.h"
-#include "gstglmemory.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
#include "config.h"
#endif
-#include "gstglmemory.h"
-
+#include "gl.h"
#include "gstgldisplay.h"
GST_DEBUG_CATEGORY_STATIC (gst_gl_display_debug);
#ifndef __GST_GL_DISPLAY_H__
#define __GST_GL_DISPLAY_H__
-#include "gstglconfig.h"
-
-typedef struct _GstGLWindow GstGLWindow;
-
-#include "gstglwindow.h"
-#include "gstglutils.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
#define GST_IS_GL_DISPLAY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_GL_DISPLAY))
#define GST_GL_DISPLAY_CAST(obj) ((GstGLDisplay*)(obj))
-typedef struct _GstGLDisplay GstGLDisplay;
-typedef struct _GstGLDisplayClass GstGLDisplayClass;
-typedef struct _GstGLDisplayPrivate GstGLDisplayPrivate;
-
/**
* GstGLDisplayThreadFunc:
* @display: a #GstGLDisplay
#include <stdio.h>
+#include "gl.h"
#include "gstgldownload.h"
-#include "gstglmemory.h"
/**
* SECTION:gstgldownload
#include <gst/video/video.h>
#include <gst/gstmemory.h>
-#include "gstgldisplay.h"
-#include "gstglshader.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
-/* forward declare */
-typedef struct _GstGLMemory GstGLMemory;
-typedef struct _GstGLDisplay GstGLDisplay;
-
GType gst_gl_download_get_type (void);
#define GST_TYPE_GL_DOWNLOAD (gst_gl_download_get_type())
#define GST_GL_DOWNLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_DOWNLOAD,GstGLDownload))
#define GST_IS_GL_DOWNLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GL_DOWNLOAD))
#define GST_GL_DOWNLOAD_CAST(obj) ((GstGLDownload*)(obj))
-typedef struct _GstGLDownload GstGLDownload;
-typedef struct _GstGLDownloadClass GstGLDownloadClass;
-typedef struct _GstGLDownloadPrivate GstGLDownloadPrivate;
-
/**
* GstGLDownload
* @parent: the parent object
#include "config.h"
#endif
+#include "gl.h"
#include "gstglegl.h"
static const gchar *
#include <gst/gst.h>
#include <EGL/egl.h>
-#include "gstglwindow.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
#include <string.h>
+#include "gl.h"
#include "gstglfeature.h"
-#include "gstglapi.h"
-
gboolean
gst_gl_check_extension (const char *name, const gchar * ext)
{
#include <gst/gst.h>
-#include "gstgldisplay.h"
+#include "gstgl_fwd.h"
#define GST_GL_CHECK_GL_VERSION(driver_major, driver_minor, \
target_major, target_minor) \
#include <gst/base/gstbasetransform.h>
#include <gst/video/video.h>
-#include "gstglbufferpool.h"
+#include "gl.h"
G_BEGIN_DECLS
#include "config.h"
#endif
+#include "gl.h"
#include "gstglframebuffer.h"
GST_DEBUG_CATEGORY_STATIC (gst_gl_framebuffer_debug);
#ifndef __GST_GL_FRAMEBUFFER_H__
#define __GST_GL_FRAMEBUFFER_H__
-#include "gstgldisplay.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
#include <gst/video/video.h>
#include "gstglmemory.h"
-#include "gstglutils.h"
/**
* SECTION:gstglmemory
#define _GST_GL_MEMORY_H_
#include <gst/gst.h>
-#include <gst/gstmemory.h>
#include <gst/gstallocator.h>
+#include <gst/gstmemory.h>
+#include <gst/video/video.h>
-#include "gstgldisplay.h"
-#include "gstgldownload.h"
-#include "gstglupload.h"
+#include "gl.h"
G_BEGIN_DECLS
#define GST_GL_ALLOCATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GL_ALLOCATOR, GstGLAllocatorClass))
#define GST_GL_ALLOCATOR_CAST(obj) ((GstGLAllocator *)(obj))
-typedef struct _GstGLMemory GstGLMemory;
-typedef struct _GstGLAllocator GstGLAllocator;
-typedef struct _GstGLAllocatorClass GstGLAllocatorClass;
-
/**
* GstGLMemoryFlags:
*
#include <gst/video/video.h>
#include "gstglmixerpad.h"
-#include "gstglbufferpool.h"
+#include "gl.h"
G_BEGIN_DECLS
#include "config.h"
#endif
+#include "gl.h"
#include "gstglshader.h"
#ifndef GL_COMPILE_STATUS
#ifndef __GST_GL_SHADER_H__
#define __GST_GL_SHADER_H__
-#include "gstgldisplay.h"
-#include <gst/gst.h>
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
-typedef struct _GstGLDisplay GstGLDisplay;
-
#define GST_GL_TYPE_SHADER (gst_gl_shader_get_type())
#define GST_GL_SHADER(o) (G_TYPE_CHECK_INSTANCE_CAST((o), GST_GL_TYPE_SHADER, GstGLShader))
#define GST_GL_SHADER_CLASS(k) (G_TYPE_CHECK_CLASS((k), GST_GL_TYPE_SHADER, GstGLShaderClass))
GST_GL_SHADER_VERTEX_SOURCE
} GstGLShaderSourceType;
-typedef struct _GstGLShader GstGLShader;
-typedef struct _GstGLShaderPrivate GstGLShaderPrivate;
-typedef struct _GstGLShaderClass GstGLShaderClass;
-
struct _GstGLShader {
/*< private >*/
GObject parent;
#include <stdio.h>
+#include "gl.h"
#include "gstglupload.h"
-#include "gstglmemory.h"
/**
* SECTION:gstglupload
#include <gst/video/video.h>
#include <gst/gstmemory.h>
-#include "gstglshader.h"
-#include "gstgldisplay.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
-/* forward declare */
-typedef struct _GstGLMemory GstGLMemory;
-typedef struct _GstGLDisplay GstGLDisplay;
-
GType gst_gl_upload_get_type (void);
#define GST_TYPE_GL_UPLOAD (gst_gl_upload_get_type())
#define GST_GL_UPLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GL_UPLOAD,GstGLUpload))
#define GST_IS_GL_UPLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GL_UPLOAD))
#define GST_GL_UPLOAD_CAST(obj) ((GstGLUpload*)(obj))
-typedef struct _GstGLUpload GstGLUpload;
-typedef struct _GstGLUploadClass GstGLUploadClass;
-typedef struct _GstGLUploadPrivate GstGLUploadPrivate;
-
/**
* GstGLUpload
* @parent: the parent object
#include <gst/gst.h>
+#include "gl.h"
#include "gstglutils.h"
-#include "gstglfeature.h"
-#include "gstglframebuffer.h"
#ifndef GL_FRAMEBUFFER_UNDEFINED
#define GL_FRAMEBUFFER_UNDEFINED 0x8219
#ifndef __GST_GL_UTILS_H__
#define __GST_GL_UTILS_H__
-typedef struct _GstGLDisplay GstGLDisplay;
-typedef struct _GstGLShader GstGLShader;
-
#include <gst/video/video.h>
-#include "gstgldisplay.h"
-#include "gstglshader.h"
+#include "gstgl_fwd.h"
/**
* GstGLDisplayProjection:
#include <gmodule.h>
#include <stdio.h>
+#include "gl.h"
#include "gstglwindow.h"
#if GST_GL_HAVE_WINDOW_X11
#include "wayland/gstglwindow_wayland_egl.h"
#endif
-#include "gstglfeature.h"
-
#define USING_OPENGL(display) (display->gl_api & GST_GL_API_OPENGL)
#define USING_OPENGL3(display) (display->gl_api & GST_GL_API_OPENGL3)
#define USING_GLES(display) (display->gl_api & GST_GL_API_GLES)
#ifndef __GST_GL_WINDOW_H__
#define __GST_GL_WINDOW_H__
-typedef struct _GstGLDisplay GstGLDisplay;
-
#include <gst/gst.h>
-#include "gstglapi.h"
-#include "gstgldisplay.h"
+#include "gstgl_fwd.h"
G_BEGIN_DECLS
#define GST_GL_WINDOW_CB(f) ((GstGLWindowCB) (f))
#define GST_GL_WINDOW_RESIZE_CB(f) ((GstGLWindowResizeCB) (f))
-typedef struct _GstGLWindow GstGLWindow;
-typedef struct _GstGLWindowPrivate GstGLWindowPrivate;
-typedef struct _GstGLWindowClass GstGLWindowClass;
-
struct _GstGLWindow {
/*< private >*/
GObject parent;
#include <gst/video/gstvideosink.h>
#include <gst/video/video.h>
-#include "gstglbufferpool.h"
-#include <gst/gl/gstglconfig.h>
+#include "gl.h"
G_BEGIN_DECLS
#include <gst/gst.h>
#include <gst/base/gstpushsrc.h>
-#include "gstglbufferpool.h"
+#include "gl.h"
G_BEGIN_DECLS