From c6c7f421e38f0c57153f02a38c46cf0666a41f25 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Thu, 27 Oct 2016 16:19:04 +1100 Subject: [PATCH] glfeature: move internal functions into a private header Don't expose them to the outside world --- gst-libs/gst/gl/Makefile.am | 1 + gst-libs/gst/gl/gstglcontext.c | 1 + gst-libs/gst/gl/gstglfeature.c | 1 + gst-libs/gst/gl/gstglfeature.h | 58 +------------ gst-libs/gst/gl/gstglfeature_private.h | 108 +++++++++++++++++++++++++ 5 files changed, 113 insertions(+), 56 deletions(-) create mode 100644 gst-libs/gst/gl/gstglfeature_private.h diff --git a/gst-libs/gst/gl/Makefile.am b/gst-libs/gst/gl/Makefile.am index 196bdeed61..15531958e9 100644 --- a/gst-libs/gst/gl/Makefile.am +++ b/gst-libs/gst/gl/Makefile.am @@ -71,6 +71,7 @@ libgstgl_@GST_API_VERSION@include_HEADERS = \ gl.h noinst_HEADERS = \ + gstglfeature_private.h \ gstglsl_private.h \ utils/opengl_versions.h \ utils/gles_versions.h diff --git a/gst-libs/gst/gl/gstglcontext.c b/gst-libs/gst/gl/gstglcontext.c index f3b397a6bd..b340494d49 100644 --- a/gst-libs/gst/gl/gstglcontext.c +++ b/gst-libs/gst/gl/gstglcontext.c @@ -46,6 +46,7 @@ #include "gl.h" #include "gstglcontext.h" +#include "gstglfeature_private.h" #ifndef GL_NUM_EXTENSIONS #define GL_NUM_EXTENSIONS 0x0000821d diff --git a/gst-libs/gst/gl/gstglfeature.c b/gst-libs/gst/gl/gstglfeature.c index baf29b106a..7b9b7ec023 100644 --- a/gst-libs/gst/gl/gstglfeature.c +++ b/gst-libs/gst/gl/gstglfeature.c @@ -26,6 +26,7 @@ #include "gl.h" #include "gstglfeature.h" +#include "gstglfeature_private.h" #define GST_CAT_DEFAULT gl_feature GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); diff --git a/gst-libs/gst/gl/gstglfeature.h b/gst-libs/gst/gl/gstglfeature.h index b75c3e13df..2017122571 100644 --- a/gst-libs/gst/gl/gstglfeature.h +++ b/gst-libs/gst/gl/gstglfeature.h @@ -54,62 +54,8 @@ G_BEGIN_DECLS ((driver_major) > (target_major) || \ ((driver_major) == (target_major) && (driver_minor) >= (target_minor))) -typedef struct _GstGLFeatureFunction GstGLFeatureFunction; - -struct _GstGLFeatureFunction -{ - /* The name of the function without the "EXT" or "ARB" suffix */ - const char *name; - /* The offset in the context of where to store the function pointer */ - unsigned int pointer_offset; -}; - -typedef struct _GstGLFeatureData GstGLFeatureData; - -struct _GstGLFeatureData -{ - /* name of the feature */ - const char *feature_name; - /* Flags specifying which versions of GL the feature is available - in core in */ - GstGLAPI gl_availability; - /* A minimum GL version which the functions should be defined in - without needing an extension. Set to 255, 255 if it's only - provided in an extension */ - int min_gl_major, min_gl_minor; - /* A minimum GLES version which the functions should be defined in - without needing an extension. Set to 255, 255 if it's only - provided in an extension */ - int min_gles_major, min_gles_minor; - /* \0 separated list of namespaces to try. Eg "EXT\0ARB\0" */ - const char *namespaces; - /* \0 separated list of required extension names without the GL_EXT - or GL_ARB prefix. Any of the extensions must be available for the - feature to be considered available. If the suffix for an - extension is different from the namespace, you can specify it - with a ':' after the namespace */ - const char *extension_names; - /* A list of functions required for this feature. Terminated with a - NULL name */ - const GstGLFeatureFunction *functions; -}; - -GST_EXPORT gboolean -gst_gl_check_extension (const char *name, const gchar * ext); - -G_GNUC_INTERNAL gboolean -_gst_gl_feature_check (GstGLContext *context, - const char *driver_prefix, - const GstGLFeatureData *data, - int gl_major, - int gl_minor, - const char *extensions_string); - -G_GNUC_INTERNAL void -_gst_gl_feature_check_ext_functions (GstGLContext *context, - int gl_major, - int gl_minor, - const char *gl_extensions); +GST_EXPORT +gboolean gst_gl_check_extension (const char *name, const gchar * ext); G_END_DECLS diff --git a/gst-libs/gst/gl/gstglfeature_private.h b/gst-libs/gst/gl/gstglfeature_private.h new file mode 100644 index 0000000000..db4a6ea789 --- /dev/null +++ b/gst-libs/gst/gl/gstglfeature_private.h @@ -0,0 +1,108 @@ +/* + * GStreamer + * Copyright (C) 2012 Matthew Waters + * + * 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. + */ +/* + * Cogl + * + * An object oriented GL/GLES Abstraction/Utility Layer + * + * Copyright (C) 2009 Intel Corporation. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see . + * + * + */ + +#ifndef __GST_GL_FEATURE_PRIVATE_H__ +#define __GST_GL_FEATURE_PRIVATE_H__ + +#include + +#include + +G_BEGIN_DECLS + +typedef struct _GstGLFeatureFunction GstGLFeatureFunction; + +struct _GstGLFeatureFunction +{ + /* The name of the function without the "EXT" or "ARB" suffix */ + const char *name; + /* The offset in the context of where to store the function pointer */ + unsigned int pointer_offset; +}; + +typedef struct _GstGLFeatureData GstGLFeatureData; + +struct _GstGLFeatureData +{ + /* name of the feature */ + const char *feature_name; + /* Flags specifying which versions of GL the feature is available + in core in */ + GstGLAPI gl_availability; + /* A minimum GL version which the functions should be defined in + without needing an extension. Set to 255, 255 if it's only + provided in an extension */ + int min_gl_major, min_gl_minor; + /* A minimum GLES version which the functions should be defined in + without needing an extension. Set to 255, 255 if it's only + provided in an extension */ + int min_gles_major, min_gles_minor; + /* \0 separated list of namespaces to try. Eg "EXT\0ARB\0" */ + const char *namespaces; + /* \0 separated list of required extension names without the GL_EXT + or GL_ARB prefix. Any of the extensions must be available for the + feature to be considered available. If the suffix for an + extension is different from the namespace, you can specify it + with a ':' after the namespace */ + const char *extension_names; + /* A list of functions required for this feature. Terminated with a + NULL name */ + const GstGLFeatureFunction *functions; +}; + +G_GNUC_INTERNAL gboolean +_gst_gl_feature_check (GstGLContext *context, + const char *driver_prefix, + const GstGLFeatureData *data, + int gl_major, + int gl_minor, + const char *extensions_string); + +G_GNUC_INTERNAL void +_gst_gl_feature_check_ext_functions (GstGLContext *context, + int gl_major, + int gl_minor, + const char *gl_extensions); + +G_END_DECLS + +#endif /* __GST_GL_FEATURE_PRIVATE_H__ */