Blame gst-libs/gst/gl/glprototypes/shaders.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, 2011 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
/* This lists functions that are unique to GL 2.0 or GLES 2.0 and are
Packit 971217
 * not in the old GLSL extensions */
Packit 971217
GST_GL_EXT_BEGIN (shaders_glsl_2_only,
Packit 971217
                  GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
Packit 971217
                  GST_GL_API_GLES2,
Packit 971217
                  2, 0,
Packit 971217
                  2, 0,
Packit 971217
                  "\0",
Packit 971217
                  "\0")
Packit 971217
GST_GL_EXT_FUNCTION (GLuint, CreateProgram,
Packit 971217
                     (void))
Packit 971217
GST_GL_EXT_FUNCTION (GLuint, CreateShader,
Packit 971217
                     (GLenum                shaderType))
Packit 971217
GST_GL_EXT_FUNCTION (void, DeleteShader,
Packit 971217
                     (GLuint                shader))
Packit 971217
GST_GL_EXT_FUNCTION (void, AttachShader,
Packit 971217
                     (GLuint                program,
Packit 971217
                      GLuint                shader))
Packit 971217
GST_GL_EXT_FUNCTION (void, UseProgram,
Packit 971217
                     (GLuint                program))
Packit 971217
GST_GL_EXT_FUNCTION (void, DeleteProgram,
Packit 971217
                     (GLuint                program))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetShaderInfoLog,
Packit 971217
                     (GLuint                shader,
Packit 971217
                      GLsizei               maxLength,
Packit 971217
                      GLsizei              *length,
Packit 971217
                      char                 *infoLog))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetProgramInfoLog,
Packit 971217
                     (GLuint                program,
Packit 971217
                      GLsizei               bufSize,
Packit 971217
                      GLsizei              *length,
Packit 971217
                      char                 *infoLog))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetShaderiv,
Packit 971217
                     (GLuint                shader,
Packit 971217
                      GLenum                pname,
Packit 971217
                      GLint                *params))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetProgramiv,
Packit 971217
                     (GLuint                program,
Packit 971217
                      GLenum                pname,
Packit 971217
                      GLint                *params))
Packit 971217
GST_GL_EXT_FUNCTION (void, DetachShader,
Packit 971217
                     (GLuint program, GLuint shader))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetAttachedShaders,
Packit 971217
                     (GLuint program,
Packit 971217
                      GLsizei maxcount,
Packit 971217
                      GLsizei* count,
Packit 971217
                      GLuint* shaders))
Packit 971217
GST_GL_EXT_FUNCTION (GLboolean, IsShader,
Packit 971217
                     (GLuint shader))
Packit 971217
GST_GL_EXT_FUNCTION (GLboolean, IsProgram,
Packit 971217
                     (GLuint program))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
/* These functions are provided by GL_ARB_shader_objects or are in GL
Packit 971217
 * 2.0 core */
Packit 971217
GST_GL_EXT_BEGIN (shader_objects_or_gl2,
Packit 971217
                  GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
Packit 971217
                  GST_GL_API_GLES2,
Packit 971217
                  2, 0,
Packit 971217
                  2, 0,
Packit 971217
                  "ARB\0",
Packit 971217
                  "shader_objects\0")
Packit 971217
GST_GL_EXT_FUNCTION (void, ShaderSource,
Packit 971217
                     (GLuint                shader,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const char          **string,
Packit 971217
                      const GLint          *length))
Packit 971217
GST_GL_EXT_FUNCTION (void, CompileShader,
Packit 971217
                     (GLuint                shader))
Packit 971217
GST_GL_EXT_FUNCTION (void, LinkProgram,
Packit 971217
                     (GLuint                program))
Packit 971217
GST_GL_EXT_FUNCTION (GLint, GetUniformLocation,
Packit 971217
                     (GLuint                program,
Packit 971217
                      const char           *name))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform1f,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLfloat               v0))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform2f,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLfloat               v0,
Packit 971217
                      GLfloat               v1))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform3f,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLfloat               v0,
Packit 971217
                      GLfloat               v1,
Packit 971217
                      GLfloat               v2))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform4f,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLfloat               v0,
Packit 971217
                      GLfloat               v1,
Packit 971217
                      GLfloat               v2,
Packit 971217
                      GLfloat               v3))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform1fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLfloat *       value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform2fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLfloat *       value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform3fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLfloat *       value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform4fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLfloat *       value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform1i,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLint                 v0))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform2i,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLint                 v0,
Packit 971217
                      GLint                 v1))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform3i,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLint                 v0,
Packit 971217
                      GLint                 v1,
