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