Imported Upstream version 2.81
[platform/upstream/libbullet.git] / Extras / CDTestFramework / AntTweakBar / src / LoadOGLCore.h
1 //  ---------------------------------------------------------------------------\r
2 //\r
3 //  @file       LoadOGLCore.h\r
4 //  @brief      OpenGL Core Profile declarations for dynamic loading\r
5 //  @author     Philippe Decaudin - http://www.antisphere.com\r
6 //  @license    This file is part of the AntTweakBar library.\r
7 //              For conditions of distribution and use, see License.txt\r
8 //\r
9 //  note:       Private header\r
10 //\r
11 //  ---------------------------------------------------------------------------\r
12 \r
13 \r
14 #if !defined ANT_LOAD_OGL_CORE_INCLUDED\r
15 #define ANT_LOAD_OGL_CORE_INCLUDED\r
16 \r
17 \r
18 #define ANT_GL_CORE_DECL_NO_FORWARD(_Ret, _Fct, _Params) \\r
19     extern "C" { typedef _Ret (APIENTRY* PFN##_Fct)_Params; } \\r
20     namespace GLCore { extern PFN##_Fct _##_Fct; } \\r
21     using GLCore::_##_Fct;\r
22 \r
23 #if defined(ANT_WINDOWS)\r
24 #   define ANT_GL_CORE_DECL(_Ret, _Fct, _Params) \\r
25         ANT_GL_CORE_DECL_NO_FORWARD(_Ret, _Fct, _Params)\r
26 #   define ANT_GL_CORE_IMPL(_Fct) \\r
27         namespace GLCore { PFN##_Fct _##_Fct = (PFN##_Fct)Record(#_Fct, (PFNOpenGL*)(&_##_Fct)); }\r
28 #elif defined(ANT_UNIX) || defined(ANT_OSX)\r
29 #   if !defined(APIENTRY)\r
30 #       define APIENTRY\r
31 #   endif\r
32 #   define ANT_GL_CORE_DECL(_Ret, _Fct, _Params) \\r
33         ANT_GL_CORE_DECL_NO_FORWARD(_Ret, _Fct, _Params) \\r
34         extern "C" { _Ret APIENTRY _Fct _Params; }\r
35 #   define ANT_GL_CORE_IMPL(_Fct) \\r
36         namespace GLCore { PFN##_Fct _##_Fct = _Fct; }\r
37 #endif\r
38 \r
39 \r
40 int LoadOpenGLCore();\r
41 int UnloadOpenGLCore();\r
42 \r
43 namespace GLCore\r
44 {\r
45     extern "C" { typedef void (APIENTRY* PFNOpenGL)(); }\r
46     PFNOpenGL Record(const char *_FuncName, PFNOpenGL *_FuncPtr);\r
47 \r
48     extern "C" { typedef PFNOpenGL (APIENTRY *PFNGLGetProcAddress)(const char *); }\r
49     extern PFNGLGetProcAddress _glGetProcAddress;\r
50 }\r
51 using GLCore::_glGetProcAddress;\r
52 \r
53 \r
54 // GL 1.0\r
55 ANT_GL_CORE_DECL(void, glCullFace, (GLenum mode))\r
56 ANT_GL_CORE_DECL(void, glFrontFace, (GLenum mode))\r
57 ANT_GL_CORE_DECL(void, glHint, (GLenum target, GLenum mode))\r
58 ANT_GL_CORE_DECL(void, glLineWidth, (GLfloat width))\r
59 ANT_GL_CORE_DECL(void, glPointSize, (GLfloat size))\r
60 ANT_GL_CORE_DECL(void, glPolygonMode, (GLenum face, GLenum mode))\r
61 ANT_GL_CORE_DECL(void, glScissor, (GLint x, GLint y, GLsizei width, GLsizei height))\r
62 ANT_GL_CORE_DECL(void, glTexParameterf, (GLenum target, GLenum pname, GLfloat param))\r
63 ANT_GL_CORE_DECL(void, glTexParameterfv, (GLenum target, GLenum pname, const GLfloat *params))\r
64 ANT_GL_CORE_DECL(void, glTexParameteri, (GLenum target, GLenum pname, GLint param))\r
65 ANT_GL_CORE_DECL(void, glTexParameteriv, (GLenum target, GLenum pname, const GLint *params))\r
66 #if defined(ANT_OSX) && (MAC_OS_X_VERSION_MAX_ALLOWED < 1070)\r
67 // Mac OSX < 10.7 redefines these OpenGL calls: glTexImage1D, glTexImage2D\r
68 ANT_GL_CORE_DECL(void, glTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
69 ANT_GL_CORE_DECL(void, glTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
70 #else\r
71 ANT_GL_CORE_DECL(void, glTexImage1D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
72 ANT_GL_CORE_DECL(void, glTexImage2D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
73 #endif\r
74 ANT_GL_CORE_DECL(void, glDrawBuffer, (GLenum mode))\r
75 ANT_GL_CORE_DECL(void, glClear, (GLbitfield mask))\r
76 ANT_GL_CORE_DECL(void, glClearColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha))\r
77 ANT_GL_CORE_DECL(void, glClearStencil, (GLint s))\r
78 ANT_GL_CORE_DECL(void, glClearDepth, (GLclampd depth))\r
79 ANT_GL_CORE_DECL(void, glStencilMask, (GLuint mask))\r
80 ANT_GL_CORE_DECL(void, glColorMask, (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha))\r
81 ANT_GL_CORE_DECL(void, glDepthMask, (GLboolean flag))\r
82 ANT_GL_CORE_DECL(void, glDisable, (GLenum cap))\r
83 ANT_GL_CORE_DECL(void, glEnable, (GLenum cap))\r
84 ANT_GL_CORE_DECL(void, glFinish, (void))\r
85 ANT_GL_CORE_DECL(void, glFlush, (void))\r
86 ANT_GL_CORE_DECL(void, glBlendFunc, (GLenum sfactor, GLenum dfactor))\r
87 ANT_GL_CORE_DECL(void, glLogicOp, (GLenum opcode))\r
88 ANT_GL_CORE_DECL(void, glStencilFunc, (GLenum func, GLint ref, GLuint mask))\r
89 ANT_GL_CORE_DECL(void, glStencilOp, (GLenum fail, GLenum zfail, GLenum zpass))\r
90 ANT_GL_CORE_DECL(void, glDepthFunc, (GLenum func))\r
91 ANT_GL_CORE_DECL(void, glPixelStoref, (GLenum pname, GLfloat param))\r
92 ANT_GL_CORE_DECL(void, glPixelStorei, (GLenum pname, GLint param))\r
93 ANT_GL_CORE_DECL(void, glReadBuffer, (GLenum mode))\r
94 ANT_GL_CORE_DECL(void, glReadPixels, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels))\r
95 ANT_GL_CORE_DECL(void, glGetBooleanv, (GLenum pname, GLboolean *params))\r
96 ANT_GL_CORE_DECL(void, glGetDoublev, (GLenum pname, GLdouble *params))\r
97 ANT_GL_CORE_DECL(GLenum, glGetError, (void))\r
98 ANT_GL_CORE_DECL(void, glGetFloatv, (GLenum pname, GLfloat *params))\r
99 ANT_GL_CORE_DECL(void, glGetIntegerv, (GLenum pname, GLint *params))\r
100 ANT_GL_CORE_DECL(const GLubyte *, glGetString, (GLenum name))\r
101 ANT_GL_CORE_DECL(void, glGetTexImage, (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels))\r
102 ANT_GL_CORE_DECL(void, glGetTexParameterfv, (GLenum target, GLenum pname, GLfloat *params))\r
103 ANT_GL_CORE_DECL(void, glGetTexParameteriv, (GLenum target, GLenum pname, GLint *params))\r
104 ANT_GL_CORE_DECL(void, glGetTexLevelParameterfv, (GLenum target, GLint level, GLenum pname, GLfloat *params))\r
105 ANT_GL_CORE_DECL(void, glGetTexLevelParameteriv, (GLenum target, GLint level, GLenum pname, GLint *params))\r
106 ANT_GL_CORE_DECL(GLboolean, glIsEnabled, (GLenum cap))\r
107 ANT_GL_CORE_DECL(void, glDepthRange, (GLclampd near, GLclampd far))\r
108 ANT_GL_CORE_DECL(void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))\r
109 // GL 1.1\r
110 ANT_GL_CORE_DECL(void, glDrawArrays, (GLenum mode, GLint first, GLsizei count))\r
111 ANT_GL_CORE_DECL(void, glDrawElements, (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices))\r
112 ANT_GL_CORE_DECL(void, glGetPointerv, (GLenum pname, GLvoid* *params))\r
113 ANT_GL_CORE_DECL(void, glPolygonOffset, (GLfloat factor, GLfloat units))\r
114 ANT_GL_CORE_DECL(void, glCopyTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border))\r
115 ANT_GL_CORE_DECL(void, glCopyTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border))\r
116 ANT_GL_CORE_DECL(void, glCopyTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width))\r
117 ANT_GL_CORE_DECL(void, glCopyTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height))\r
118 ANT_GL_CORE_DECL(void, glTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels))\r
119 ANT_GL_CORE_DECL(void, glTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels))\r
120 ANT_GL_CORE_DECL(void, glBindTexture, (GLenum target, GLuint texture))\r
121 ANT_GL_CORE_DECL(void, glDeleteTextures, (GLsizei n, const GLuint *textures))\r
122 ANT_GL_CORE_DECL(void, glGenTextures, (GLsizei n, GLuint *textures))\r
123 ANT_GL_CORE_DECL(GLboolean, glIsTexture, (GLuint texture))\r
124 // GL 1.2\r
125 ANT_GL_CORE_DECL(void, glBlendColor, (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha))\r
126 ANT_GL_CORE_DECL(void, glBlendEquation, (GLenum mode))\r
127 ANT_GL_CORE_DECL(void, glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices))\r
128 #if defined(ANT_OSX) && (MAC_OS_X_VERSION_MAX_ALLOWED < 1070)\r
129 // Mac OSX < 10.7 redefines this OpenGL call: glTexImage3D\r
130 ANT_GL_CORE_DECL(void, glTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
131 #else\r
132 ANT_GL_CORE_DECL(void, glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels))\r
133 #endif\r
134 ANT_GL_CORE_DECL(void, glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels))\r
135 ANT_GL_CORE_DECL(void, glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height))\r
136 // GL 1.3\r
137 ANT_GL_CORE_DECL(void, glActiveTexture, (GLenum texture))\r
138 ANT_GL_CORE_DECL(void, glSampleCoverage, (GLclampf value, GLboolean invert))\r
139 ANT_GL_CORE_DECL(void, glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data))\r
140 ANT_GL_CORE_DECL(void, glCompressedTexImage2D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data))\r
141 ANT_GL_CORE_DECL(void, glCompressedTexImage1D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data))\r
142 ANT_GL_CORE_DECL(void, glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data))\r
143 ANT_GL_CORE_DECL(void, glCompressedTexSubImage2D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data))\r
144 ANT_GL_CORE_DECL(void, glCompressedTexSubImage1D, (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data))\r
145 ANT_GL_CORE_DECL(void, glGetCompressedTexImage, (GLenum target, GLint level, GLvoid *img))\r
146 // GL 1.4\r
147 ANT_GL_CORE_DECL(void, glBlendFuncSeparate, (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha))\r
148 ANT_GL_CORE_DECL(void, glMultiDrawArrays, (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount))\r
149 ANT_GL_CORE_DECL(void, glMultiDrawElements, (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount))\r
150 ANT_GL_CORE_DECL(void, glPointParameterf, (GLenum pname, GLfloat param))\r
151 ANT_GL_CORE_DECL(void, glPointParameterfv, (GLenum pname, const GLfloat *params))\r
152 ANT_GL_CORE_DECL(void, glPointParameteri, (GLenum pname, GLint param))\r
153 ANT_GL_CORE_DECL(void, glPointParameteriv, (GLenum pname, const GLint *params))\r
154 // GL 1.5\r
155 #ifndef ANT_OSX\r
156     typedef ptrdiff_t GLintptr;\r
157     typedef ptrdiff_t GLsizeiptr;\r
158 #endif\r
159 ANT_GL_CORE_DECL(void, glGenQueries, (GLsizei n, GLuint *ids))\r
160 ANT_GL_CORE_DECL(void, glDeleteQueries, (GLsizei n, const GLuint *ids))\r
161 ANT_GL_CORE_DECL(GLboolean, glIsQuery, (GLuint id))\r
162 ANT_GL_CORE_DECL(void, glBeginQuery, (GLenum target, GLuint id))\r
163 ANT_GL_CORE_DECL(void, glEndQuery, (GLenum target))\r
164 ANT_GL_CORE_DECL(void, glGetQueryiv, (GLenum target, GLenum pname, GLint *params))\r
165 ANT_GL_CORE_DECL(void, glGetQueryObjectiv, (GLuint id, GLenum pname, GLint *params))\r
166 ANT_GL_CORE_DECL(void, glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint *params))\r
167 ANT_GL_CORE_DECL(void, glBindBuffer, (GLenum target, GLuint buffer))\r
168 ANT_GL_CORE_DECL(void, glDeleteBuffers, (GLsizei n, const GLuint *buffers))\r
169 ANT_GL_CORE_DECL(void, glGenBuffers, (GLsizei n, GLuint *buffers))\r
170 ANT_GL_CORE_DECL(GLboolean, glIsBuffer, (GLuint buffer))\r
171 ANT_GL_CORE_DECL(void, glBufferData, (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage))\r
172 ANT_GL_CORE_DECL(void, glBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data))\r
173 ANT_GL_CORE_DECL(void, glGetBufferSubData, (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data))\r
174 ANT_GL_CORE_DECL(GLvoid*, glMapBuffer, (GLenum target, GLenum access))\r
175 ANT_GL_CORE_DECL(GLboolean, glUnmapBuffer, (GLenum target))\r
176 ANT_GL_CORE_DECL(void, glGetBufferParameteriv, (GLenum target, GLenum pname, GLint *params))\r
177 ANT_GL_CORE_DECL(void, glGetBufferPointerv, (GLenum target, GLenum pname, GLvoid* *params))\r
178 // GL 2.0\r
179 typedef char GLchar;\r
180 ANT_GL_CORE_DECL(void, glBlendEquationSeparate, (GLenum modeRGB, GLenum modeAlpha))\r
181 ANT_GL_CORE_DECL(void, glDrawBuffers, (GLsizei n, const GLenum *bufs))\r
182 ANT_GL_CORE_DECL(void, glStencilOpSeparate, (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass))\r
183 ANT_GL_CORE_DECL(void, glStencilFuncSeparate, (GLenum face, GLenum func, GLint ref, GLuint mask))\r
184 ANT_GL_CORE_DECL(void, glStencilMaskSeparate, (GLenum face, GLuint mask))\r
185 ANT_GL_CORE_DECL(void, glAttachShader, (GLuint program, GLuint shader))\r
186 ANT_GL_CORE_DECL(void, glBindAttribLocation, (GLuint program, GLuint index, const GLchar *name))\r
187 ANT_GL_CORE_DECL(void, glCompileShader, (GLuint shader))\r
188 ANT_GL_CORE_DECL(GLuint, glCreateProgram, (void))\r
189 ANT_GL_CORE_DECL(GLuint, glCreateShader, (GLenum type))\r
190 ANT_GL_CORE_DECL(void, glDeleteProgram, (GLuint program))\r
191 ANT_GL_CORE_DECL(void, glDeleteShader, (GLuint shader))\r
192 ANT_GL_CORE_DECL(void, glDetachShader, (GLuint program, GLuint shader))\r
193 ANT_GL_CORE_DECL(void, glDisableVertexAttribArray, (GLuint index))\r
194 ANT_GL_CORE_DECL(void, glEnableVertexAttribArray, (GLuint index))\r
195 ANT_GL_CORE_DECL(void, glGetActiveAttrib, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name))\r
196 ANT_GL_CORE_DECL(void, glGetActiveUniform, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name))\r
197 ANT_GL_CORE_DECL(void, glGetAttachedShaders, (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj))\r
198 ANT_GL_CORE_DECL(GLint, glGetAttribLocation, (GLuint program, const GLchar *name))\r
199 ANT_GL_CORE_DECL(void, glGetProgramiv, (GLuint program, GLenum pname, GLint *params))\r
200 ANT_GL_CORE_DECL(void, glGetProgramInfoLog, (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog))\r
201 ANT_GL_CORE_DECL(void, glGetShaderiv, (GLuint shader, GLenum pname, GLint *params))\r
202 ANT_GL_CORE_DECL(void, glGetShaderInfoLog, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog))\r
203 ANT_GL_CORE_DECL(void, glGetShaderSource, (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source))\r
204 ANT_GL_CORE_DECL(GLint, glGetUniformLocation, (GLuint program, const GLchar *name))\r
205 ANT_GL_CORE_DECL(void, glGetUniformfv, (GLuint program, GLint location, GLfloat *params))\r
206 ANT_GL_CORE_DECL(void, glGetUniformiv, (GLuint program, GLint location, GLint *params))\r
207 ANT_GL_CORE_DECL(void, glGetVertexAttribdv, (GLuint index, GLenum pname, GLdouble *params))\r
208 ANT_GL_CORE_DECL(void, glGetVertexAttribfv, (GLuint index, GLenum pname, GLfloat *params))\r
209 ANT_GL_CORE_DECL(void, glGetVertexAttribiv, (GLuint index, GLenum pname, GLint *params))\r
210 ANT_GL_CORE_DECL(void, glGetVertexAttribPointerv, (GLuint index, GLenum pname, GLvoid* *pointer))\r
211 ANT_GL_CORE_DECL(GLboolean, glIsProgram, (GLuint program))\r
212 ANT_GL_CORE_DECL(GLboolean, glIsShader, (GLuint shader))\r
213 ANT_GL_CORE_DECL(void, glLinkProgram, (GLuint program))\r
214 ANT_GL_CORE_DECL(void, glShaderSource, (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length))\r
215 ANT_GL_CORE_DECL(void, glUseProgram, (GLuint program))\r
216 ANT_GL_CORE_DECL(void, glUniform1f, (GLint location, GLfloat v0))\r
217 ANT_GL_CORE_DECL(void, glUniform2f, (GLint location, GLfloat v0, GLfloat v1))\r
218 ANT_GL_CORE_DECL(void, glUniform3f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2))\r
219 ANT_GL_CORE_DECL(void, glUniform4f, (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3))\r
220 ANT_GL_CORE_DECL(void, glUniform1i, (GLint location, GLint v0))\r
221 ANT_GL_CORE_DECL(void, glUniform2i, (GLint location, GLint v0, GLint v1))\r
222 ANT_GL_CORE_DECL(void, glUniform3i, (GLint location, GLint v0, GLint v1, GLint v2))\r
223 ANT_GL_CORE_DECL(void, glUniform4i, (GLint location, GLint v0, GLint v1, GLint v2, GLint v3))\r
224 ANT_GL_CORE_DECL(void, glUniform1fv, (GLint location, GLsizei count, const GLfloat *value))\r
225 ANT_GL_CORE_DECL(void, glUniform2fv, (GLint location, GLsizei count, const GLfloat *value))\r
226 ANT_GL_CORE_DECL(void, glUniform3fv, (GLint location, GLsizei count, const GLfloat *value))\r
227 ANT_GL_CORE_DECL(void, glUniform4fv, (GLint location, GLsizei count, const GLfloat *value))\r
228 ANT_GL_CORE_DECL(void, glUniform1iv, (GLint location, GLsizei count, const GLint *value))\r
229 ANT_GL_CORE_DECL(void, glUniform2iv, (GLint location, GLsizei count, const GLint *value))\r
230 ANT_GL_CORE_DECL(void, glUniform3iv, (GLint location, GLsizei count, const GLint *value))\r
231 ANT_GL_CORE_DECL(void, glUniform4iv, (GLint location, GLsizei count, const GLint *value))\r
232 ANT_GL_CORE_DECL(void, glUniformMatrix2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
233 ANT_GL_CORE_DECL(void, glUniformMatrix3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
234 ANT_GL_CORE_DECL(void, glUniformMatrix4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
235 ANT_GL_CORE_DECL(void, glValidateProgram, (GLuint program))\r
236 ANT_GL_CORE_DECL(void, glVertexAttrib1d, (GLuint index, GLdouble x))\r
237 ANT_GL_CORE_DECL(void, glVertexAttrib1dv, (GLuint index, const GLdouble *v))\r
238 ANT_GL_CORE_DECL(void, glVertexAttrib1f, (GLuint index, GLfloat x))\r
239 ANT_GL_CORE_DECL(void, glVertexAttrib1fv, (GLuint index, const GLfloat *v))\r
240 ANT_GL_CORE_DECL(void, glVertexAttrib1s, (GLuint index, GLshort x))\r
241 ANT_GL_CORE_DECL(void, glVertexAttrib1sv, (GLuint index, const GLshort *v))\r
242 ANT_GL_CORE_DECL(void, glVertexAttrib2d, (GLuint index, GLdouble x, GLdouble y))\r
243 ANT_GL_CORE_DECL(void, glVertexAttrib2dv, (GLuint index, const GLdouble *v))\r
244 ANT_GL_CORE_DECL(void, glVertexAttrib2f, (GLuint index, GLfloat x, GLfloat y))\r
245 ANT_GL_CORE_DECL(void, glVertexAttrib2fv, (GLuint index, const GLfloat *v))\r
246 ANT_GL_CORE_DECL(void, glVertexAttrib2s, (GLuint index, GLshort x, GLshort y))\r
247 ANT_GL_CORE_DECL(void, glVertexAttrib2sv, (GLuint index, const GLshort *v))\r
248 ANT_GL_CORE_DECL(void, glVertexAttrib3d, (GLuint index, GLdouble x, GLdouble y, GLdouble z))\r
249 ANT_GL_CORE_DECL(void, glVertexAttrib3dv, (GLuint index, const GLdouble *v))\r
250 ANT_GL_CORE_DECL(void, glVertexAttrib3f, (GLuint index, GLfloat x, GLfloat y, GLfloat z))\r
251 ANT_GL_CORE_DECL(void, glVertexAttrib3fv, (GLuint index, const GLfloat *v))\r
252 ANT_GL_CORE_DECL(void, glVertexAttrib3s, (GLuint index, GLshort x, GLshort y, GLshort z))\r
253 ANT_GL_CORE_DECL(void, glVertexAttrib3sv, (GLuint index, const GLshort *v))\r
254 ANT_GL_CORE_DECL(void, glVertexAttrib4Nbv, (GLuint index, const GLbyte *v))\r
255 ANT_GL_CORE_DECL(void, glVertexAttrib4Niv, (GLuint index, const GLint *v))\r
256 ANT_GL_CORE_DECL(void, glVertexAttrib4Nsv, (GLuint index, const GLshort *v))\r
257 ANT_GL_CORE_DECL(void, glVertexAttrib4Nub, (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w))\r
258 ANT_GL_CORE_DECL(void, glVertexAttrib4Nubv, (GLuint index, const GLubyte *v))\r
259 ANT_GL_CORE_DECL(void, glVertexAttrib4Nuiv, (GLuint index, const GLuint *v))\r
260 ANT_GL_CORE_DECL(void, glVertexAttrib4Nusv, (GLuint index, const GLushort *v))\r
261 ANT_GL_CORE_DECL(void, glVertexAttrib4bv, (GLuint index, const GLbyte *v))\r
262 ANT_GL_CORE_DECL(void, glVertexAttrib4d, (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w))\r
263 ANT_GL_CORE_DECL(void, glVertexAttrib4dv, (GLuint index, const GLdouble *v))\r
264 ANT_GL_CORE_DECL(void, glVertexAttrib4f, (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w))\r
265 ANT_GL_CORE_DECL(void, glVertexAttrib4fv, (GLuint index, const GLfloat *v))\r
266 ANT_GL_CORE_DECL(void, glVertexAttrib4iv, (GLuint index, const GLint *v))\r
267 ANT_GL_CORE_DECL(void, glVertexAttrib4s, (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w))\r
268 ANT_GL_CORE_DECL(void, glVertexAttrib4sv, (GLuint index, const GLshort *v))\r
269 ANT_GL_CORE_DECL(void, glVertexAttrib4ubv, (GLuint index, const GLubyte *v))\r
270 ANT_GL_CORE_DECL(void, glVertexAttrib4uiv, (GLuint index, const GLuint *v))\r
271 ANT_GL_CORE_DECL(void, glVertexAttrib4usv, (GLuint index, const GLushort *v))\r
272 ANT_GL_CORE_DECL(void, glVertexAttribPointer, (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer))\r
273 /*\r
274 // GL 2.1\r
275 ANT_GL_CORE_DECL(void, glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
276 ANT_GL_CORE_DECL(void, glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
277 ANT_GL_CORE_DECL(void, glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
278 ANT_GL_CORE_DECL(void, glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
279 ANT_GL_CORE_DECL(void, glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
280 ANT_GL_CORE_DECL(void, glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))\r
281 // GL 3.0\r
282 ANT_GL_CORE_DECL(void, glColorMaski, (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a))\r
283 ANT_GL_CORE_DECL(void, glGetBooleani_v, (GLenum target, GLuint index, GLboolean *data))\r
284 ANT_GL_CORE_DECL(void, glGetIntegeri_v, (GLenum target, GLuint index, GLint *data))\r
285 ANT_GL_CORE_DECL(void, glEnablei, (GLenum target, GLuint index))\r
286 ANT_GL_CORE_DECL(void, glDisablei, (GLenum target, GLuint index))\r
287 ANT_GL_CORE_DECL(GLboolean, glIsEnabledi, (GLenum target, GLuint index))\r
288 ANT_GL_CORE_DECL(void, glBeginTransformFeedback, (GLenum primitiveMode))\r
289 ANT_GL_CORE_DECL(void, glEndTransformFeedback, (void))\r
290 ANT_GL_CORE_DECL(void, glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size))\r
291 ANT_GL_CORE_DECL(void, glBindBufferBase, (GLenum target, GLuint index, GLuint buffer))\r
292 ANT_GL_CORE_DECL(void, glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode))\r
293 ANT_GL_CORE_DECL(void, glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name))\r
294 ANT_GL_CORE_DECL(void, glClampColor, (GLenum target, GLenum clamp))\r
295 ANT_GL_CORE_DECL(void, glBeginConditionalRender, (GLuint id, GLenum mode))\r
296 ANT_GL_CORE_DECL(void, glEndConditionalRender, (void))\r
297 ANT_GL_CORE_DECL(void, glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer))\r
298 ANT_GL_CORE_DECL(void, glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint *params))\r
299 ANT_GL_CORE_DECL(void, glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint *params))\r
300 ANT_GL_CORE_DECL(void, glVertexAttribI1i, (GLuint index, GLint x))\r
301 ANT_GL_CORE_DECL(void, glVertexAttribI2i, (GLuint index, GLint x, GLint y))\r
302 ANT_GL_CORE_DECL(void, glVertexAttribI3i, (GLuint index, GLint x, GLint y, GLint z))\r
303 ANT_GL_CORE_DECL(void, glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w))\r
304 ANT_GL_CORE_DECL(void, glVertexAttribI1ui, (GLuint index, GLuint x))\r
305 ANT_GL_CORE_DECL(void, glVertexAttribI2ui, (GLuint index, GLuint x, GLuint y))\r
306 ANT_GL_CORE_DECL(void, glVertexAttribI3ui, (GLuint index, GLuint x, GLuint y, GLuint z))\r
307 ANT_GL_CORE_DECL(void, glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w))\r
308 ANT_GL_CORE_DECL(void, glVertexAttribI1iv, (GLuint index, const GLint *v))\r
309 ANT_GL_CORE_DECL(void, glVertexAttribI2iv, (GLuint index, const GLint *v))\r
310 ANT_GL_CORE_DECL(void, glVertexAttribI3iv, (GLuint index, const GLint *v))\r
311 ANT_GL_CORE_DECL(void, glVertexAttribI4iv, (GLuint index, const GLint *v))\r
312 ANT_GL_CORE_DECL(void, glVertexAttribI1uiv, (GLuint index, const GLuint *v))\r
313 ANT_GL_CORE_DECL(void, glVertexAttribI2uiv, (GLuint index, const GLuint *v))\r
314 ANT_GL_CORE_DECL(void, glVertexAttribI3uiv, (GLuint index, const GLuint *v))\r
315 ANT_GL_CORE_DECL(void, glVertexAttribI4uiv, (GLuint index, const GLuint *v))\r
316 ANT_GL_CORE_DECL(void, glVertexAttribI4bv, (GLuint index, const GLbyte *v))\r
317 ANT_GL_CORE_DECL(void, glVertexAttribI4sv, (GLuint index, const GLshort *v))\r
318 ANT_GL_CORE_DECL(void, glVertexAttribI4ubv, (GLuint index, const GLubyte *v))\r
319 ANT_GL_CORE_DECL(void, glVertexAttribI4usv, (GLuint index, const GLushort *v))\r
320 ANT_GL_CORE_DECL(void, glGetUniformuiv, (GLuint program, GLint location, GLuint *params))\r
321 ANT_GL_CORE_DECL(void, glBindFragDataLocation, (GLuint program, GLuint color, const GLchar *name))\r
322 ANT_GL_CORE_DECL(GLint, glGetFragDataLocation, (GLuint program, const GLchar *name))\r
323 ANT_GL_CORE_DECL(void, glUniform1ui, (GLint location, GLuint v0))\r
324 ANT_GL_CORE_DECL(void, glUniform2ui, (GLint location, GLuint v0, GLuint v1))\r
325 ANT_GL_CORE_DECL(void, glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2))\r
326 ANT_GL_CORE_DECL(void, glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3))\r
327 ANT_GL_CORE_DECL(void, glUniform1uiv, (GLint location, GLsizei count, const GLuint *value))\r
328 ANT_GL_CORE_DECL(void, glUniform2uiv, (GLint location, GLsizei count, const GLuint *value))\r
329 ANT_GL_CORE_DECL(void, glUniform3uiv, (GLint location, GLsizei count, const GLuint *value))\r
330 ANT_GL_CORE_DECL(void, glUniform4uiv, (GLint location, GLsizei count, const GLuint *value))\r
331 ANT_GL_CORE_DECL(void, glTexParameterIiv, (GLenum target, GLenum pname, const GLint *params))\r
332 ANT_GL_CORE_DECL(void, glTexParameterIuiv, (GLenum target, GLenum pname, const GLuint *params))\r
333 ANT_GL_CORE_DECL(void, glGetTexParameterIiv, (GLenum target, GLenum pname, GLint *params))\r
334 ANT_GL_CORE_DECL(void, glGetTexParameterIuiv, (GLenum target, GLenum pname, GLuint *params))\r
335 ANT_GL_CORE_DECL(void, glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint *value))\r
336 ANT_GL_CORE_DECL(void, glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint *value))\r
337 ANT_GL_CORE_DECL(void, glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat *value))\r
338 ANT_GL_CORE_DECL(void, glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil))\r
339 ANT_GL_CORE_DECL(const GLubyte *, glGetStringi, (GLenum name, GLuint index))\r
340 // GL 3.1\r
341 ANT_GL_CORE_DECL(void, glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei primcount))\r
342 ANT_GL_CORE_DECL(void, glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount))\r
343 ANT_GL_CORE_DECL(void, glTexBuffer, (GLenum target, GLenum internalformat, GLuint buffer))\r
344 ANT_GL_CORE_DECL(void, glPrimitiveRestartIndex, (GLuint index))\r
345 // GL 3.2\r
346 //typedef int64_t GLint64;\r
347 //ANT_GL_CORE_DECL(void, glGetInteger64i_v, (GLenum target, GLuint index, GLint64 *data))\r
348 //ANT_GL_CORE_DECL(void, glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64 *params))\r
349 ANT_GL_CORE_DECL(void, glFramebufferTexture, (GLenum target, GLenum attachment, GLuint texture, GLint level))\r
350 */\r
351 // GL_ARB_vertex_array_object\r
352 ANT_GL_CORE_DECL_NO_FORWARD(void, glBindVertexArray, (GLuint array))\r
353 ANT_GL_CORE_DECL_NO_FORWARD(void, glDeleteVertexArrays, (GLsizei n, const GLuint *arrays))\r
354 ANT_GL_CORE_DECL_NO_FORWARD(void, glGenVertexArrays, (GLsizei n, GLuint *arrays))\r
355 ANT_GL_CORE_DECL_NO_FORWARD(GLboolean, glIsVertexArray, (GLuint array))\r
356 \r
357 \r
358 #ifdef ANT_WINDOWS\r
359 ANT_GL_CORE_DECL(PROC, wglGetProcAddress, (LPCSTR))\r
360 #endif                                                                                                                                                                                                                                                                                                                                                \r
361 \r
362 #ifndef GL_CLAMP_TO_EDGE\r
363 #   define GL_CLAMP_TO_EDGE     0x812F\r
364 #endif\r
365 #ifndef GL_COMPILE_STATUS\r
366 #   define GL_COMPILE_STATUS    0x8B81\r
367 #endif\r
368 #ifndef GL_INFO_LOG_LENGTH\r
369 #   define GL_INFO_LOG_LENGTH   0x8B84\r
370 #endif\r
371 #ifndef GL_LINK_STATUS\r
372 #   define GL_LINK_STATUS       0x8B82\r
373 #endif\r
374 #ifndef GL_ARRAY_BUFFER\r
375 #   define GL_ARRAY_BUFFER      0x8892\r
376 #endif\r
377 #ifndef GL_DYNAMIC_DRAW\r
378 #   define GL_DYNAMIC_DRAW      0x88E8\r
379 #endif\r
380 #ifndef GL_VERTEX_SHADER\r
381 #   define GL_VERTEX_SHADER     0x8B31\r
382 #endif\r
383 #ifndef GL_FRAGMENT_SHADER\r
384 #   define GL_FRAGMENT_SHADER   0x8B30\r
385 #endif\r
386 #ifndef GL_VERTEX_ARRAY_BINDING\r
387 #   define GL_VERTEX_ARRAY_BINDING  0x85B5\r
388 #endif\r
389 #ifndef GL_CURRENT_PROGRAM\r
390 #   define GL_CURRENT_PROGRAM   0x8B8D\r
391 #endif\r
392 #ifndef GL_ACTIVE_TEXTURE\r
393 #   define GL_ACTIVE_TEXTURE    0x84E0\r
394 #endif\r
395 #ifndef GL_TEXTURE0\r
396 #   define GL_TEXTURE0          0x84C0\r
397 #endif\r
398 #ifndef GL_BGRA\r
399 #   define GL_BGRA              0x80E1\r
400 #endif\r
401 \r
402 \r
403 #endif // !defined ANT_LOAD_OGL_CORE_INCLUDED\r