Packit 971217
                      GLint                 v2))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform4i,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLint                 v0,
Packit 971217
                      GLint                 v1,
Packit 971217
                      GLint                 v2,
Packit 971217
                      GLint                 v3))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform1iv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLint *         value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform2iv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLint *         value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform3iv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLint *         value))
Packit 971217
GST_GL_EXT_FUNCTION (void, Uniform4iv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      const GLint *         value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix2fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      GLboolean             transpose,
Packit 971217
                      const GLfloat        *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix3fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      GLboolean             transpose,
Packit 971217
                      const GLfloat        *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix4fv,
Packit 971217
                     (GLint                 location,
Packit 971217
                      GLsizei               count,
Packit 971217
                      GLboolean             transpose,
Packit 971217
                      const GLfloat        *value))
Packit 971217
Packit 971217
GST_GL_EXT_FUNCTION (void, GetUniformfv,
Packit 971217
                     (GLuint                program,
Packit 971217
                      GLint                 location,
Packit 971217
                      GLfloat              *params))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetUniformiv,
Packit 971217
                     (GLuint                program,
Packit 971217
                      GLint                 location,
Packit 971217
                      GLint                *params))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetActiveUniform,
Packit 971217
                     (GLuint program,
Packit 971217
                      GLuint index,
Packit 971217
                      GLsizei bufsize,
Packit 971217
                      GLsizei* length,
Packit 971217
                      GLint* size,
Packit 971217
                      GLenum* type,
Packit 971217
                      GLchar* name))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetShaderSource,
Packit 971217
                     (GLuint shader,
Packit 971217
                      GLsizei bufsize,
Packit 971217
                      GLsizei* length,
Packit 971217
                      GLchar* source))
Packit 971217
GST_GL_EXT_FUNCTION (void, ValidateProgram, (GLuint program))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
/* These functions are provided by GL_ARB_vertex_shader or are in GL
Packit 971217
 * 2.0 core */
Packit 971217
GST_GL_EXT_BEGIN (vertex_shaders,
Packit 971217
                  GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
Packit 971217
                  GST_GL_API_GLES2,
Packit 971217
                  2, 0,
Packit 971217
                  2, 0,
Packit 971217
                  "ARB\0",
Packit 971217
                  "vertex_shader\0")
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttribPointer,
Packit 971217
                     (GLuint		 index,
Packit 971217
                      GLint		 size,
Packit 971217
                      GLenum		 type,
Packit 971217
                      GLboolean		 normalized,
Packit 971217
                      GLsizei		 stride,
Packit 971217
                      const GLvoid        *pointer))
Packit 971217
GST_GL_EXT_FUNCTION (void, EnableVertexAttribArray,
Packit 971217
                     (GLuint		 index))
Packit 971217
GST_GL_EXT_FUNCTION (void, DisableVertexAttribArray,
Packit 971217
                     (GLuint		 index))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib1f, (GLuint indx, GLfloat x))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib1fv,
Packit 971217
                     (GLuint indx, const GLfloat* values))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib2f, (GLuint indx, GLfloat x, GLfloat y))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib2fv,
Packit 971217
                     (GLuint indx, const GLfloat* values))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib3f,
Packit 971217
                     (GLuint indx, GLfloat x, GLfloat y, GLfloat z))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib3fv,
Packit 971217
                     (GLuint indx, const GLfloat* values))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib4f,
Packit 971217
                     (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w))
Packit 971217
GST_GL_EXT_FUNCTION (void, VertexAttrib4fv,
Packit 971217
                     (GLuint indx, const GLfloat* values))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetVertexAttribfv,
Packit 971217
                     (GLuint index, GLenum pname, GLfloat* params))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetVertexAttribiv,
Packit 971217
                     (GLuint index, GLenum pname, GLint* params))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetVertexAttribPointerv,
Packit 971217
                     (GLuint index, GLenum pname, GLvoid** pointer))
Packit 971217
GST_GL_EXT_FUNCTION (GLint, GetAttribLocation,
Packit 971217
                     (GLuint program, const char *name))
Packit 971217
GST_GL_EXT_FUNCTION (void, BindAttribLocation,
Packit 971217
                     (GLuint program,
Packit 971217
                      GLuint index,
Packit 971217
                      const GLchar* name))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetActiveAttrib,
Packit 971217
                     (GLuint program,
Packit 971217
                      GLuint index,
Packit 971217
                      GLsizei bufsize,
Packit 971217
                      GLsizei* length,
Packit 971217
                      GLint* size,
Packit 971217
                      GLenum* type,
Packit 971217
                      GLchar* name))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
