Blame gst-libs/gst/gl/gstglfeature_private.h

Packit 971217
/*
Packit 971217
 * GStreamer
Packit 971217
 * Copyright (C) 2012 Matthew Waters <ystreet00@gmail.com>
Packit 971217
 *
Packit 971217
 * This library is free software; you can redistribute it and/or
Packit 971217
 * modify it under the terms of the GNU Library General Public
Packit 971217
 * License as published by the Free Software Foundation; either
Packit 971217
 * version 2 of the License, or (at your option) any later version.
Packit 971217
 *
Packit 971217
 * This library is distributed in the hope that it will be useful,
Packit 971217
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 971217
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 971217
 * Library General Public License for more details.
Packit 971217
 *
Packit 971217
 * You should have received a copy of the GNU Library General Public
Packit 971217
 * License along with this library; if not, write to the
Packit 971217
 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Packit 971217
 * Boston, MA 02110-1301, USA.
Packit 971217
 */
Packit 971217
/*
Packit 971217
 * Cogl
Packit 971217
 *
Packit 971217
 * An object oriented GL/GLES Abstraction/Utility Layer
Packit 971217
 *
Packit 971217
 * Copyright (C) 2009 Intel Corporation.
Packit 971217
 *
Packit 971217
 * This library is free software; you can redistribute it and/or
Packit 971217
 * modify it under the terms of the GNU Lesser General Public
Packit 971217
 * License as published by the Free Software Foundation; either
Packit 971217
 * version 2 of the License, or (at your option) any later version.
Packit 971217
 *
Packit 971217
 * This library is distributed in the hope that it will be useful,
Packit 971217
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 971217
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 971217
 * Lesser General Public License for more details.
Packit 971217
 *
Packit 971217
 * You should have received a copy of the GNU Lesser General Public
Packit 971217
 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
Packit 971217
 *
Packit 971217
 *
Packit 971217
 */
Packit 971217
Packit 971217
#ifndef __GST_GL_FEATURE_PRIVATE_H__
Packit 971217
#define __GST_GL_FEATURE_PRIVATE_H__
Packit 971217
Packit 971217
#include <gst/gst.h>
Packit 971217
Packit 971217
#include <gst/gl/gstgl_fwd.h>
Packit 971217
Packit 971217
G_BEGIN_DECLS
Packit 971217
Packit 971217
typedef struct _GstGLFeatureFunction GstGLFeatureFunction;
Packit 971217
Packit 971217
struct _GstGLFeatureFunction
Packit 971217
{
Packit 971217
  /* The name of the function without the "EXT" or "ARB" suffix */
Packit 971217
  const char *name;
Packit 971217
  /* The offset in the context of where to store the function pointer */
Packit 971217
  unsigned int pointer_offset;
Packit 971217
};
Packit 971217
Packit 971217
typedef struct _GstGLFeatureData GstGLFeatureData;
Packit 971217
Packit 971217
struct _GstGLFeatureData
Packit 971217
{
Packit 971217
  /* name of the feature */
Packit 971217
  const char *feature_name;
Packit 971217
  /* Flags specifying which versions of GL the feature is available
Packit 971217
     in core in */
Packit 971217
  GstGLAPI gl_availability;
Packit 971217
  /* A minimum GL version which the functions should be defined in
Packit 971217
     without needing an extension. Set to 255, 255 if it's only
Packit 971217
     provided in an extension */
Packit 971217
  int min_gl_major, min_gl_minor;
Packit 971217
  /* A minimum GLES version which the functions should be defined in
Packit 971217
     without needing an extension. Set to 255, 255 if it's only
Packit 971217
     provided in an extension */
Packit 971217
  int min_gles_major, min_gles_minor;
Packit 971217
  /* \0 separated list of namespaces to try. Eg "EXT\0ARB\0" */
Packit 971217
  const char *namespaces;
Packit 971217
  /* \0 separated list of required extension names without the GL_EXT
Packit 971217
     or GL_ARB prefix. Any of the extensions must be available for the
Packit 971217
     feature to be considered available. If the suffix for an
Packit 971217
     extension is different from the namespace, you can specify it
Packit 971217
     with a ':' after the namespace */
Packit 971217
  const char *extension_names;
Packit 971217
  /* A list of functions required for this feature. Terminated with a
Packit 971217
     NULL name */
Packit 971217
  const GstGLFeatureFunction *functions;
Packit 971217
};
Packit 971217
Packit 971217
G_GNUC_INTERNAL gboolean
Packit 971217
_gst_gl_feature_check (GstGLContext *context,
Packit 971217
                     const char *driver_prefix,
Packit 971217
                     const GstGLFeatureData *data,
Packit 971217
                     int gl_major,
Packit 971217
                     int gl_minor,
Packit 971217
                     const char *extensions_string);
Packit 971217
Packit 971217
G_GNUC_INTERNAL void
Packit 971217
_gst_gl_feature_check_ext_functions (GstGLContext *context,
Packit 971217
                                   int gl_major,
Packit 971217
                                   int gl_minor,
Packit 971217
                                   const char *gl_extensions);
Packit 971217
Packit 971217
G_END_DECLS
Packit 971217
Packit 971217
#endif /* __GST_GL_FEATURE_PRIVATE_H__ */