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 /* These are the core GL functions which we assume will always be
56 COGL_EXT_IN_GLES | COGL_EXT_IN_GLES2,
59 COGL_EXT_FUNCTION (void, glBindTexture,
60 (GLenum target, GLuint texture))
61 COGL_EXT_FUNCTION (void, glBlendFunc,
62 (GLenum sfactor, GLenum dfactor))
63 COGL_EXT_FUNCTION (void, glClear,
65 COGL_EXT_FUNCTION (void, glClearColor,
70 COGL_EXT_FUNCTION (void, glClearStencil,
72 COGL_EXT_FUNCTION (void, glColorMask,
77 COGL_EXT_FUNCTION (void, glCopyTexSubImage2D,
86 COGL_EXT_FUNCTION (void, glDeleteTextures,
87 (GLsizei n, const GLuint* textures))
88 COGL_EXT_FUNCTION (void, glDepthFunc,
90 COGL_EXT_FUNCTION (void, glDepthMask,
92 COGL_EXT_FUNCTION (void, glDisable,
94 COGL_EXT_FUNCTION (void, glDrawArrays,
95 (GLenum mode, GLint first, GLsizei count))
96 COGL_EXT_FUNCTION (void, glDrawElements,
100 const GLvoid* indices))
101 COGL_EXT_FUNCTION (void, glEnable,
103 COGL_EXT_FUNCTION (void, glFinish,
105 COGL_EXT_FUNCTION (void, glFlush,
107 COGL_EXT_FUNCTION (void, glFrontFace,
109 COGL_EXT_FUNCTION (void, glCullFace,
111 COGL_EXT_FUNCTION (void, glGenTextures,
112 (GLsizei n, GLuint* textures))
113 COGL_EXT_FUNCTION (GLenum, glGetError,
115 COGL_EXT_FUNCTION (void, glGetIntegerv,
116 (GLenum pname, GLint* params))
117 COGL_EXT_FUNCTION (void, glGetBooleanv,
118 (GLenum pname, GLboolean* params))
119 COGL_EXT_FUNCTION (void, glGetFloatv,
120 (GLenum pname, GLfloat* params))
121 COGL_EXT_FUNCTION (const GLubyte*, glGetString,
123 COGL_EXT_FUNCTION (void, glHint,
124 (GLenum target, GLenum mode))
125 COGL_EXT_FUNCTION (GLboolean, glIsTexture,
127 COGL_EXT_FUNCTION (void, glPixelStorei,
128 (GLenum pname, GLint param))
129 COGL_EXT_FUNCTION (void, glReadPixels,
137 COGL_EXT_FUNCTION (void, glScissor,
138 (GLint x, GLint y, GLsizei width, GLsizei height))
139 COGL_EXT_FUNCTION (void, glStencilFunc,
140 (GLenum func, GLint ref, GLuint mask))
141 COGL_EXT_FUNCTION (void, glStencilMask,
143 COGL_EXT_FUNCTION (void, glStencilOp,
144 (GLenum fail, GLenum zfail, GLenum zpass))
145 COGL_EXT_FUNCTION (void, glTexImage2D,
148 GLint internalformat,
154 const GLvoid* pixels))
155 COGL_EXT_FUNCTION (void, glTexParameterfv,
156 (GLenum target, GLenum pname, const GLfloat* params))
157 COGL_EXT_FUNCTION (void, glTexParameteri,
158 (GLenum target, GLenum pname, GLint param))
159 COGL_EXT_FUNCTION (void, glTexParameteriv,
160 (GLenum target, GLenum pname, const GLint* params))
161 COGL_EXT_FUNCTION (void, glGetTexParameterfv,
162 (GLenum target, GLenum pname, GLfloat* params))
163 COGL_EXT_FUNCTION (void, glGetTexParameteriv,
164 (GLenum target, GLenum pname, GLint* params))
165 COGL_EXT_FUNCTION (void, glTexSubImage2D,
174 const GLvoid* pixels))
175 COGL_EXT_FUNCTION (void, glCopyTexImage2D,
178 GLenum internalformat,
184 COGL_EXT_FUNCTION (void, glViewport,
185 (GLint x, GLint y, GLsizei width, GLsizei height))
186 COGL_EXT_FUNCTION (GLboolean, glIsEnabled, (GLenum cap))
187 COGL_EXT_FUNCTION (void, glLineWidth, (GLfloat width))
188 COGL_EXT_FUNCTION (void, glPolygonOffset, (GLfloat factor, GLfloat units))