4 * An object oriented GL/GLES Abstraction/Utility Layer
6 * Copyright (C) 2009, 2011 Intel Corporation.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
24 /* This is included multiple times with different definitions for
25 * these macros. The macros are given the following arguments:
29 * @name: a unique symbol name for this feature
31 * @min_gl_major: the major part of the minimum GL version where these
32 * functions are available in core, or 255 if it isn't available in
34 * @min_gl_minor: the minor part of the minimum GL version where these
35 * functions are available in core, or 255 if it isn't available in
38 * @gles_availability: flags to specify which versions of GLES the
39 * functions are available in. Should be a combination of
40 * COGL_EXT_IN_GLES and COGL_EXT_IN_GLES2.
42 * @extension_suffixes: A zero-separated list of suffixes in a
43 * string. These are appended to the extension name to get a complete
44 * extension name to try. The suffix is also appended to all of the
45 * function names. The suffix can optionally include a ':' to specify
46 * an alternate suffix for the function names.
48 * @extension_names: A list of extension names to try. If any of these
49 * extensions match then it will be used.
52 COGL_EXT_BEGIN (only_in_both_gles,
58 COGL_EXT_FUNCTION (void, glDepthRangef,
59 (GLfloat near_val, GLfloat far_val))
60 COGL_EXT_FUNCTION (void, glClearDepthf,
64 COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_3,
70 COGL_EXT_FUNCTION (void, glCompressedTexImage2D,
73 GLenum internalformat,
79 COGL_EXT_FUNCTION (void, glCompressedTexSubImage2D,
89 COGL_EXT_FUNCTION (void, glSampleCoverage,
90 (GLclampf value, GLboolean invert))
93 COGL_EXT_BEGIN (only_in_both_gles_and_gl_1_5,
99 COGL_EXT_FUNCTION (void, glGetBufferParameteriv,
100 (GLenum target, GLenum pname, GLint* params))
103 COGL_EXT_BEGIN (vbos, 1, 5,
107 "vertex_buffer_object\0")
108 COGL_EXT_FUNCTION (void, glGenBuffers,
111 COGL_EXT_FUNCTION (void, glBindBuffer,
114 COGL_EXT_FUNCTION (void, glBufferData,
119 COGL_EXT_FUNCTION (void, glBufferSubData,
124 COGL_EXT_FUNCTION (void, glDeleteBuffers,
126 const GLuint *buffers))
127 COGL_EXT_FUNCTION (GLboolean, glIsBuffer,
131 /* Available in GL 1.3, the multitexture extension or GLES. These are
133 COGL_EXT_BEGIN (multitexture_part0, 1, 3,
138 COGL_EXT_FUNCTION (void, glActiveTexture,