1 /* 2 * GStreamer 3 * Copyright (C) 2012 Matthew Waters <ystreet00@gmail.com> 4 * 5 * This library is free software; you can redistribute it and/or 6 * modify it under the terms of the GNU Library General Public 7 * License as published by the Free Software Foundation; either 8 * version 2 of the License, or (at your option) any later version. 9 * 10 * This library is distributed in the hope that it will be useful, 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 * Library General Public License for more details. 14 * 15 * You should have received a copy of the GNU Library General Public 16 * License along with this library; if not, write to the 17 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, 18 * Boston, MA 02110-1301, USA. 19 */ 20 /* 21 * Cogl 22 * 23 * An object oriented GL/GLES Abstraction/Utility Layer 24 * 25 * Copyright (C) 2009, 2011 Intel Corporation. 26 * 27 * This library is free software; you can redistribute it and/or 28 * modify it under the terms of the GNU Lesser General Public 29 * License as published by the Free Software Foundation; either 30 * version 2 of the License, or (at your option) any later version. 31 * 32 * This library is distributed in the hope that it will be useful, 33 * but WITHOUT ANY WARRANTY; without even the implied warranty of 34 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 35 * Lesser General Public License for more details. 36 * 37 * You should have received a copy of the GNU Lesser General Public 38 * License along with this library. If not, see <http://www.gnu.org/licenses/>. 39 */ 40 41 42 /* These are the core GL functions which we assume will always be 43 available */ 44 GST_GL_EXT_BEGIN (core, 45 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 46 GST_GL_API_GLES1 | GST_GL_API_GLES2, 47 1, 0, 48 1, 0, 49 "\0", 50 "\0") 51 GST_GL_EXT_FUNCTION (void, BindTexture, 52 (GLenum target, GLuint texture)) 53 GST_GL_EXT_FUNCTION (void, BlendFunc, 54 (GLenum sfactor, GLenum dfactor)) 55 GST_GL_EXT_FUNCTION (void, Clear, 56 (GLbitfield mask)) 57 GST_GL_EXT_FUNCTION (void, ClearColor, 58 (GLclampf red, 59 GLclampf green, 60 GLclampf blue, 61 GLclampf alpha)) 62 GST_GL_EXT_FUNCTION (void, ClearStencil, 63 (GLint s)) 64 GST_GL_EXT_FUNCTION (void, ColorMask, 65 (GLboolean red, 66 GLboolean green, 67 GLboolean blue, 68 GLboolean alpha)) 69 GST_GL_EXT_FUNCTION (void, CopyTexSubImage2D, 70 (GLenum target, 71 GLint level, 72 GLint xoffset, 73 GLint yoffset, 74 GLint x, 75 GLint y, 76 GLsizei width, 77 GLsizei height)) 78 GST_GL_EXT_FUNCTION (void, DeleteTextures, 79 (GLsizei n, const GLuint* textures)) 80 GST_GL_EXT_FUNCTION (void, DepthFunc, 81 (GLenum func)) 82 GST_GL_EXT_FUNCTION (void, DepthMask, 83 (GLboolean flag)) 84 GST_GL_EXT_FUNCTION (void, Disable, 85 (GLenum cap)) 86 GST_GL_EXT_FUNCTION (void, DrawArrays, 87 (GLenum mode, GLint first, GLsizei count)) 88 GST_GL_EXT_FUNCTION (void, DrawElements, 89 (GLenum mode, 90 GLsizei count, 91 GLenum type, 92 const GLvoid* indices)) 93 GST_GL_EXT_FUNCTION (void, Enable, 94 (GLenum cap)) 95 GST_GL_EXT_FUNCTION (void, Finish, 96 (void)) 97 GST_GL_EXT_FUNCTION (void, Flush, 98 (void)) 99 GST_GL_EXT_FUNCTION (void, FrontFace, 100 (GLenum mode)) 101 GST_GL_EXT_FUNCTION (void, CullFace, 102 (GLenum mode)) 103 GST_GL_EXT_FUNCTION (void, GenTextures, 104 (GLsizei n, GLuint* textures)) 105 GST_GL_EXT_FUNCTION (GLenum, GetError, 106 (void)) 107 GST_GL_EXT_FUNCTION (void, GetIntegerv, 108 (GLenum pname, GLint* params)) 109 GST_GL_EXT_FUNCTION (void, GetBooleanv, 110 (GLenum pname, GLboolean* params)) 111 GST_GL_EXT_FUNCTION (void, GetFloatv, 112 (GLenum pname, GLfloat* params)) 113 GST_GL_EXT_FUNCTION (const GLubyte*, GetString, 114 (GLenum name)) 115 GST_GL_EXT_FUNCTION (void, Hint, 116 (GLenum target, GLenum mode)) 117 GST_GL_EXT_FUNCTION (GLboolean, IsTexture, 118 (GLuint texture)) 119 GST_GL_EXT_FUNCTION (void, PixelStorei, 120 (GLenum pname, GLint param)) 121 GST_GL_EXT_FUNCTION (void, ReadPixels, 122 (GLint x, 123 GLint y, 124 GLsizei width, 125 GLsizei height, 126 GLenum format, 127 GLenum type, 128 GLvoid* pixels)) 129 GST_GL_EXT_FUNCTION (void, Scissor, 130 (GLint x, GLint y, GLsizei width, GLsizei height)) 131 GST_GL_EXT_FUNCTION (void, StencilFunc, 132 (GLenum func, GLint ref, GLuint mask)) 133 GST_GL_EXT_FUNCTION (void, StencilMask, 134 (GLuint mask)) 135 GST_GL_EXT_FUNCTION (void, StencilOp, 136 (GLenum fail, GLenum zfail, GLenum zpass)) 137 GST_GL_EXT_FUNCTION (void, TexImage2D, 138 (GLenum target, 139 GLint level, 140 GLint internalformat, 141 GLsizei width, 142 GLsizei height, 143 GLint border, 144 GLenum format, 145 GLenum type, 146 const GLvoid* pixels)) 147 GST_GL_EXT_FUNCTION (void, TexParameterfv, 148 (GLenum target, GLenum pname, const GLfloat* params)) 149 GST_GL_EXT_FUNCTION (void, TexParameteri, 150 (GLenum target, GLenum pname, GLint param)) 151 GST_GL_EXT_FUNCTION (void, TexParameteriv, 152 (GLenum target, GLenum pname, const GLint* params)) 153 GST_GL_EXT_FUNCTION (void, GetTexParameterfv, 154 (GLenum target, GLenum pname, GLfloat* params)) 155 GST_GL_EXT_FUNCTION (void, GetTexParameteriv, 156 (GLenum target, GLenum pname, GLint* params)) 157 GST_GL_EXT_FUNCTION (void, TexSubImage2D, 158 (GLenum target, 159 GLint level, 160 GLint xoffset, 161 GLint yoffset, 162 GLsizei width, 163 GLsizei height, 164 GLenum format, 165 GLenum type, 166 const GLvoid* pixels)) 167 GST_GL_EXT_FUNCTION (void, CopyTexImage2D, 168 (GLenum target, 169 GLint level, 170 GLenum internalformat, 171 GLint x, 172 GLint y, 173 GLsizei width, 174 GLsizei height, 175 GLint border)) 176 GST_GL_EXT_FUNCTION (void, Viewport, 177 (GLint x, GLint y, GLsizei width, GLsizei height)) 178 GST_GL_EXT_FUNCTION (GLboolean, IsEnabled, (GLenum cap)) 179 GST_GL_EXT_FUNCTION (void, LineWidth, (GLfloat width)) 180 GST_GL_EXT_FUNCTION (void, PolygonOffset, (GLfloat factor, GLfloat units)) 181 GST_GL_EXT_FUNCTION (void, TexParameterf, 182 (GLenum target, 183 GLenum pname, 184 GLfloat param)) 185 GST_GL_EXT_END () 186 187 GST_GL_EXT_BEGIN (texture_3d, 188 GST_GL_API_OPENGL | GST_GL_API_OPENGL3, 189 1, 2, 190 255, 255, /* not in either GLES */ 191 "OES\0", 192 "texture_3D\0") 193 GST_GL_EXT_FUNCTION (void, TexImage3D, 194 (GLenum target, GLint level, 195 GLint internalFormat, 196 GLsizei width, GLsizei height, 197 GLsizei depth, GLint border, 198 GLenum format, GLenum type, 199 const GLvoid *pixels)) 200 GST_GL_EXT_FUNCTION (void, TexSubImage3D, 201 (GLenum target, GLint level, 202 GLint xoffset, GLint yoffset, 203 GLint zoffset, GLsizei width, 204 GLsizei height, GLsizei depth, 205 GLenum format, 206 GLenum type, const GLvoid *pixels)) 207 GST_GL_EXT_END () 208 209 GST_GL_EXT_BEGIN (only_in_both_gles_and_gl_1_3, 210 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 211 GST_GL_API_GLES1 | GST_GL_API_GLES2, 212 1, 3, 213 1, 0, 214 "\0", 215 "\0") 216 GST_GL_EXT_FUNCTION (void, CompressedTexImage2D, 217 (GLenum target, 218 GLint level, 219 GLenum internalformat, 220 GLsizei width, 221 GLsizei height, 222 GLint border, 223 GLsizei imageSize, 224 const GLvoid* data)) 225 GST_GL_EXT_FUNCTION (void, CompressedTexSubImage2D, 226 (GLenum target, 227 GLint level, 228 GLint xoffset, 229 GLint yoffset, 230 GLsizei width, 231 GLsizei height, 232 GLenum format, 233 GLsizei imageSize, 234 const GLvoid* data)) 235 GST_GL_EXT_FUNCTION (void, SampleCoverage, 236 (GLclampf value, GLboolean invert)) 237 GST_GL_EXT_END () 238 239 GST_GL_EXT_BEGIN (only_in_both_gles_and_gl_1_5, 240 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 241 GST_GL_API_GLES1 | GST_GL_API_GLES2, 242 1, 5, 243 1, 0, 244 "\0", 245 "\0") 246 GST_GL_EXT_FUNCTION (void, GetBufferParameteriv, 247 (GLenum target, GLenum pname, GLint* params)) 248 GST_GL_EXT_END () 249 250 GST_GL_EXT_BEGIN (vbos, 251 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 252 GST_GL_API_GLES1 | GST_GL_API_GLES2, 253 1, 5, 254 1, 0, 255 "ARB\0", 256 "vertex_buffer_object\0") 257 GST_GL_EXT_FUNCTION (void, GenBuffers, 258 (GLsizei n, 259 GLuint *buffers)) 260 GST_GL_EXT_FUNCTION (void, BindBuffer, 261 (GLenum target, 262 GLuint buffer)) 263 GST_GL_EXT_FUNCTION (void, BufferData, 264 (GLenum target, 265 GLsizeiptr size, 266 const GLvoid *data, 267 GLenum usage)) 268 GST_GL_EXT_FUNCTION (void, BufferSubData, 269 (GLenum target, 270 GLintptr offset, 271 GLsizeiptr size, 272 const GLvoid *data)) 273 GST_GL_EXT_FUNCTION (void, DeleteBuffers, 274 (GLsizei n, 275 const GLuint *buffers)) 276 GST_GL_EXT_FUNCTION (GLboolean, IsBuffer, 277 (GLuint buffer)) 278 GST_GL_EXT_END () 279 280 /* Available in GL 1.3, the multitexture extension or GLES. These are 281 required */ 282 GST_GL_EXT_BEGIN (multitexture_part0, 283 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 284 GST_GL_API_GLES1 | GST_GL_API_GLES2, 285 1, 3, 286 1, 0, 287 "ARB\0", 288 "multitexture\0") 289 GST_GL_EXT_FUNCTION (void, ActiveTexture, 290 (GLenum texture)) 291 GST_GL_EXT_END () 292 293 294 /* GLES doesn't support mapping buffers in core so this has to be a 295 separate check */ 296 GST_GL_EXT_BEGIN (map_vbos, 297 GST_GL_API_OPENGL | GST_GL_API_OPENGL3, 298 1, 5, 299 255, 255, /* not in GLES core */ 300 "ARB\0OES\0", 301 "vertex_buffer_object\0mapbuffer\0") 302 GST_GL_EXT_FUNCTION (void *, MapBuffer, 303 (GLenum target, 304 GLenum access)) 305 GST_GL_EXT_END () 306 307 GST_GL_EXT_BEGIN (unmap_buffer, 308 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | GST_GL_API_GLES2, 309 1, 5, 310 3, 0, 311 "ARB\0OES\0", 312 "vertex_buffer_object\0mapbuffer\0") 313 GST_GL_EXT_FUNCTION (GLboolean, UnmapBuffer, 314 (GLenum target)) 315 GST_GL_EXT_END () 316 317 GST_GL_EXT_BEGIN (gl3, 318 GST_GL_API_OPENGL | GST_GL_API_OPENGL3 | 319 GST_GL_API_GLES2, 320 3, 0, 321 3, 0, 322 "\0", 323 "\0") 324 GST_GL_EXT_FUNCTION (const GLubyte*, GetStringi, 325 (GLenum name, GLint index)) 326 GST_GL_EXT_FUNCTION (void *, MapBufferRange, 327 (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)) 328 GST_GL_EXT_END () 329