/* These only list functions that come from the old GLSL extensions.
Packit 971217
 * Functions that are common to the extensions and GLSL 2.0 should
Packit 971217
 * instead be listed in cogl-glsl-functions.h */
Packit 971217
GST_GL_EXT_BEGIN (shader_objects,
Packit 971217
                  GST_GL_API_NONE,
Packit 971217
                  255, 255,
Packit 971217
                  255, 255, /* not in either GLES */
Packit 971217
                  "ARB\0",
Packit 971217
                  "shader_objects\0")
Packit 971217
GST_GL_EXT_FUNCTION (GLuint, CreateProgramObject,
Packit 971217
                     (void))
Packit 971217
GST_GL_EXT_FUNCTION (GLuint, CreateShaderObject,
Packit 971217
                     (GLenum shaderType))
Packit 971217
GST_GL_EXT_FUNCTION (void, DeleteObject,
Packit 971217
                     (GLuint obj))
Packit 971217
GST_GL_EXT_FUNCTION (void, AttachObject,
Packit 971217
                     (GLuint container, GLuint obj))
Packit 971217
GST_GL_EXT_FUNCTION (void, UseProgramObject,
Packit 971217
                     (GLuint programObj))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetInfoLog,
Packit 971217
                     (GLuint                obj,
Packit 971217
                      GLsizei               maxLength,
Packit 971217
                      GLsizei              *length,
Packit 971217
                      char                 *infoLog))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetObjectParameteriv,
Packit 971217
                     (GLuint                obj,
Packit 971217
                      GLenum                pname,
Packit 971217
                      GLint                *params))
Packit 971217
GST_GL_EXT_FUNCTION (void, DetachObject,
Packit 971217
                     (GLuint container, GLuint obj))
Packit 971217
GST_GL_EXT_FUNCTION (void, GetAttachedObjects,
Packit 971217
                     (GLuint program,
Packit 971217
                      GLsizei maxcount,
Packit 971217
                      GLsizei* count,
Packit 971217
                      GLuint* shaders))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
/* ARB_fragment_program */
Packit 971217
GST_GL_EXT_BEGIN (arbfp,
Packit 971217
                  GST_GL_API_NONE,
Packit 971217
                  255, 255,
Packit 971217
                  255, 255, /* not in either GLES */
Packit 971217
                  "ARB\0",
Packit 971217
                  "fragment_program\0")
Packit 971217
GST_GL_EXT_FUNCTION (void, GenPrograms,
Packit 971217
                     (GLsizei               n,
Packit 971217
                      GLuint               *programs))
Packit 971217
GST_GL_EXT_FUNCTION (void, DeletePrograms,
Packit 971217
                     (GLsizei               n,
Packit 971217
                      GLuint               *programs))
Packit 971217
GST_GL_EXT_FUNCTION (void, BindProgram,
Packit 971217
                     (GLenum                target,
Packit 971217
                      GLuint                program))
Packit 971217
GST_GL_EXT_FUNCTION (void, ProgramString,
Packit 971217
                     (GLenum                target,
Packit 971217
                      GLenum                format,
Packit 971217
                      GLsizei               len,
Packit 971217
                      const void           *program))
Packit 971217
GST_GL_EXT_FUNCTION (void, ProgramLocalParameter4fv,
Packit 971217
                     (GLenum                target,
Packit 971217
                      GLuint                index,
Packit 971217
                      GLfloat              *params))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
/* This lists functions that are unique to GL 2.1 or GLES 3.0 and are
Packit 971217
 * not in the old GLSL extensions */
Packit 971217
GST_GL_EXT_BEGIN (shaders_2_1,
Packit 971217
                  GST_GL_API_OPENGL | GST_GL_API_OPENGL3 |
Packit 971217
                  GST_GL_API_GLES2,
Packit 971217
                  2, 1,
Packit 971217
                  3, 0,
Packit 971217
                  "\0",
Packit 971217
                  "\0")
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix2x3fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix3x2fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix2x4fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix4x2fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix3x4fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_FUNCTION (void, UniformMatrix4x3fv,
Packit 971217
                     (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
Packit 971217
GST_GL_EXT_END ()
Packit 971217
Packit 971217
GST_GL_EXT_BEGIN (bind_frag_data,
Packit 971217
                  GST_GL_API_OPENGL | GST_GL_API_OPENGL3,
Packit 971217
                  3, 0,
Packit 971217
                  255, 255,
Packit 971217
                  "\0",
Packit 971217
                  "\0")
Packit 971217
GST_GL_EXT_FUNCTION (void, BindFragDataLocation,
Packit 971217
                     (GLuint program, GLuint index, const GLchar * name))
Packit 971217
GST_GL_EXT_END ()