1 
2 //////////////////////////////////////////////////////////////////////////////////////////////////
3 #ifndef _EVASGL_EXT_BEGIN
4 
5 #define _EVASGL_EXT_USE_DEFAULT_DEFINE
6 
7 #define _EVASGL_EXT_CHECK_SUPPORT(name)
8 #define _EVASGL_EXT_DISCARD_SUPPORT()
9 
10 // Begin of the extension block (name : EVAS extension name)
11 #define _EVASGL_EXT_BEGIN(name)
12 // End of the extension block
13 #define _EVASGL_EXT_END()
14 
15 // Driver extensions to wrap (name : SPEC extension name)
16 #define _EVASGL_EXT_DRVNAME(name)
17 #define _EVASGL_EXT_DRVNAME_PRIVATE(name)
18 #define _EVASGL_EXT_DRVNAME_DESKTOP(deskname)
19 
20 // These functions will be exported to 'EVAS extension function'.
21 // The functions of this block must correspond with the functions list in Evas_GL.h.
22 // Begin of the extension function block (ret : return value, name : function name, param1 : parameters with bracket, param2 : parameters without type)
23 #define _EVASGL_EXT_FUNCTION_BEGIN(ret, name, param1, param2) ret (*name) param1;
24 // End of the extension function block
25 #define _EVASGL_EXT_FUNCTION_END()
26 
27 // These functions will not be exported. Only be used in engines privately.
28 // Begin of the extension function block (ret : return value, name : function name, param1 : parameters with bracket, param2 : parameters without type)
29 #define _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(ret, name, param1, param2)
30 // End of the extension function block
31 #define _EVASGL_EXT_FUNCTION_PRIVATE_END()
32 
33 // These functions will not be considered for export for GLESv1
34 // Begin of the glesv1 bypass function block
35 #define _EVASGL_EXT_FUNCTION_DISABLE_FOR_GLES1_BEGIN()
36 // End of the glesv1 bypass function block
37 #define _EVASGL_EXT_FUNCTION_DISABLE_FOR_GLES1_END()
38 
39 // Driver extension functions to wrap (name : SPEC extension function name)
40 #define _EVASGL_EXT_FUNCTION_DRVFUNC(name)
41 
42 // Driver extension functions that need no wrapping
43 #define _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR(name)
44 
45 #endif
46 //////////////////////////////////////////////////////////////////////////////////////////////////
47 
48 #ifndef _EVASGL_EXT_DRVNAME_PRIVATE
49 #define _EVASGL_EXT_DRVNAME_PRIVATE(name) _EVASGL_EXT_DRVNAME(name)
50 #define _EVASGL_EXT_DRVNAME_PRIVATE_DEFINED
51 #endif
52 
53 #ifndef _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN
54 #define _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(ret, name, param1, param2) _EVASGL_EXT_FUNCTION_BEGIN(ret, name, param1, param2)
55 #define _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN_DEFINED
56 #endif
57 
58 #ifndef _EVASGL_EXT_FUNCTION_PRIVATE_END
59 #define _EVASGL_EXT_FUNCTION_PRIVATE_END() _EVASGL_EXT_FUNCTION_END()
60 #define _EVASGL_EXT_FUNCTION_PRIVATE_END_DEFINED
61 #endif
62 
63 #ifndef _EVASGL_EXT_WHITELIST_ONLY
64 # define _EVASGL_EXT_WHITELIST_ONLY 1
65 #endif
66 
67 #ifndef _EVASGL_EXT_ENABLE_GL_GLES
68 # define _EVASGL_EXT_ENABLE_GL_GLES 1
69 #endif
70 
71 #ifndef _EVASGL_EXT_ENABLE_EGL
72 # define _EVASGL_EXT_ENABLE_EGL 1
73 #endif
74 
75 #ifndef _EVASGL_EXT_FUNCTION_WHITELIST
76 # define _EVASGL_EXT_FUNCTION_WHITELIST(name)
77 #endif
78 
79 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
80 // GL/GLES EXTENSIONS
81 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
82 #if _EVASGL_EXT_ENABLE_GL_GLES
83 _EVASGL_EXT_BEGIN(get_program_binary)
_EVASGL_EXT_DRVNAME(GL_OES_get_program_binary)84 	_EVASGL_EXT_DRVNAME(GL_OES_get_program_binary)
85 
86 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetProgramBinaryOES, (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary), (program, bufSize, length, binaryFormat, binary))
87                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetProgramBinary")
88                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetProgramBinaryOES")
89 	_EVASGL_EXT_FUNCTION_END()
90 	_EVASGL_EXT_FUNCTION_BEGIN(void, glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length), (program, binaryFormat, binary, length))
91                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glProgramBinary")
92                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glProgramBinaryOES")
93 	_EVASGL_EXT_FUNCTION_END()
94 _EVASGL_EXT_END()
95 
96 
97 _EVASGL_EXT_BEGIN(mapbuffer)
98 	_EVASGL_EXT_DRVNAME(GL_OES_mapbuffer)
99 
100 	_EVASGL_EXT_FUNCTION_BEGIN(void *, glMapBufferOES, (GLenum target, GLenum access), (target, access))
101                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMapBuffer")
102                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMapBufferOES")
103 	_EVASGL_EXT_FUNCTION_END()
104 	_EVASGL_EXT_FUNCTION_BEGIN(GLboolean, glUnmapBufferOES, (GLenum target), (target))
105                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glUnmapBuffer")
106                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glUnmapBufferOES")
107 	_EVASGL_EXT_FUNCTION_END()
108 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetBufferPointervOES, (GLenum target, GLenum pname, void** params), (target, pname, params))
109                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetBufferPointerv")
110                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetBufferPointervOES")
111 	_EVASGL_EXT_FUNCTION_END()
112 _EVASGL_EXT_END()
113 
114 _EVASGL_EXT_BEGIN(texture_3D)
115 	_EVASGL_EXT_DRVNAME(GL_OES_texture_3D)
116 
117 	_EVASGL_EXT_FUNCTION_BEGIN(void, glTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels), (target, level, internalformat, width, height, depth, border, format, type, pixels))
118                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexImage3D")
119                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexImage3DOES")
120 	_EVASGL_EXT_FUNCTION_END()
121 	_EVASGL_EXT_FUNCTION_BEGIN(void, glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels))
122                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexSubImage3D")
123                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexSubImage3DOES")
124 	_EVASGL_EXT_FUNCTION_END()
125 	_EVASGL_EXT_FUNCTION_BEGIN(void, glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height), (target, level, xoffset, yoffset, zoffset, x, y, width, height))
126                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCopyTexSubImage3D")
127                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCopyTexSubImage3DOES")
128 	_EVASGL_EXT_FUNCTION_END()
129 	_EVASGL_EXT_FUNCTION_BEGIN(void, glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data), (target, level, internalformat, width, height, depth, border, imageSize, data))
130                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCompressedTexImage3D")
131                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCompressedTexImage3DOES")
132 	_EVASGL_EXT_FUNCTION_END()
133 	_EVASGL_EXT_FUNCTION_BEGIN(void, glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data))
134                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCompressedTexSubImage3D")
135                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCompressedTexSubImage3DOES")
136 	_EVASGL_EXT_FUNCTION_END()
137 	_EVASGL_EXT_FUNCTION_BEGIN(void, glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset), (target, attachment, textarget, texture, level, zoffset))
138                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture3D")
139                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture3DOES")
140 	_EVASGL_EXT_FUNCTION_END()
141 _EVASGL_EXT_END()
142 
143 
144 _EVASGL_EXT_BEGIN(AMD_performance_monitor)
145 	_EVASGL_EXT_DRVNAME(GL_AMD_performance_monitor)
146 
147 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorGroupsAMD, (GLint* numGroups, GLsizei groupsSize, GLuint* groups), (numGroups, groupsSize, groups))
148                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorGroupsAMD")
149 	_EVASGL_EXT_FUNCTION_END()
150 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorCountersAMD, (GLuint group, GLint* numCounters, GLint* maxActiveCounters, GLsizei counterSize, GLuint* counters), (group, numCounters, maxActiveCounters, counterSize, counters))
151                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorCountersAMD")
152 	_EVASGL_EXT_FUNCTION_END()
153 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorGroupStringAMD, (GLuint group, GLsizei bufSize, GLsizei* length, char* groupString), (group, bufSize, length, groupString))
154                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorGroupStringAMD")
155 	_EVASGL_EXT_FUNCTION_END()
156 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorCounterStringAMD, (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char* counterString), (group, counter, bufSize, length, counterString))
157                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorCounterStringAMD")
158 	_EVASGL_EXT_FUNCTION_END()
159 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorCounterInfoAMD, (GLuint group, GLuint counter, GLenum pname, void* data), (group, counter, pname, data))
160                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorCounterInfoAMD")
161 	_EVASGL_EXT_FUNCTION_END()
162 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGenPerfMonitorsAMD, (GLsizei n, GLuint* monitors), (n, monitors))
163                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenPerfMonitorsAMD")
164 	_EVASGL_EXT_FUNCTION_END()
165 	_EVASGL_EXT_FUNCTION_BEGIN(void, glDeletePerfMonitorsAMD, (GLsizei n, GLuint* monitors), (n, monitors))
166                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeletePerfMonitorsAMD")
167 	_EVASGL_EXT_FUNCTION_END()
168 	_EVASGL_EXT_FUNCTION_BEGIN(void, glSelectPerfMonitorCountersAMD, (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* countersList), (monitor, enable, group, numCounters, countersList))
169                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glSelectPerfMonitorCountersAMD")
170 	_EVASGL_EXT_FUNCTION_END()
171 	_EVASGL_EXT_FUNCTION_BEGIN(void, glBeginPerfMonitorAMD, (GLuint monitor), (monitor))
172                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBeginPerfMonitorAMD")
173 	_EVASGL_EXT_FUNCTION_END()
174 	_EVASGL_EXT_FUNCTION_BEGIN(void, glEndPerfMonitorAMD, (GLuint monitor), (monitor))
175                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glEndPerfMonitorAMD")
176 	_EVASGL_EXT_FUNCTION_END()
177 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetPerfMonitorCounterDataAMD, (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint* bytesWritten), (monitor, pname, dataSize, data, bytesWritten))
178                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetPerfMonitorCounterDataAMD")
179 	_EVASGL_EXT_FUNCTION_END()
180 _EVASGL_EXT_END()
181 
182 
183 _EVASGL_EXT_BEGIN(discard_framebuffer)
184 	_EVASGL_EXT_DRVNAME(GL_EXT_discard_framebuffer)
185 
186 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glDiscardFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum* attachments), (target, numAttachments, attachments))
187                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDiscardFramebuffer")
188                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDiscardFramebufferEXT")
189 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
190 
191 	_EVASGL_EXT_FUNCTION_BEGIN(void, glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum* attachments), (target, numAttachments, attachments))
192                 _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_glDiscardFramebufferEXT)
193 	_EVASGL_EXT_FUNCTION_END()
194 _EVASGL_EXT_END()
195 
196 
197 
198 _EVASGL_EXT_BEGIN(multi_draw_arrays)
199 	_EVASGL_EXT_DRVNAME(GL_EXT_multi_draw_arrays)
200 
201 	_EVASGL_EXT_FUNCTION_BEGIN(void, glMultiDrawArraysEXT, (GLenum mode, GLint* first, GLsizei* count, GLsizei primcount), (mode, first, count, primcount))
202                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiDrawArrays")
203                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiDrawArraysEXT")
204 	_EVASGL_EXT_FUNCTION_END()
205 	_EVASGL_EXT_FUNCTION_BEGIN(void, glMultiDrawElementsEXT, (GLenum mode, const GLsizei* count, GLenum type, const GLvoid** indices, GLsizei primcount), (mode, count, type, indices, primcount))
206                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiDrawElements")
207                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiDrawElementsEXT")
208                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiDrawElementsARB")
209 	_EVASGL_EXT_FUNCTION_END()
210 _EVASGL_EXT_END()
211 
212 
213 _EVASGL_EXT_BEGIN(NV_fence)
214 	_EVASGL_EXT_DRVNAME(GL_NV_fence)
215 
216 	_EVASGL_EXT_FUNCTION_BEGIN(void, glDeleteFencesNV, (GLsizei n, const GLuint* fences), (n, fences))
217                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteFencesNV")
218 	_EVASGL_EXT_FUNCTION_END()
219 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGenFencesNV, (GLsizei n, GLuint* fences), (n, fences))
220                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenFencesNV")
221 	_EVASGL_EXT_FUNCTION_END()
222 	_EVASGL_EXT_FUNCTION_BEGIN(unsigned char, glIsFenceNV, (GLuint fence), (fence))
223                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsFenceNV")
224 	_EVASGL_EXT_FUNCTION_END()
225 	_EVASGL_EXT_FUNCTION_BEGIN(unsigned char, glTestFenceNV, (GLuint fence), (fence))
226                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTestFenceNV")
227 	_EVASGL_EXT_FUNCTION_END()
228 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetFenceivNV, (GLuint fence, GLenum pname, GLint* params), (fence, pname, params))
229                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetFenceivNV")
230 	_EVASGL_EXT_FUNCTION_END()
231 	_EVASGL_EXT_FUNCTION_BEGIN(void, glFinishFenceNV, (GLuint fence), (fence))
232                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFinishFenceNV")
233 	_EVASGL_EXT_FUNCTION_END()
234 	_EVASGL_EXT_FUNCTION_BEGIN(void, glSetFenceNV, (GLuint fence, GLenum condition), (fence, condition))
235                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glSetFenceNV")
236 	_EVASGL_EXT_FUNCTION_END()
237 _EVASGL_EXT_END()
238 
239 
240 _EVASGL_EXT_BEGIN(QCOM_driver_control)
241 	_EVASGL_EXT_DRVNAME(GL_QCOM_driver_control)
242 
243 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetDriverControlsQCOM, (GLint* num, GLsizei size, GLuint* driverControls), (num, size, driverControls))
244                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetDriverControlsQCOM")
245 	_EVASGL_EXT_FUNCTION_END()
246 	_EVASGL_EXT_FUNCTION_BEGIN(void, glGetDriverControlStringQCOM, (GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString), (driverControl, bufSize, length, driverControlString))
247                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetDriverControlStringQCOM")
248 	_EVASGL_EXT_FUNCTION_END()
249 	_EVASGL_EXT_FUNCTION_BEGIN(void, glEnableDriverControlQCOM, (GLuint driverControl), (driverControl))
250                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glEnableDriverControlQCOM")
251 	_EVASGL_EXT_FUNCTION_END()
252 	_EVASGL_EXT_FUNCTION_BEGIN(void, glDisableDriverControlQCOM, (GLuint driverControl), (driverControl))
253                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDisableDriverControlQCOM")
254 	_EVASGL_EXT_FUNCTION_END()
255 _EVASGL_EXT_END()
256 
257 
258 _EVASGL_EXT_BEGIN(QCOM_extended_get)
259 	_EVASGL_EXT_DRVNAME(GL_QCOM_extended_get)
260 
261 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetTexturesQCOM, (GLuint* textures, GLint maxTextures, GLint* numTextures), (textures, maxTextures, numTextures))
262                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetTexturesQCOM")
263 	_EVASGL_EXT_FUNCTION_END()
264 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetBuffersQCOM, (GLuint* buffers, GLint maxBuffers, GLint* numBuffers), (buffers, maxBuffers, numBuffers))
265                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetBuffersQCOM")
266 	_EVASGL_EXT_FUNCTION_END()
267 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetRenderbuffersQCOM, (GLuint* renderbuffers, GLint maxRenderbuffers, GLint* numRenderbuffers), (renderbuffers, maxRenderbuffers, numRenderbuffers))
268                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetRenderbuffersQCOM")
269 	_EVASGL_EXT_FUNCTION_END()
270 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetFramebuffersQCOM, (GLuint* framebuffers, GLint maxFramebuffers, GLint* numFramebuffers), (framebuffers, maxFramebuffers, numFramebuffers))
271                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetFramebuffersQCOM")
272 	_EVASGL_EXT_FUNCTION_END()
273 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetTexLevelParameterivQCOM, (GLuint texture, GLenum face, GLint level, GLenum pname, GLint* params), (texture, face, level, pname, params))
274                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetTexLevelParameterivQCOM")
275 	_EVASGL_EXT_FUNCTION_END()
276 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtTexObjectStateOverrideiQCOM, (GLenum target, GLenum pname, GLint param), (target, pname, param))
277                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtTexObjectStateOverrideiQCOM")
278 	_EVASGL_EXT_FUNCTION_END()
279 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetTexSubImageQCOM, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void* texels), (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels))
280                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetTexSubImageQCOM")
281 	_EVASGL_EXT_FUNCTION_END()
282 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetBufferPointervQCOM, (GLenum target, void** params), (target, params))
283                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetBufferPointervQCOM")
284 	_EVASGL_EXT_FUNCTION_END()
285 _EVASGL_EXT_END()
286 
287 
288 _EVASGL_EXT_BEGIN(QCOM_extended_get2)
289 	_EVASGL_EXT_DRVNAME(GL_QCOM_extended_get2)
290 
291 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetShadersQCOM, (GLuint* shaders, GLint maxShaders, GLint* numShaders), (shaders, maxShaders, numShaders))
292                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetShadersQCOM")
293 	_EVASGL_EXT_FUNCTION_END()
294 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetProgramsQCOM, (GLuint* programs, GLint maxPrograms, GLint* numPrograms), (programs, maxPrograms, numPrograms))
295                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetProgramsQCOM")
296 	_EVASGL_EXT_FUNCTION_END()
297 	_EVASGL_EXT_FUNCTION_BEGIN(unsigned char, glExtIsProgramBinaryQCOM, (GLuint program), (program))
298                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtIsProgramBinaryQCOM")
299 	_EVASGL_EXT_FUNCTION_END()
300 	_EVASGL_EXT_FUNCTION_BEGIN(void, glExtGetProgramBinarySourceQCOM, (GLuint program, GLenum shadertype, char* source, GLint* length), (program, shadertype, source, length))
301                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glExtGetProgramBinarySourceQCOM")
302 	_EVASGL_EXT_FUNCTION_END()
303 _EVASGL_EXT_END()
304 
305 _EVASGL_EXT_BEGIN(IMG_multisampled_render_to_texture)
306 	_EVASGL_EXT_DRVNAME(GL_IMG_multisampled_render_to_texture)
307 _EVASGL_EXT_END()
308 
309 _EVASGL_EXT_BEGIN(EXT_multisampled_render_to_texture)
310 	_EVASGL_EXT_DRVNAME(GL_EXT_multisampled_render_to_texture)
311 
312         /* GLES 1.x extension */
313         _EVASGL_EXT_FUNCTION_BEGIN(void, glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height), (target, samples, internalformat, width, height))
314                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisample")
315                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisampleEXT")
316         _EVASGL_EXT_FUNCTION_END()
317         _EVASGL_EXT_FUNCTION_BEGIN(void, glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples), (target, attachment, textarget, texture, level, samples))
318                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DMultisample")
319                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DMultisampleEXT")
320         _EVASGL_EXT_FUNCTION_END()
321 _EVASGL_EXT_END()
322 
323 _EVASGL_EXT_BEGIN(multisampled_render_to_texture)
324 	_EVASGL_EXT_DRVNAME_PRIVATE(GL_IMG_multisampled_render_to_texture)
325 	_EVASGL_EXT_DRVNAME_PRIVATE(GL_EXT_multisampled_render_to_texture)
326 
327 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height), (target, samples, internalformat, width, height))
328                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisample")
329                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisampleIMG")
330                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisampleEXT")
331 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
332 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glFramebufferTexture2DMultisample, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples), (target, attachment, textarget, texture, level, samples))
333                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DMultisample")
334                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DMultisampleIMG")
335                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DMultisampleEXT")
336 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
337 _EVASGL_EXT_END()
338 
339 /* ETC1 compressed texture format support */
340 _EVASGL_EXT_BEGIN(compressed_ETC1_RGB8_texture)
341         _EVASGL_EXT_DRVNAME(GL_OES_compressed_ETC1_RGB8_texture)
342 _EVASGL_EXT_END()
343 
344 /* SubImage texture upload support for ETC1*/
345 _EVASGL_EXT_BEGIN(compressed_ETC1_RGB8_sub_texture)
346         _EVASGL_EXT_DRVNAME(GL_EXT_compressed_ETC1_RGB8_sub_texture)
347 _EVASGL_EXT_END()
348 
349 _EVASGL_EXT_BEGIN(compressed_ETC2_RGB8_texture)
350         _EVASGL_EXT_DRVNAME(GL_OES_compressed_ETC2_RGB8_texture)
351 _EVASGL_EXT_END()
352 
353 _EVASGL_EXT_BEGIN(compressed_paletted_texture)
354 	_EVASGL_EXT_DRVNAME(GL_OES_compressed_paletted_texture)
355 _EVASGL_EXT_END()
356 
357 _EVASGL_EXT_BEGIN(depth24)
358 	_EVASGL_EXT_DRVNAME(GL_OES_depth24)
359 _EVASGL_EXT_END()
360 
361 _EVASGL_EXT_BEGIN(depth32)
362 	_EVASGL_EXT_DRVNAME(GL_OES_depth32)
363 _EVASGL_EXT_END()
364 
365 _EVASGL_EXT_BEGIN(EGL_image)
366 	_EVASGL_EXT_DRVNAME(GL_OES_EvasGL_image)
367 _EVASGL_EXT_END()
368 
369 _EVASGL_EXT_BEGIN(packed_depth_stencil)
370 	_EVASGL_EXT_DRVNAME(GL_OES_packed_depth_stencil)
371         _EVASGL_EXT_DRVNAME_DESKTOP("GL_EXT_packed_depth_stencil")
372 _EVASGL_EXT_END()
373 
374 _EVASGL_EXT_BEGIN(rgb8_rgba8)
375 	_EVASGL_EXT_DRVNAME(GL_OES_rgb8_rgba8)
376 _EVASGL_EXT_END()
377 
378 _EVASGL_EXT_BEGIN(standard_derivatives)
379 	_EVASGL_EXT_DRVNAME(GL_OES_standard_derivatives)
380 _EVASGL_EXT_END()
381 
382 _EVASGL_EXT_BEGIN(stencil1)
383 	_EVASGL_EXT_DRVNAME(GL_OES_stencil1)
384 _EVASGL_EXT_END()
385 
386 _EVASGL_EXT_BEGIN(stencil4)
387 	_EVASGL_EXT_DRVNAME(GL_OES_stencil4)
388 _EVASGL_EXT_END()
389 
390 _EVASGL_EXT_BEGIN(texture_float)
391 	_EVASGL_EXT_DRVNAME(GL_OES_texture_float)
392         _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_texture_float")
393 _EVASGL_EXT_END()
394 
395 _EVASGL_EXT_BEGIN(texture_half_float)
396 	_EVASGL_EXT_DRVNAME(GL_OES_texture_half_float)
397         _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_texture_half_float")
398 _EVASGL_EXT_END()
399 
400 _EVASGL_EXT_BEGIN(texture_float_linear)
401         _EVASGL_EXT_DRVNAME(GL_OES_texture_float_linear)
402 //        _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_texture_float_linear")
403 _EVASGL_EXT_END()
404 
405 _EVASGL_EXT_BEGIN(texture_half_float_linear)
406 	_EVASGL_EXT_DRVNAME(GL_OES_texture_half_float_linear)
407 //        _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_texture_half_float_linear")
408 _EVASGL_EXT_END()
409 
410 _EVASGL_EXT_BEGIN(texture_npot)
411         _EVASGL_EXT_DRVNAME(GL_OES_texture_npot)
412         _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_texture_non_power_of_two")
413 _EVASGL_EXT_END()
414 
415 _EVASGL_EXT_BEGIN(vertex_half_float)
416 	_EVASGL_EXT_DRVNAME(GL_OES_vertex_half_float)
417         _EVASGL_EXT_DRVNAME_DESKTOP("GL_ARB_half_float_vertex")
418 _EVASGL_EXT_END()
419 
420 _EVASGL_EXT_BEGIN(vertex_type_10_10_10_2)
421 	_EVASGL_EXT_DRVNAME(GL_OES_vertex_type_10_10_10_2)
422 _EVASGL_EXT_END()
423 
424 _EVASGL_EXT_BEGIN(compressed_3DC_texture)
425 	_EVASGL_EXT_DRVNAME(GL_AMD_compressed_3DC_texture)
426 _EVASGL_EXT_END()
427 
428 _EVASGL_EXT_BEGIN(compressed_ATC_texture)
429 	_EVASGL_EXT_DRVNAME(GL_AMD_compressed_ATC_texture)
430 _EVASGL_EXT_END()
431 
432 _EVASGL_EXT_BEGIN(program_binary_Z400)
433 	_EVASGL_EXT_DRVNAME(GL_AMD_program_binary_Z400)
434 _EVASGL_EXT_END()
435 
436 _EVASGL_EXT_BEGIN(blend_minmax)
437 	_EVASGL_EXT_DRVNAME(GL_EXT_blend_minmax)
438 _EVASGL_EXT_END()
439 
440 _EVASGL_EXT_BEGIN(read_format_bgra) // Desktop has it from GL 1.2
441 	_EVASGL_EXT_DRVNAME(GL_EXT_read_format_bgra)
442 _EVASGL_EXT_END()
443 
444 _EVASGL_EXT_BEGIN(texture_filter_anisotropic)
445 	_EVASGL_EXT_DRVNAME(GL_EXT_texture_filter_anisotropic)
446 _EVASGL_EXT_END()
447 
448 _EVASGL_EXT_BEGIN(texture_format_BGRA8888) // Desktop has it from GL 1.2
449 	_EVASGL_EXT_DRVNAME(GL_EXT_texture_format_BGRA8888)
450 _EVASGL_EXT_END()
451 
452 _EVASGL_EXT_BEGIN(texture_type_2_10_10_10_rev) // Desktop has it from GL 1.2
453 	_EVASGL_EXT_DRVNAME(GL_EXT_texture_type_2_10_10_10_REV)
454 _EVASGL_EXT_END()
455 
456 _EVASGL_EXT_BEGIN(IMG_program_binary)
457 	_EVASGL_EXT_DRVNAME(GL_IMG_program_binary)
458 _EVASGL_EXT_END()
459 
460 _EVASGL_EXT_BEGIN(IMG_read_format)
461 	_EVASGL_EXT_DRVNAME(GL_IMG_read_format)
462 _EVASGL_EXT_END()
463 
464 _EVASGL_EXT_BEGIN(IMG_shader_binary)
465 	_EVASGL_EXT_DRVNAME(GL_IMG_shader_binary)
466 _EVASGL_EXT_END()
467 
468 _EVASGL_EXT_BEGIN(IMG_texture_compression_pvrtc)
469 	_EVASGL_EXT_DRVNAME(GL_IMG_texture_compression_pvrtc)
470 _EVASGL_EXT_END()
471 
472 _EVASGL_EXT_BEGIN(QCOM_perfmon_global_mode)
473 	_EVASGL_EXT_DRVNAME(GL_QCOM_perfmon_global_mode)
474 _EVASGL_EXT_END()
475 
476 _EVASGL_EXT_BEGIN(QCOM_writeonly_rendering)
477 	_EVASGL_EXT_DRVNAME(GL_QCOM_writeonly_rendering)
478 _EVASGL_EXT_END()
479 
480 _EVASGL_EXT_BEGIN(read_format)
481         _EVASGL_EXT_DRVNAME(GL_OES_read_format)
482 _EVASGL_EXT_END()
483 
484 /* GL_OES_fragment_precision_high:
485     This extension has been withdrawn. See the specification of
486     GetShaderPrecisionFormat in section 6.1.8 of the OpenGL ES 2.0
487     Specification to determine within the API if high-precision fragment
488     shader varyings are supported by the implementation.
489  */
490 
491 
492 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
493 
494 
495 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
496 // GLES 1.1 ONLY EXTENSIONS
497 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
498 
499 _EVASGL_EXT_BEGIN(blend_equation_separate)
500         _EVASGL_EXT_DRVNAME(GL_OES_blend_equation_separate)
501 
502         _EVASGL_EXT_FUNCTION_BEGIN(void, glBlendEquationSeparateOES, (GLenum modeRGB, GLenum modeAlpha), (modeRGB, modeAlpha))
503                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendEquationSeparate")
504                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendEquationSeparateOES")
505         _EVASGL_EXT_FUNCTION_END()
506 _EVASGL_EXT_END()
507 
508 
509 _EVASGL_EXT_BEGIN(blend_func_separate)
510         _EVASGL_EXT_DRVNAME(GL_OES_blend_func_separate)
511 
512         _EVASGL_EXT_FUNCTION_BEGIN(void, glBlendFuncSeparateOES, (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha), (srcRGB, dstRGB, srcAlpha, dstAlpha))
513                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendFuncSeparate")
514                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendFuncSeparateOES")
515         _EVASGL_EXT_FUNCTION_END()
516 _EVASGL_EXT_END()
517 
518 
519 _EVASGL_EXT_BEGIN(blend_subtract)
520         _EVASGL_EXT_DRVNAME(GL_OES_blend_subtract)
521 
522         _EVASGL_EXT_FUNCTION_BEGIN(void, glBlendEquationOES, (GLenum mode), (mode))
523                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendEquation")
524                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBlendEquationOES")
525         _EVASGL_EXT_FUNCTION_END()
526 _EVASGL_EXT_END()
527 
528 
529 _EVASGL_EXT_BEGIN(byte_coordinates)
530         _EVASGL_EXT_DRVNAME(GL_OES_byte_coordinates)
531 _EVASGL_EXT_END()
532 
533 
534 _EVASGL_EXT_BEGIN(draw_texture)
535         _EVASGL_EXT_DRVNAME(GL_OES_draw_texture)
536 
537         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexsOES, (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height), (x, y, z, width, height))
538                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexs")
539                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexsOES")
540         _EVASGL_EXT_FUNCTION_END()
541         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexiOES, (GLint x, GLint y, GLint z, GLint width, GLint height), (x, y, z, width, height))
542                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexi")
543                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexiOES")
544         _EVASGL_EXT_FUNCTION_END()
545         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexxOES, (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height), (x, y, z, width, height))
546                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexx")
547                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexxOES")
548         _EVASGL_EXT_FUNCTION_END()
549         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexsvOES, (const GLshort *coords), (coords))
550                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexsv")
551                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexsvOES")
552         _EVASGL_EXT_FUNCTION_END()
553         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexivOES, (const GLint *coords), (coords))
554                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexiv")
555                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexivOES")
556         _EVASGL_EXT_FUNCTION_END()
557         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexxvOES, (const GLfixed *coords), (coords))
558                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexxv")
559                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexxvOES")
560         _EVASGL_EXT_FUNCTION_END()
561         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexfOES, (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height), (x, y, z, width, height))
562                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexf")
563                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexfOES")
564         _EVASGL_EXT_FUNCTION_END()
565         _EVASGL_EXT_FUNCTION_BEGIN(void, glDrawTexfvOES, (const GLfloat *coords), (coords))
566                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexfv")
567                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDrawTexfvOES")
568         _EVASGL_EXT_FUNCTION_END()
569 _EVASGL_EXT_END()
570 
571 
572 _EVASGL_EXT_BEGIN(extended_matrix_palette)
573         _EVASGL_EXT_DRVNAME(GL_OES_extended_matrix_palette)
574 _EVASGL_EXT_END()
575 
576 
577 _EVASGL_EXT_BEGIN(fixed_point)
578         _EVASGL_EXT_DRVNAME(GL_OES_fixed_point)
579 
580         _EVASGL_EXT_FUNCTION_BEGIN(void, glAlphaFuncxOES, (GLenum func, GLclampx ref), (func, ref))
581                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glAlphaFuncx")
582                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glAlphaFuncxOES")
583         _EVASGL_EXT_FUNCTION_END()
584         _EVASGL_EXT_FUNCTION_BEGIN(void, glClearColorxOES, (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha), (red, green, blue, alpha))
585                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearColorx")
586                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearColorxOES")
587         _EVASGL_EXT_FUNCTION_END()
588         _EVASGL_EXT_FUNCTION_BEGIN(void, glClearDepthxOES, (GLclampx depth), (depth))
589                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearDepthx")
590                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearDepthxOES")
591         _EVASGL_EXT_FUNCTION_END()
592         _EVASGL_EXT_FUNCTION_BEGIN(void, glClipPlanexOES, (GLenum plane, const GLfixed *equation), (plane, equation))
593                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanex")
594                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanexOES")
595         _EVASGL_EXT_FUNCTION_END()
596         _EVASGL_EXT_FUNCTION_BEGIN(void, glColor4xOES, (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha), (red, green, blue, alpha))
597                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glColor4x")
598                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glColor4xOES")
599         _EVASGL_EXT_FUNCTION_END()
600         _EVASGL_EXT_FUNCTION_BEGIN(void, glDepthRangexOES, (GLclampx zNear, GLclampx zFar), (zNear, zFar))
601                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDepthRangex")
602                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDepthRangexOES")
603         _EVASGL_EXT_FUNCTION_END()
604         _EVASGL_EXT_FUNCTION_BEGIN(void, glFogxOES, (GLenum pname, GLfixed param), (pname, param))
605                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFogx")
606                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFogxOES")
607         _EVASGL_EXT_FUNCTION_END()
608         _EVASGL_EXT_FUNCTION_BEGIN(void, glFogxvOES, (GLenum pname, const GLfixed *params), (pname, params))
609                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFogxv")
610                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFogxvOES")
611         _EVASGL_EXT_FUNCTION_END()
612         _EVASGL_EXT_FUNCTION_BEGIN(void, glFrustumxOES, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar))
613                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFrustumx")
614                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFrustumxOES")
615         _EVASGL_EXT_FUNCTION_END()
616         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetClipPlanexOES, (GLenum pname, GLfixed eqn[4]), (pname, eqn))
617                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetClipPlanex")
618                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetClipPlanexOES")
619         _EVASGL_EXT_FUNCTION_END()
620         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetFixedvOES, (GLenum pname, GLfixed *params), (pname, params))
621                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetFixedv")
622                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetFixedvOES")
623         _EVASGL_EXT_FUNCTION_END()
624         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetLightxvOES, (GLenum light, GLenum pname, GLfixed *params), (light, pname, params))
625                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetLightxv")
626                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetLightxvOES")
627         _EVASGL_EXT_FUNCTION_END()
628         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetMaterialxvOES, (GLenum face, GLenum pname, GLfixed *params), (face, pname, params))
629                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetMaterialxv")
630                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetMaterialxvOES")
631         _EVASGL_EXT_FUNCTION_END()
632         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetTexEnvxvOES, (GLenum env, GLenum pname, GLfixed *params), (env, pname, params))
633                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexEnvxv")
634                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexEnvxvOES")
635         _EVASGL_EXT_FUNCTION_END()
636         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetTexParameterxvOES, (GLenum target, GLenum pname, GLfixed *params), (target, pname, params))
637                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexParameterxv")
638                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexParameterxvOES")
639         _EVASGL_EXT_FUNCTION_END()
640         _EVASGL_EXT_FUNCTION_BEGIN(void, glLightModelxOES, (GLenum pname, GLfixed param), (pname, param))
641                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightModelx")
642                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightModelxOES")
643         _EVASGL_EXT_FUNCTION_END()
644         _EVASGL_EXT_FUNCTION_BEGIN(void, glLightModelxvOES, (GLenum pname, const GLfixed *params), (pname, params))
645                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightModelxv")
646                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightModelxvOES")
647         _EVASGL_EXT_FUNCTION_END()
648         _EVASGL_EXT_FUNCTION_BEGIN(void, glLightxOES, (GLenum light, GLenum pname, GLfixed param), (light, pname, param))
649                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightx")
650                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightxOES")
651         _EVASGL_EXT_FUNCTION_END()
652         _EVASGL_EXT_FUNCTION_BEGIN(void, glLightxvOES, (GLenum light, GLenum pname, const GLfixed *params), (light, pname, params))
653                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightxv")
654                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLightxvOES")
655         _EVASGL_EXT_FUNCTION_END()
656         _EVASGL_EXT_FUNCTION_BEGIN(void, glLineWidthxOES, (GLfixed width), (width))
657                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLineWidthx")
658                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLineWidthxOES")
659         _EVASGL_EXT_FUNCTION_END()
660         _EVASGL_EXT_FUNCTION_BEGIN(void, glLoadMatrixxOES, (const GLfixed *m), (m))
661                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLoadMatrixx")
662                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLoadMatrixxOES")
663         _EVASGL_EXT_FUNCTION_END()
664         _EVASGL_EXT_FUNCTION_BEGIN(void, glMaterialxOES, (GLenum face, GLenum pname, GLfixed param), (face, pname, param))
665                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMaterialx")
666                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMaterialxOES")
667         _EVASGL_EXT_FUNCTION_END()
668         _EVASGL_EXT_FUNCTION_BEGIN(void, glMaterialxvOES, (GLenum face, GLenum pname, const GLfixed *params), (face, pname, params))
669                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMaterialxv")
670                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMaterialxvOES")
671         _EVASGL_EXT_FUNCTION_END()
672         _EVASGL_EXT_FUNCTION_BEGIN(void, glMultMatrixxOES, (const GLfixed *m), (m))
673                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultMatrixx")
674                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultMatrixxOES")
675         _EVASGL_EXT_FUNCTION_END()
676         _EVASGL_EXT_FUNCTION_BEGIN(void, glMultiTexCoord4xOES, (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q), (target, s, t, r, q))
677                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiTexCoord4x")
678                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMultiTexCoord4xOES")
679         _EVASGL_EXT_FUNCTION_END()
680         _EVASGL_EXT_FUNCTION_BEGIN(void, glNormal3xOES, (GLfixed nx, GLfixed ny, GLfixed nz), (nx, ny, nz))
681                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glNormal3x")
682                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glNormal3xOES")
683         _EVASGL_EXT_FUNCTION_END()
684         _EVASGL_EXT_FUNCTION_BEGIN(void, glOrthoxOES, (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar), (left, right, bottom, top, zNear, zFar))
685                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glOrthox")
686                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glOrthoxOES")
687         _EVASGL_EXT_FUNCTION_END()
688         _EVASGL_EXT_FUNCTION_BEGIN(void, glPointParameterxOES, (GLenum pname, GLfixed param), (pname, param))
689                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointParameterx")
690                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointParameterxOES")
691         _EVASGL_EXT_FUNCTION_END()
692         _EVASGL_EXT_FUNCTION_BEGIN(void, glPointParameterxvOES, (GLenum pname, const GLfixed *params), (pname, params))
693                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointParameterxv")
694                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointParameterxvOES")
695         _EVASGL_EXT_FUNCTION_END()
696         _EVASGL_EXT_FUNCTION_BEGIN(void, glPointSizexOES, (GLfixed size), (size))
697                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointSizex")
698                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPointSizexOES")
699         _EVASGL_EXT_FUNCTION_END()
700         _EVASGL_EXT_FUNCTION_BEGIN(void, glPolygonOffsetxOES, (GLfixed factor, GLfixed units), (factor, units))
701                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPolygonOffsetx")
702                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glPolygonOffsetxOES")
703         _EVASGL_EXT_FUNCTION_END()
704         _EVASGL_EXT_FUNCTION_BEGIN(void, glRotatexOES, (GLfixed angle, GLfixed x, GLfixed y, GLfixed z), (angle, x, y, z))
705                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRotatex")
706                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRotatexOES")
707         _EVASGL_EXT_FUNCTION_END()
708         _EVASGL_EXT_FUNCTION_BEGIN(void, glSampleCoveragexOES, (GLclampx value, GLboolean invert), (value, invert))
709                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glSampleCoveragex")
710                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glSampleCoveragexOES")
711         _EVASGL_EXT_FUNCTION_END()
712         _EVASGL_EXT_FUNCTION_BEGIN(void, glScalexOES, (GLfixed x, GLfixed y, GLfixed z), (x, y, z))
713                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glScalex")
714                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glScalexOES")
715         _EVASGL_EXT_FUNCTION_END()
716         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexEnvxOES, (GLenum target, GLenum pname, GLfixed param), (target, pname, param))
717                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexEnvx")
718                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexEnvxOES")
719         _EVASGL_EXT_FUNCTION_END()
720         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexEnvxvOES, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params))
721                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexEnvxv")
722                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexEnvxvOES")
723         _EVASGL_EXT_FUNCTION_END()
724         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexParameterxOES, (GLenum target, GLenum pname, GLfixed param), (target, pname, param))
725                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexParameterx")
726                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexParameterxOES")
727         _EVASGL_EXT_FUNCTION_END()
728         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexParameterxvOES, (GLenum target, GLenum pname, const GLfixed *params), (target, pname, params))
729                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexParameterxv")
730                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexParameterxvOES")
731         _EVASGL_EXT_FUNCTION_END()
732         _EVASGL_EXT_FUNCTION_BEGIN(void, glTranslatexOES, (GLfixed x, GLfixed y, GLfixed z), (x, y, z))
733                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTranslatex")
734                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTranslatexOES")
735         _EVASGL_EXT_FUNCTION_END()
736 _EVASGL_EXT_END()
737 
738 
739 _EVASGL_EXT_BEGIN(framebuffer_object)
740         _EVASGL_EXT_DRVNAME(GL_OES_framebuffer_object)
741         _EVASGL_EXT_DRVNAME(GL_ARB_framebuffer_object)
742 
743         _EVASGL_EXT_FUNCTION_BEGIN(GLboolean, glIsRenderbufferOES, (GLuint renderbuffer), (renderbuffer))
744                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsRenderbuffer")
745                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsRenderbufferOES")
746         _EVASGL_EXT_FUNCTION_END()
747         _EVASGL_EXT_FUNCTION_BEGIN(void, glBindRenderbufferOES, (GLenum target, GLuint renderbuffer), (target, renderbuffer))
748                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindRenderbuffer")
749                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindRenderbufferOES")
750         _EVASGL_EXT_FUNCTION_END()
751         _EVASGL_EXT_FUNCTION_BEGIN(void, glDeleteRenderbuffersOES, (GLsizei n, const GLuint* renderbuffers), (n, renderbuffers))
752                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteRenderbuffers")
753                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteRenderbuffersOES")
754         _EVASGL_EXT_FUNCTION_END()
755         _EVASGL_EXT_FUNCTION_BEGIN(void, glGenRenderbuffersOES, (GLsizei n, GLuint* renderbuffers), (n, renderbuffers))
756                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenRenderbuffers")
757                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenRenderbuffersOES")
758         _EVASGL_EXT_FUNCTION_END()
759         _EVASGL_EXT_FUNCTION_BEGIN(void, glRenderbufferStorageOES, (GLenum target, GLenum internalformat, GLsizei width, GLsizei height), (target, internalformat, width, height))
760                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorage")
761                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageOES")
762         _EVASGL_EXT_FUNCTION_END()
763         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetRenderbufferParameterivOES, (GLenum target, GLenum pname, GLint* params), (target, pname, params))
764                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetRenderbufferParameteriv")
765                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetRenderbufferParameterivOES")
766         _EVASGL_EXT_FUNCTION_END()
767         _EVASGL_EXT_FUNCTION_BEGIN(GLboolean, glIsFramebufferOES, (GLuint framebuffer), (framebuffer))
768                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsFramebuffer")
769                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsFramebufferOES")
770         _EVASGL_EXT_FUNCTION_END()
771         _EVASGL_EXT_FUNCTION_BEGIN(void, glBindFramebufferOES, (GLenum target, GLuint framebuffer), (target, framebuffer))
772                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindFramebuffer")
773                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindFramebufferOES")
774         _EVASGL_EXT_FUNCTION_END()
775         _EVASGL_EXT_FUNCTION_BEGIN(void, glDeleteFramebuffersOES, (GLsizei n, const GLuint* framebuffers), (n, framebuffers))
776                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteFramebuffers")
777                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteFramebuffersOES")
778         _EVASGL_EXT_FUNCTION_END()
779         _EVASGL_EXT_FUNCTION_BEGIN(void, glGenFramebuffersOES, (GLsizei n, GLuint* framebuffers), (n, framebuffers))
780                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenFramebuffers")
781                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenFramebuffersOES")
782         _EVASGL_EXT_FUNCTION_END()
783         _EVASGL_EXT_FUNCTION_BEGIN(GLenum, glCheckFramebufferStatusOES, (GLenum target), (target))
784                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCheckFramebufferStatus")
785                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCheckFramebufferStatusOES")
786         _EVASGL_EXT_FUNCTION_END()
787         _EVASGL_EXT_FUNCTION_BEGIN(void, glFramebufferRenderbufferOES, (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer), (target, attachment, renderbuffertarget, renderbuffer))
788                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferRenderbuffer")
789                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferRenderbufferOES")
790         _EVASGL_EXT_FUNCTION_END()
791         _EVASGL_EXT_FUNCTION_BEGIN(void, glFramebufferTexture2DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level), (target, attachment, textarget, texture, level))
792                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2D")
793                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFramebufferTexture2DOES")
794         _EVASGL_EXT_FUNCTION_END()
795         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetFramebufferAttachmentParameterivOES, (GLenum target, GLenum attachment, GLenum pname, GLint* params), (target, attachment, pname, params))
796                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetFramebufferAttachmentParameteriv")
797                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetFramebufferAttachmentParameterivOES")
798         _EVASGL_EXT_FUNCTION_END()
799         _EVASGL_EXT_FUNCTION_BEGIN(void, glGenerateMipmapOES, (GLenum target), (target))
800                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenerateMipmap")
801                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenerateMipmapOES")
802         _EVASGL_EXT_FUNCTION_END()
803 _EVASGL_EXT_END()
804 
805 _EVASGL_EXT_BEGIN(matrix_get)
806         _EVASGL_EXT_DRVNAME(GL_OES_matrix_get)
807 _EVASGL_EXT_END()
808 
809 
810 _EVASGL_EXT_BEGIN(matrix_palette)
811         _EVASGL_EXT_DRVNAME(GL_OES_matrix_palette)
812 
813         _EVASGL_EXT_FUNCTION_BEGIN(void, glCurrentPaletteMatrixOES, (GLuint matrixpaletteindex), (matrixpaletteindex))
814                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCurrentPaletteMatrix")
815                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCurrentPaletteMatrixOES")
816         _EVASGL_EXT_FUNCTION_END()
817         _EVASGL_EXT_FUNCTION_BEGIN(void, glLoadPaletteFromModelViewMatrixOES, (void), ())
818                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLoadPaletteFromModelViewMatrix")
819                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glLoadPaletteFromModelViewMatrixOES")
820         _EVASGL_EXT_FUNCTION_END()
821         _EVASGL_EXT_FUNCTION_BEGIN(void, glMatrixIndexPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer))
822                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMatrixIndexPointer")
823                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMatrixIndexPointerOES")
824         _EVASGL_EXT_FUNCTION_END()
825         _EVASGL_EXT_FUNCTION_BEGIN(void, glWeightPointerOES, (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer), (size, type, stride, pointer))
826                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glWeightPointer")
827                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glWeightPointerOES")
828         _EVASGL_EXT_FUNCTION_END()
829 _EVASGL_EXT_END()
830 
831 
832 _EVASGL_EXT_BEGIN(required_internalformat)
833         _EVASGL_EXT_DRVNAME(GL_OES_required_internalformat)
834 _EVASGL_EXT_END()
835 
836 _EVASGL_EXT_BEGIN(query_matrix)
837         _EVASGL_EXT_DRVNAME(GL_OES_query_matrix)
838 
839         _EVASGL_EXT_FUNCTION_BEGIN(GLbitfield, glQueryMatrixxOES, (GLfixed mantissa[16], GLint exponent[16]), (mantissa, exponent))
840                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glQueryMatrixx")
841                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glQueryMatrixxOES")
842         _EVASGL_EXT_FUNCTION_END()
843 _EVASGL_EXT_END()
844 
845 
846 _EVASGL_EXT_BEGIN(single_precision)
847         _EVASGL_EXT_DRVNAME(GL_OES_single_precision)
848 
849         _EVASGL_EXT_FUNCTION_BEGIN(void, glDepthRangefOES, (GLclampf zNear, GLclampf zFar), (zNear, zFar))
850                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDepthRangef")
851                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDepthRangefOES")
852         _EVASGL_EXT_FUNCTION_END()
853         _EVASGL_EXT_FUNCTION_BEGIN(void, glFrustumfOES, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar))
854                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFrustumf")
855                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFrustumfOES")
856         _EVASGL_EXT_FUNCTION_END()
857         _EVASGL_EXT_FUNCTION_BEGIN(void, glOrthofOES, (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar), (left, right, bottom, top, zNear, zFar))
858                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glOrthof")
859                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glOrthofOES")
860         _EVASGL_EXT_FUNCTION_END()
861         _EVASGL_EXT_FUNCTION_BEGIN(void, glClipPlanefOES, (GLenum plane, const GLfloat *equation), (plane, equation))
862                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanef")
863                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanefOES")
864         _EVASGL_EXT_FUNCTION_END()
865         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetClipPlanefOES, (GLenum pname, GLfloat eqn[4]), (pname, eqn))
866                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetClipPlanef")
867                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetClipPlanefOES")
868         _EVASGL_EXT_FUNCTION_END()
869         _EVASGL_EXT_FUNCTION_BEGIN(void, glClearDepthfOES, (GLclampf depth), (depth))
870                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearDepthf")
871                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClearDepthfOES")
872         _EVASGL_EXT_FUNCTION_END()
873 _EVASGL_EXT_END()
874 
875 
876 _EVASGL_EXT_BEGIN(stencil8)
877         _EVASGL_EXT_DRVNAME(GL_OES_stencil8)
878 _EVASGL_EXT_END()
879 
880 
881 _EVASGL_EXT_BEGIN(stencil_wrap)
882         _EVASGL_EXT_DRVNAME(GL_OES_stencil_wrap)
883 _EVASGL_EXT_END()
884 
885 
886 _EVASGL_EXT_BEGIN(texture_cube_map)
887         _EVASGL_EXT_DRVNAME(GL_OES_texture_cube_map)
888 
889         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGenfOES, (GLenum coord, GLenum pname, GLfloat param), (coord, pname, param))
890                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenf")
891                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenfOES")
892         _EVASGL_EXT_FUNCTION_END()
893         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGenfvOES, (GLenum coord, GLenum pname, const GLfloat *params), (coord, pname, params))
894                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenfv")
895                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenfvOES")
896         _EVASGL_EXT_FUNCTION_END()
897         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGeniOES, (GLenum coord, GLenum pname, GLint param), (coord, pname, param))
898                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGeni")
899                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGeniOES")
900         _EVASGL_EXT_FUNCTION_END()
901         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGenivOES, (GLenum coord, GLenum pname, const GLint *params), (coord, pname, params))
902                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGeniv")
903                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenivOES")
904         _EVASGL_EXT_FUNCTION_END()
905         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGenxOES, (GLenum coord, GLenum pname, GLfixed param), (coord, pname, param))
906                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenx")
907                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenxOES")
908         _EVASGL_EXT_FUNCTION_END()
909         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexGenxvOES, (GLenum coord, GLenum pname, const GLfixed *params), (coord, pname, params))
910                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenxv")
911                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexGenxvOES")
912         _EVASGL_EXT_FUNCTION_END()
913         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetTexGenfvOES, (GLenum coord, GLenum pname, GLfloat *params), (coord, pname, params))
914                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGenfv")
915                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGenfvOES")
916         _EVASGL_EXT_FUNCTION_END()
917         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetTexGenivOES, (GLenum coord, GLenum pname, GLint *params), (coord, pname, params))
918                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGeniv")
919                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGenivOES")
920         _EVASGL_EXT_FUNCTION_END()
921         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetTexGenxvOES, (GLenum coord, GLenum pname, GLfixed *params), (coord, pname, params))
922                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGenxv")
923                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetTexGenxvOES")
924         _EVASGL_EXT_FUNCTION_END()
925 _EVASGL_EXT_END()
926 
927 
928 _EVASGL_EXT_BEGIN(texture_env_crossbar)
929         _EVASGL_EXT_DRVNAME(GL_OES_texture_env_crossbar)
930 _EVASGL_EXT_END()
931 
932 
933 _EVASGL_EXT_BEGIN(texture_mirrored_repeat)
934         _EVASGL_EXT_DRVNAME(GL_OES_texture_mirrored_repeat)
935 _EVASGL_EXT_END()
936 
937 _EVASGL_EXT_BEGIN(vertex_array_object)
938         _EVASGL_EXT_DRVNAME(GL_OES_vertex_array_object)
939 
940         _EVASGL_EXT_FUNCTION_BEGIN(void, glBindVertexArrayOES, (GLuint array), (array))
941                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindVertexArray")
942                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glBindVertexArrayOES")
943         _EVASGL_EXT_FUNCTION_END()
944         _EVASGL_EXT_FUNCTION_BEGIN(void, glDeleteVertexArraysOES, (GLsizei n, const GLuint *arrays), (n, arrays))
945                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteVertexArrays")
946                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteVertexArraysOES")
947         _EVASGL_EXT_FUNCTION_END()
948         _EVASGL_EXT_FUNCTION_BEGIN(void, glGenVertexArraysOES, (GLsizei n, GLuint *arrays), (n, arrays))
949                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenVertexArrays")
950                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGenVertexArraysOES")
951         _EVASGL_EXT_FUNCTION_END()
952         _EVASGL_EXT_FUNCTION_BEGIN(GLboolean, glIsVertexArrayOES, (GLuint array), (array))
953                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsVertexArray")
954                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsVertexArrayOES")
955         _EVASGL_EXT_FUNCTION_END()
956 _EVASGL_EXT_END()
957 
958 /* APPLE extension functions */
959 _EVASGL_EXT_BEGIN(APPLE_copy_texture_levels)
960         _EVASGL_EXT_DRVNAME(GL_APPLE_copy_texture_levels)
961 
962         _EVASGL_EXT_FUNCTION_BEGIN(void, glCopyTextureLevelsAPPLE, (GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount), (destinationTexture, sourceTexture, sourceBaseLevel, sourceLevelCount))
963                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCopyTextureLevels")
964                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glCopyTextureLevelsAPPLE")
965         _EVASGL_EXT_FUNCTION_END()
966 _EVASGL_EXT_END()
967 
968 _EVASGL_EXT_BEGIN(APPLE_framebuffer_multisample)
969         _EVASGL_EXT_DRVNAME(GL_APPLE_framebuffer_multisample)
970 
971         _EVASGL_EXT_FUNCTION_BEGIN(void, glRenderbufferStorageMultisampleAPPLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height), (target, samples, internalformat, width, height))
972                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisample")
973                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glRenderbufferStorageMultisampleAPPLE")
974         _EVASGL_EXT_FUNCTION_END()
975         _EVASGL_EXT_FUNCTION_BEGIN(void, glResolveMultisampleFramebufferAPPLE, (void), ())
976                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glResolveMultisampleFramebuffer")
977                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glResolveMultisampleFramebufferAPPLE")
978         _EVASGL_EXT_FUNCTION_END()
979 _EVASGL_EXT_END()
980 
981 _EVASGL_EXT_BEGIN(APPLE_sync)
982         _EVASGL_EXT_DRVNAME(GL_APPLE_sync)
983 
984         _EVASGL_EXT_FUNCTION_BEGIN(GLsync, glFenceSyncAPPLE, (GLenum condition, GLbitfield flags), (condition, flags))
985                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFenceSyncAPPLE")
986         _EVASGL_EXT_FUNCTION_END()
987         _EVASGL_EXT_FUNCTION_BEGIN(GLboolean, glIsSyncAPPLE, (GLsync sync), (sync))
988                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glIsSyncAPPLE")
989         _EVASGL_EXT_FUNCTION_END()
990         _EVASGL_EXT_FUNCTION_BEGIN(void, glDeleteSyncAPPLE, (GLsync sync), (sync))
991                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glDeleteSyncAPPLE")
992         _EVASGL_EXT_FUNCTION_END()
993         _EVASGL_EXT_FUNCTION_BEGIN(GLenum, glClientWaitSyncAPPLE, (GLsync sync, GLbitfield flags, uint64_t timeout), (sync, flags, timeout))
994                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClientWaitSyncAPPLE")
995         _EVASGL_EXT_FUNCTION_END()
996         _EVASGL_EXT_FUNCTION_BEGIN(void, glWaitSyncAPPLE, (GLsync sync, GLbitfield flags, uint64_t timeout), (sync, flags, timeout))
997                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glWaitSyncAPPLE")
998         _EVASGL_EXT_FUNCTION_END()
999         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetInteger64vAPPLE, (GLenum pname, int64_t *params), (pname, params))
1000                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetInteger64vAPPLE")
1001         _EVASGL_EXT_FUNCTION_END()
1002         _EVASGL_EXT_FUNCTION_BEGIN(void, glGetSyncivAPPLE, (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values), (sync, pname, bufSize, length, values))
1003                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetSyncivAPPLE")
1004         _EVASGL_EXT_FUNCTION_END()
1005 _EVASGL_EXT_END()
1006 
1007 
1008 _EVASGL_EXT_BEGIN(APPLE_texture_2D_limited_npot)
1009         _EVASGL_EXT_DRVNAME(GL_APPLE_texture_2D_limited_npot)
1010 _EVASGL_EXT_END()
1011 
1012 _EVASGL_EXT_BEGIN(APPLE_texture_format_BGRA8888)
1013         _EVASGL_EXT_DRVNAME(GL_APPLE_texture_format_BGRA8888)
1014 _EVASGL_EXT_END()
1015 
1016 _EVASGL_EXT_BEGIN(APPLE_texture_max_level)
1017         _EVASGL_EXT_DRVNAME(GL_APPLE_texture_max_level)
1018 _EVASGL_EXT_END()
1019 
1020 /* ARM extension */
1021 _EVASGL_EXT_BEGIN(ARM_rgba8)
1022         _EVASGL_EXT_DRVNAME(GL_ARM_rgba8)
1023 _EVASGL_EXT_END()
1024 
1025 /* EXT extension functions */
1026 _EVASGL_EXT_BEGIN(map_buffer_range)
1027         _EVASGL_EXT_DRVNAME(GL_EXT_map_buffer_range)
1028 
1029         _EVASGL_EXT_FUNCTION_BEGIN(void *, glMapBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access), (target, offset, length, access))
1030                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMapBufferRange")
1031                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glMapBufferRangeEXT")
1032         _EVASGL_EXT_FUNCTION_END()
1033         _EVASGL_EXT_FUNCTION_BEGIN(void, glFlushMappedBufferRangeEXT, (GLenum target, GLintptr offset, GLsizeiptr length), (target, offset, length))
1034                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFlushMappedBufferRange")
1035                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glFlushMappedBufferRangeEXT")
1036         _EVASGL_EXT_FUNCTION_END()
1037 _EVASGL_EXT_END()
1038 
1039 _EVASGL_EXT_BEGIN(robustness)
1040         _EVASGL_EXT_DRVNAME(GL_EXT_robustness)
1041 
1042         _EVASGL_EXT_FUNCTION_BEGIN(GLenum, glGetGraphicsResetStatusEXT, (void), ())
1043                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetGraphicsResetStatus")
1044                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetGraphicsResetStatusEXT")
1045         _EVASGL_EXT_FUNCTION_END()
1046         _EVASGL_EXT_FUNCTION_BEGIN(void, glReadnPixelsEXT, (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data), (x, y, width, height, format, type, bufSize, data))
1047                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glReadnPixels")
1048                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glReadnPixelsEXT")
1049         _EVASGL_EXT_FUNCTION_END()
1050         _EVASGL_EXT_FUNCTION_DISABLE_FOR_GLES1_BEGIN()
1051            _EVASGL_EXT_FUNCTION_BEGIN(void, glGetnUniformfvEXT, (GLuint program, GLint location, GLsizei bufSize, float *params), (program, location, bufSize, params))
1052                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetnUniformfv")
1053                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetnUniformfvEXT")
1054            _EVASGL_EXT_FUNCTION_END()
1055            _EVASGL_EXT_FUNCTION_BEGIN(void, glGetnUniformivEXT, (GLuint program, GLint location, GLsizei bufSize, GLint *params), (program, location, bufSize, params))
1056                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetnUniformiv")
1057                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glGetnUniformivEXT")
1058            _EVASGL_EXT_FUNCTION_END()
1059         _EVASGL_EXT_FUNCTION_DISABLE_FOR_GLES1_END()
1060 _EVASGL_EXT_END()
1061 
1062 _EVASGL_EXT_BEGIN(sRGB)
1063         _EVASGL_EXT_DRVNAME(GL_EXT_sRGB)
1064 _EVASGL_EXT_END()
1065 
1066 _EVASGL_EXT_BEGIN(texture_compression_dxt1)
1067         _EVASGL_EXT_DRVNAME(GL_EXT_texture_compression_dxt1)
1068 _EVASGL_EXT_END()
1069 
1070 _EVASGL_EXT_BEGIN(texture_lod_bias)
1071         _EVASGL_EXT_DRVNAME(GL_EXT_texture_lod_bias)
1072 _EVASGL_EXT_END()
1073 
1074 _EVASGL_EXT_BEGIN(texture_storage)
1075         _EVASGL_EXT_DRVNAME(GL_EXT_texture_storage)
1076 
1077         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexStorage1DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width), (target, levels, internalformat, width))
1078                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage1D")
1079                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage1DEXT")
1080         _EVASGL_EXT_FUNCTION_END()
1081         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexStorage2DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height), (target, levels, internalformat, width, height))
1082                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage2D")
1083                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage2DEXT")
1084         _EVASGL_EXT_FUNCTION_END()
1085         _EVASGL_EXT_FUNCTION_BEGIN(void, glTexStorage3DEXT, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth), (target, levels, internalformat, width, height, depth))
1086                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage3D")
1087                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTexStorage3DEXT")
1088         _EVASGL_EXT_FUNCTION_END()
1089         _EVASGL_EXT_FUNCTION_BEGIN(void, glTextureStorage1DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width), (texture, target, levels, internalformat, width))
1090                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage1D")
1091                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage1DEXT")
1092         _EVASGL_EXT_FUNCTION_END()
1093         _EVASGL_EXT_FUNCTION_BEGIN(void, glTextureStorage2DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height), (texture, target, levels, internalformat, width, height))
1094                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage2D")
1095                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage2DEXT")
1096         _EVASGL_EXT_FUNCTION_END()
1097         _EVASGL_EXT_FUNCTION_BEGIN(void, glTextureStorage3DEXT, (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth), (texture, target, levels, internalformat, width, height, depth))
1098                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage3D")
1099                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glTextureStorage3DEXT")
1100         _EVASGL_EXT_FUNCTION_END()
1101 _EVASGL_EXT_END()
1102 
1103 _EVASGL_EXT_BEGIN(IMG_texture_env_enhanced_fixed_function)
1104         _EVASGL_EXT_DRVNAME(GL_IMG_texture_env_enhanced_fixed_function)
1105 _EVASGL_EXT_END()
1106 
1107 
1108 _EVASGL_EXT_BEGIN(IMG_user_clip_plane)
1109         _EVASGL_EXT_DRVNAME(GL_IMG_user_clip_plane)
1110 
1111         _EVASGL_EXT_FUNCTION_BEGIN(void, glClipPlanefIMG, (GLenum p, const GLfloat *eqn), (p, eqn))
1112                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanef")
1113                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanefIMG")
1114         _EVASGL_EXT_FUNCTION_END()
1115         _EVASGL_EXT_FUNCTION_BEGIN(void, glClipPlanexIMG, (GLenum p, const GLfixed *eqn), (p, eqn))
1116                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanex")
1117                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glClipPlanexIMG")
1118         _EVASGL_EXT_FUNCTION_END()
1119 _EVASGL_EXT_END()
1120 
1121 _EVASGL_EXT_BEGIN(QCOM_tiled_rendering)
1122         _EVASGL_EXT_DRVNAME(GL_QCOM_tiled_rendering)
1123 
1124         _EVASGL_EXT_FUNCTION_BEGIN(void, glStartTilingQCOM, (GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask), (x, y, width, height, preserveMask))
1125                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glStartTilingQCOM")
1126         _EVASGL_EXT_FUNCTION_END()
1127         _EVASGL_EXT_FUNCTION_BEGIN(void, glEndTilingQCOM, (GLbitfield preserveMask), (preserveMask))
1128                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glEndTilingQCOM")
1129         _EVASGL_EXT_FUNCTION_END()
1130 _EVASGL_EXT_END()
1131 
1132 _EVASGL_EXT_BEGIN(element_index_uint)
1133         _EVASGL_EXT_DRVNAME(GL_OES_element_index_uint)
1134 _EVASGL_EXT_END()
1135 
1136 _EVASGL_EXT_BEGIN(fbo_render_mipmap)
1137         _EVASGL_EXT_DRVNAME(GL_OES_fbo_render_mipmap)
1138 _EVASGL_EXT_END()
1139 
1140 _EVASGL_EXT_BEGIN(mali_program_binary)
1141         _EVASGL_EXT_DRVNAME(GL_ARM_mali_program_binary)
1142 _EVASGL_EXT_END()
1143 
1144 _EVASGL_EXT_BEGIN(mali_shader_binary)
1145         _EVASGL_EXT_DRVNAME(GL_ARM_mali_shader_binary)
1146 _EVASGL_EXT_END()
1147 
1148 _EVASGL_EXT_BEGIN(depth_texture)
1149         _EVASGL_EXT_DRVNAME(GL_OES_depth_texture)
1150 _EVASGL_EXT_END()
1151 
1152 _EVASGL_EXT_BEGIN(depth_texture_cube_map)
1153         _EVASGL_EXT_DRVNAME(GL_OES_depth_texture_cube_map)
1154 _EVASGL_EXT_END()
1155 
1156 _EVASGL_EXT_BEGIN(shader_texture_lod)
1157         _EVASGL_EXT_DRVNAME(GL_EXT_shader_texture_lod)
1158 _EVASGL_EXT_END()
1159 
1160 #ifdef GL_GLES
1161 _EVASGL_EXT_BEGIN(GL_OES_EGL_image)
1162 
1163 	_EVASGL_EXT_DRVNAME(GL_OES_EGL_image)
1164 
1165 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image), (target, image))
1166                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glEGLImageTargetTexture2DOES")
1167 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1168 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image), (target, image))
1169                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glEGLImageTargetRenderbufferStorageOES")
1170 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1171 
1172 	_EVASGL_EXT_FUNCTION_BEGIN(void, glEvasGLImageTargetTexture2DOES, (GLenum target, EvasGLImage image), (target, image))
1173 		_EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_glEvasGLImageTargetTexture2D)
1174 	_EVASGL_EXT_FUNCTION_END()
1175 	_EVASGL_EXT_FUNCTION_BEGIN(void, glEvasGLImageTargetRenderbufferStorageOES, (GLenum target, EvasGLImage image), (target, image))
1176 		_EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_glEvasGLImageTargetRenderbufferStorage)
1177 	_EVASGL_EXT_FUNCTION_END()
1178 
1179 	#ifdef _EVASGL_EXT_VERIFY
1180 	{
1181                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1182 	}
1183 	#endif
1184 
1185 _EVASGL_EXT_END()
1186 
1187 
_EVASGL_EXT_BEGIN(GL_OES_EGL_image_external)1188 _EVASGL_EXT_BEGIN(GL_OES_EGL_image_external)
1189 
1190    _EVASGL_EXT_DRVNAME(GL_OES_EGL_image_external)
1191 
1192 	#ifdef _EVASGL_EXT_VERIFY
1193    {
1194                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1195    }
1196 	#endif
1197 
1198 _EVASGL_EXT_END()
1199 #endif // GL_GLES
1200 
1201 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1202 
1203 
1204 
1205 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1206 // Other "safe" extensions that are not in Evas_GL_API
1207 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1208 
1209 /*
1210  * IMPORTANT NOTE:
1211  *
1212  * Before adding any extension & function to the list below, it is very
1213  * important to check that the extension does not modify the state in a way
1214  * that would break direct rendering (eg. Scissors) or indirect rendering
1215  * (eg. changes the target FBO).
1216  *
1217  * If any of the following applies, the extension must be wrapped before
1218  * being exposed to client apps:
1219  * - The target FBO is changed (this could break indirect rendering)
1220  * - The scissors geometry is changed (breaks direct rendering)
1221  * - Shared contexts can also be affected (breaks everything since all contexts
1222  *   are shared with the main Evas GL context)
1223  *
1224  * There can be a number of other reasons for functions to need wrapping, so
1225  * please read carefully the specifications of all extensions and check that
1226  * they are safe to use. The goal is to contain as much as possible the effects
1227  * of an API call to the surface & context bound to the Evas_GL.
1228  */
1229 
1230 #if _EVASGL_EXT_WHITELIST_ONLY
1231 
1232 // ----------------------------------------------------------
_EVASGL_EXT_BEGIN(debug)1233 _EVASGL_EXT_BEGIN(debug)
1234 _EVASGL_EXT_DRVNAME(GL_KHR_debug)
1235 
1236 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageControl")
1237 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageControlKHR")
1238 
1239 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageInsert")
1240 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageInsertKHR")
1241 
1242 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageCallback")
1243 _EVASGL_EXT_FUNCTION_WHITELIST("glDebugMessageCallbackKHR")
1244 
1245 _EVASGL_EXT_FUNCTION_WHITELIST("glGetDebugMessageLog")
1246 _EVASGL_EXT_FUNCTION_WHITELIST("glGetDebugMessageLogKHR")
1247 
1248 _EVASGL_EXT_FUNCTION_WHITELIST("glGetPointerv")
1249 _EVASGL_EXT_FUNCTION_WHITELIST("glGetPointervKHR")
1250 
1251 _EVASGL_EXT_FUNCTION_WHITELIST("glPushDebugGroup")
1252 _EVASGL_EXT_FUNCTION_WHITELIST("glPushDebugGroupKHR")
1253 
1254 _EVASGL_EXT_FUNCTION_WHITELIST("glPopDebugGroup")
1255 _EVASGL_EXT_FUNCTION_WHITELIST("glPopDebugGroupKHR")
1256 
1257 _EVASGL_EXT_FUNCTION_WHITELIST("glObjectLabel")
1258 _EVASGL_EXT_FUNCTION_WHITELIST("glObjectLabelKHR")
1259 
1260 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectLabel")
1261 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectLabelKHR")
1262 
1263 _EVASGL_EXT_FUNCTION_WHITELIST("glObjectPtrLabel")
1264 _EVASGL_EXT_FUNCTION_WHITELIST("glObjectPtrLabelKHR")
1265 
1266 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectPtrLabel")
1267 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectPtrLabelKHR")
1268 
1269 _EVASGL_EXT_END()
1270 
1271 
1272 // ----------------------------------------------------------
1273 _EVASGL_EXT_BEGIN(debug_label)
1274 _EVASGL_EXT_DRVNAME(GL_EXT_debug_label)
1275 
1276 _EVASGL_EXT_FUNCTION_WHITELIST("glLabelObject")
1277 _EVASGL_EXT_FUNCTION_WHITELIST("glLabelObjectEXT")
1278 
1279 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectLabel")
1280 _EVASGL_EXT_FUNCTION_WHITELIST("glGetObjectLabelEXT")
1281 
1282 _EVASGL_EXT_END()
1283 
1284 
1285 // ----------------------------------------------------------
1286 _EVASGL_EXT_BEGIN(debug_marker)
1287 _EVASGL_EXT_DRVNAME(GL_EXT_debug_marker)
1288 
1289 _EVASGL_EXT_FUNCTION_WHITELIST("glInsertEventMarker")
1290 _EVASGL_EXT_FUNCTION_WHITELIST("glInsertEventMarkerEXT")
1291 
1292 _EVASGL_EXT_FUNCTION_WHITELIST("glPushGroupMarker")
1293 _EVASGL_EXT_FUNCTION_WHITELIST("glPushGroupMarkerEXT")
1294 
1295 _EVASGL_EXT_FUNCTION_WHITELIST("glPopGroupMarker")
1296 _EVASGL_EXT_FUNCTION_WHITELIST("glPopGroupMarkerEXT")
1297 
1298 _EVASGL_EXT_END()
1299 
1300 
1301 // ----------------------------------------------------------
1302 _EVASGL_EXT_BEGIN(disjoint_timer_query)
1303 _EVASGL_EXT_DRVNAME(GL_EXT_disjoint_timer_query)
1304 
1305 _EVASGL_EXT_FUNCTION_WHITELIST("glGenQueries")
1306 _EVASGL_EXT_FUNCTION_WHITELIST("glGenQueriesEXT")
1307 
1308 _EVASGL_EXT_FUNCTION_WHITELIST("glDeleteQueries")
1309 _EVASGL_EXT_FUNCTION_WHITELIST("glDeleteQueriesEXT")
1310 
1311 _EVASGL_EXT_FUNCTION_WHITELIST("glIsQuery")
1312 _EVASGL_EXT_FUNCTION_WHITELIST("glIsQueryEXT")
1313 
1314 _EVASGL_EXT_FUNCTION_WHITELIST("glBeginQuery")
1315 _EVASGL_EXT_FUNCTION_WHITELIST("glBeginQueryEXT")
1316 
1317 _EVASGL_EXT_FUNCTION_WHITELIST("glEndQuery")
1318 _EVASGL_EXT_FUNCTION_WHITELIST("glEndQueryEXT")
1319 
1320 _EVASGL_EXT_FUNCTION_WHITELIST("glQueryCounter")
1321 _EVASGL_EXT_FUNCTION_WHITELIST("glQueryCounterEXT")
1322 
1323 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryiv")
1324 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryivEXT")
1325 
1326 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectiv")
1327 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectivEXT")
1328 
1329 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectuiv")
1330 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectuivEXT")
1331 
1332 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjecti64v")
1333 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjecti64vEXT")
1334 
1335 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectui64v")
1336 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectui64vEXT")
1337 
1338 _EVASGL_EXT_END()
1339 
1340 
1341 // ----------------------------------------------------------
1342 _EVASGL_EXT_BEGIN(occlusion_query_boolean)
1343 _EVASGL_EXT_DRVNAME(GL_EXT_occlusion_query_boolean)
1344 
1345 _EVASGL_EXT_FUNCTION_WHITELIST("glGenQueries")
1346 _EVASGL_EXT_FUNCTION_WHITELIST("glGenQueriesEXT")
1347 
1348 _EVASGL_EXT_FUNCTION_WHITELIST("glDeleteQueries")
1349 _EVASGL_EXT_FUNCTION_WHITELIST("glDeleteQueriesEXT")
1350 
1351 _EVASGL_EXT_FUNCTION_WHITELIST("glIsQuery")
1352 _EVASGL_EXT_FUNCTION_WHITELIST("glIsQueryEXT")
1353 
1354 _EVASGL_EXT_FUNCTION_WHITELIST("glBeginQuery")
1355 _EVASGL_EXT_FUNCTION_WHITELIST("glBeginQueryEXT")
1356 
1357 _EVASGL_EXT_FUNCTION_WHITELIST("glEndQuery")
1358 _EVASGL_EXT_FUNCTION_WHITELIST("glEndQueryEXT")
1359 
1360 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryiv")
1361 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryivEXT")
1362 
1363 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectuiv")
1364 _EVASGL_EXT_FUNCTION_WHITELIST("glGetQueryObjectuivEXT")
1365 
1366 _EVASGL_EXT_END()
1367 
1368 
1369 // ----------------------------------------------------------
1370 // NOTE: This extension changes state
1371 _EVASGL_EXT_BEGIN(alpha_test)
1372 _EVASGL_EXT_DRVNAME(GL_QCOM_alpha_test)
1373 
1374 _EVASGL_EXT_FUNCTION_WHITELIST("glAlphaFunc")
1375 _EVASGL_EXT_FUNCTION_WHITELIST("glAlphaFuncQCOM")
1376 
1377 _EVASGL_EXT_END()
1378 
1379 
1380 // ----------------------------------------------------------
1381 // NOTE: This extension changes state
1382 /* Also, to be perfectly correct, we would need to wrap the extension:
1383  * << DrawBuffersNV may only be called when the GL is bound to a framebuffer
1384  *    object. If called when the GL is bound to the default framebuffer, an
1385  *    INVALID_OPERATION error is generated. >>
1386  * This means the function should generate INVALID_OPERATION when indirect
1387  * rendering is active and the default FBO is currently bound.
1388  */
1389 _EVASGL_EXT_BEGIN(draw_buffers)
1390 _EVASGL_EXT_DRVNAME(GL_NV_draw_buffers)
1391 
1392 _EVASGL_EXT_FUNCTION_WHITELIST("glDrawBuffers")
1393 _EVASGL_EXT_FUNCTION_WHITELIST("glDrawBuffersNV")
1394 
1395 _EVASGL_EXT_END()
1396 
1397 
1398 // ----------------------------------------------------------
1399 // NOTE: This extension changes state
1400 _EVASGL_EXT_BEGIN(read_buffer)
1401 _EVASGL_EXT_DRVNAME(GL_NV_read_buffer)
1402 
1403 _EVASGL_EXT_FUNCTION_WHITELIST("glReadBuffer")
1404 _EVASGL_EXT_FUNCTION_WHITELIST("glReadBufferNV")
1405 
1406 _EVASGL_EXT_END()
1407 
1408 
1409 // Another version of the extension (that allows reading from the FRONT color buf)
1410 _EVASGL_EXT_BEGIN(read_buffer_front)
1411 _EVASGL_EXT_DRVNAME(GL_NV_read_buffer_front)
1412 _EVASGL_EXT_END()
1413 
1414 
1415 // ----------------------------------------------------------
1416 _EVASGL_EXT_BEGIN(framebuffer_blit)
1417 _EVASGL_EXT_DRVNAME_PRIVATE(GL_NV_framebuffer_blit)
1418 _EVASGL_EXT_DRVNAME_PRIVATE(GL_ANGLE_framebuffer_blit)
1419 
1420 _EVASGL_EXT_FUNCTION_WHITELIST("glBlitFramebuffer")
1421 _EVASGL_EXT_FUNCTION_WHITELIST("glBlitFramebufferNV")
1422 _EVASGL_EXT_FUNCTION_WHITELIST("glBlitFramebufferANGLE")
1423 
1424 _EVASGL_EXT_END()
1425 
1426 
1427 // ----------------------------------------------------------
1428 _EVASGL_EXT_BEGIN(framebuffer_multisample)
1429 _EVASGL_EXT_DRVNAME(GL_ANGLE_framebuffer_multisample)
1430 
1431 _EVASGL_EXT_FUNCTION_WHITELIST("glRenderbufferStorageMultisampleANGLE")
1432 
1433 _EVASGL_EXT_END()
1434 
1435 
1436 // ----------------------------------------------------------
1437 _EVASGL_EXT_BEGIN(point_sprite)
1438   _EVASGL_EXT_DRVNAME(GL_OES_point_sprite)
1439 _EVASGL_EXT_END()
1440 
1441 
1442 // ----------------------------------------------------------
1443 // This "extension" is already listed in the base GLES1 API
1444 // Provided here as convenience for evas_gl_proc_address_get
1445 _EVASGL_EXT_BEGIN(point_size_array)
1446   _EVASGL_EXT_DRVNAME(GL_OES_point_size_array)
1447 
1448   _EVASGL_EXT_FUNCTION_WHITELIST("glPointSizePointer")
1449   _EVASGL_EXT_FUNCTION_WHITELIST("glPointSizePointerOES")
1450 _EVASGL_EXT_END()
1451 
1452 
1453 
1454 
1455 #endif // _EVASGL_EXT_WHITELIST_ONLY ("safe" extensions)
1456 #endif // _EVASGL_EXT_ENABLE_GL_GLES
1457 
1458 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1459 
1460 
1461 
1462 
1463 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1464 // EGL EXTENSIONS
1465 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1466 #ifdef GL_GLES
1467 #if _EVASGL_EXT_ENABLE_EGL
1468 
1469 // Disable warnings about deprecated functions here
1470 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
1471 # pragma GCC diagnostic push
1472 # pragma GCC diagnostic ignored "-Wdeprecated-declarations"
1473 #elif defined(__clang__)
1474 # pragma clang diagnostic push
1475 # pragma clang diagnostic ignored "-Wdeprecated-declarations"
1476 #endif
1477 
1478 
1479 _EVASGL_EXT_BEGIN(EGL_KHR_image_base)
1480 
1481 	_EVASGL_EXT_DRVNAME(EGL_KHR_image_base)
1482 
1483 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void *, eglCreateImage, (EGLDisplay a, EGLContext b, EGLenum c, EGLClientBuffer d, const int *e), (a, b, c, d, e))
1484                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglCreateImageKHR")
1485 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1486 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, eglDestroyImage, (EGLDisplay a, void *b), (a, b))
1487                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglDestroyImageKHR")
1488 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1489 
1490     _EVASGL_EXT_FUNCTION_BEGIN(EvasGLImage, evasglCreateImage, (int target, void* buffer, const int *attrib_list), (target, buffer, attrib_list))
1491         _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglCreateImage)
1492 	_EVASGL_EXT_FUNCTION_END()
1493 	_EVASGL_EXT_FUNCTION_BEGIN(void, evasglDestroyImage, (EvasGLImage image), (image))
1494         _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglDestroyImage)
1495 	_EVASGL_EXT_FUNCTION_END()
1496 	_EVASGL_EXT_FUNCTION_BEGIN(EvasGLImage, evasglCreateImageForContext, (Evas_GL *evas_gl, Evas_GL_Context *ctx, int target, void* buffer, const int *attrib_list), (evas_gl, ctx, target, buffer, attrib_list))
1497 		_EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglCreateImageForContext)
1498 	_EVASGL_EXT_FUNCTION_END()
1499 
1500 	#ifdef _EVASGL_EXT_VERIFY
1501 	{
1502 		// Add special function pointers
1503 		//evgl_evasglCreateImage_ptr = GETPROCADDR("eglCreateImageKHR");
1504 		//evgl_evasglDestroyImage_ptr = GETPROCADDR("eglDestroyImageKHR");
1505 	}
1506 	#endif
1507 
1508 _EVASGL_EXT_END()
1509 
1510 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
1511 # pragma GCC diagnostic pop
1512 #elif defined(__clang__)
1513 # pragma clang diagnostic pop
1514 #endif
1515 
1516 
_EVASGL_EXT_BEGIN(EGL_KHR_image_pixmap)1517 _EVASGL_EXT_BEGIN(EGL_KHR_image_pixmap)
1518 	_EVASGL_EXT_DRVNAME(EGL_KHR_image_pixmap)
1519 	#ifdef _EVASGL_EXT_VERIFY
1520 	{
1521                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1522 	}
1523 	#endif
1524 _EVASGL_EXT_END()
1525 
1526 
_EVASGL_EXT_BEGIN(EGL_KHR_image)1527 _EVASGL_EXT_BEGIN(EGL_KHR_image)
1528 	_EVASGL_EXT_DRVNAME(EGL_KHR_image)
1529 	#ifdef _EVASGL_EXT_VERIFY
1530 	{
1531                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1532 	}
1533 	#endif
1534 _EVASGL_EXT_END()
1535 
1536 
_EVASGL_EXT_BEGIN(EGL_KHR_vg_parent_image)1537 _EVASGL_EXT_BEGIN(EGL_KHR_vg_parent_image)
1538 	_EVASGL_EXT_DRVNAME(EGL_KHR_vg_parent_image)
1539 	#ifdef _EVASGL_EXT_VERIFY
1540 	{
1541                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1542 	}
1543 	#endif
1544 _EVASGL_EXT_END()
1545 
1546 
_EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_2D_image)1547 _EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_2D_image)
1548 	_EVASGL_EXT_DRVNAME(EGL_KHR_gl_texture_2D_image)
1549 	#ifdef _EVASGL_EXT_VERIFY
1550 	{
1551                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1552 	}
1553 	#endif
1554 _EVASGL_EXT_END()
1555 
1556 
_EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_cubemap_image)1557 _EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_cubemap_image)
1558 	_EVASGL_EXT_DRVNAME(EGL_KHR_gl_texture_cubemap_image)
1559 	#ifdef _EVASGL_EXT_VERIFY
1560 	{
1561                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1562 	}
1563 	#endif
1564 _EVASGL_EXT_END()
1565 
1566 
_EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_3D_image)1567 _EVASGL_EXT_BEGIN(EGL_KHR_gl_texture_3D_image)
1568 	_EVASGL_EXT_DRVNAME(EGL_KHR_gl_texture_3D_image)
1569 	#ifdef _EVASGL_EXT_VERIFY
1570 	{
1571                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1572 	}
1573 	#endif
1574 _EVASGL_EXT_END()
1575 
1576 
_EVASGL_EXT_BEGIN(EGL_KHR_gl_renderbuffer_image)1577 _EVASGL_EXT_BEGIN(EGL_KHR_gl_renderbuffer_image)
1578 	_EVASGL_EXT_DRVNAME(EGL_KHR_gl_renderbuffer_image)
1579 	#ifdef _EVASGL_EXT_VERIFY
1580 	{
1581                 if (!_EVASGL_EXT_CHECK_SUPPORT("EGL_KHR_image_base")) _EVASGL_EXT_DISCARD_SUPPORT();
1582 	}
1583 	#endif
1584 _EVASGL_EXT_END()
1585 
1586 
1587 
1588 
1589 _EVASGL_EXT_BEGIN(EGL_KHR_fence_sync)
1590 
1591         /* 3 aliasses for EGL_KHR_fence_sync */
1592 	_EVASGL_EXT_DRVNAME_PRIVATE(EGL_KHR_fence_sync)
1593         _EVASGL_EXT_DRVNAME_PRIVATE(GL_OES_EGL_sync)
1594         _EVASGL_EXT_DRVNAME_PRIVATE(VG_KHR_EGL_sync)
1595 
1596 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void *, eglCreateSyncKHR, (EGLDisplay dpy, EGLenum type, const EGLint *attrib_list), (dpy, type, attrib_list))
1597                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglCreateSyncKHR")
1598 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1599 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglDestroySyncKHR, (EGLDisplay dpy, EGLSyncKHR sync), (dpy, sync))
1600                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglDestroySyncKHR")
1601 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1602 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLint, eglClientWaitSyncKHR, (EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout), (dpy, sync, flags, timeout))
1603                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglClientWaitSyncKHR")
1604 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1605 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglGetSyncAttribKHR, (EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint *value), (dpy, sync, attribute, value))
1606                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglGetSyncAttribKHR")
1607 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1608 
1609 	_EVASGL_EXT_FUNCTION_BEGIN(EvasGLSync, evasglCreateSync, (Evas_GL *evas_gl, unsigned int type, const int *attrib_list), (evas_gl, type, attrib_list))
1610             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglCreateSync)
1611 	_EVASGL_EXT_FUNCTION_END()
1612 	_EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglDestroySync, (Evas_GL *evas_gl, EvasGLSync sync), (evas_gl, sync))
1613             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglDestroySync)
1614 	_EVASGL_EXT_FUNCTION_END()
1615 	_EVASGL_EXT_FUNCTION_BEGIN(int, evasglClientWaitSync, (Evas_GL *evas_gl, EvasGLSync sync, int flags, EvasGLTime timeout), (evas_gl, sync, flags, timeout))
1616             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglClientWaitSync)
1617 	_EVASGL_EXT_FUNCTION_END()
1618 	_EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglGetSyncAttrib, (Evas_GL *evas_gl, EvasGLSync sync, int attribute, int *value), (evas_gl, sync, attribute, value))
1619             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglGetSyncAttrib)
1620 	_EVASGL_EXT_FUNCTION_END()
1621 
1622 _EVASGL_EXT_END()
1623 
1624 _EVASGL_EXT_BEGIN(EGL_KHR_reusable_sync)
1625 
1626 	_EVASGL_EXT_DRVNAME(EGL_KHR_reusable_sync)
1627 
1628 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglSignalSyncKHR, (EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode), (dpy, sync, mode))
1629                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglSignalSyncKHR")
1630 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1631 
1632 	_EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglSignalSync, (Evas_GL *evas_gl, EvasGLSync sync, unsigned mode), (evas_gl, sync, mode))
1633             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglSignalSync)
1634 	_EVASGL_EXT_FUNCTION_END()
1635 
1636 _EVASGL_EXT_END()
1637 
1638 _EVASGL_EXT_BEGIN(EGL_KHR_wait_sync)
1639 
1640 	_EVASGL_EXT_DRVNAME(EGL_KHR_wait_sync)
1641 
1642 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLint, eglWaitSyncKHR, (EGLDisplay dpy, EGLSyncKHR sync, int flags), (dpy, sync, flags))
1643                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglWaitSyncKHR")
1644 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1645 
1646 	_EVASGL_EXT_FUNCTION_BEGIN(int, evasglWaitSync, (Evas_GL *evas_gl, EvasGLSync sync, int flags), (evas_gl, sync, flags))
1647             _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglWaitSync)
1648 	_EVASGL_EXT_FUNCTION_END()
1649 
1650 _EVASGL_EXT_END()
1651 
1652 _EVASGL_EXT_BEGIN(EGL_WL_bind_wayland_display)
1653 
1654         _EVASGL_EXT_DRVNAME(EGL_WL_bind_wayland_display)
1655 
1656         _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglBindWaylandDisplayWL, (EGLDisplay dpy, void *display), (dpy, display))
1657                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglBindWaylandDisplayWL")
1658         _EVASGL_EXT_FUNCTION_PRIVATE_END()
1659         _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglUnbindWaylandDisplayWL, (EGLDisplay dpy, void *display), (dpy, display))
1660                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglUnbindWaylandDisplayWL")
1661         _EVASGL_EXT_FUNCTION_PRIVATE_END()
1662         _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(EGLBoolean, eglQueryWaylandBufferWL, (EGLDisplay dpy, void *buffer, EGLint attribute, EGLint *value), (dpy, buffer, attribute, value))
1663                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglQueryWaylandBufferWL")
1664         _EVASGL_EXT_FUNCTION_PRIVATE_END()
1665 
1666         _EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglBindWaylandDisplay, (Evas_GL *evas_gl, void *wl_display), (evas_gl, wl_display))
1667                 _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglBindWaylandDisplay)
1668         _EVASGL_EXT_FUNCTION_END()
1669         _EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglUnbindWaylandDisplay, (Evas_GL *evas_gl, void *wl_display), (evas_gl, wl_display))
1670                 _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglUnbindWaylandDisplay)
1671         _EVASGL_EXT_FUNCTION_END()
1672         _EVASGL_EXT_FUNCTION_BEGIN(Eina_Bool, evasglQueryWaylandBuffer, (Evas_GL *evas_gl, void *buffer, int attribute, int *value), (evas_gl, buffer, attribute, value))
1673                 _EVASGL_EXT_FUNCTION_DRVFUNC(_evgl_evasglQueryWaylandBuffer)
1674         _EVASGL_EXT_FUNCTION_END()
1675 
1676 _EVASGL_EXT_END()
1677 
1678 
1679 #if 0
1680 _EVASGL_EXT_BEGIN(EGL_SEC_map_image)
1681 	_EVASGL_EXT_DRVNAME(EGL_SEC_map_image)
1682 
1683 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void *, eglMapImageSEC, void *a, void *b, int c, int d))
1684                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglMapImageSEC")
1685 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1686 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(unsigned int, eglUnmapImageSEC, void *a, void *b, int c))
1687                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("eglUnmapImageSEC")
1688 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1689 _EVASGL_EXT_END()
1690 #endif
1691 
1692 #endif // _EVASGL_EXT_ENABLE_EGL
1693 #endif
1694 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1695 
1696 
1697 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1698 // GLX EXTENSIONS
1699 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1700 #if 0
1701 #ifdef GL_GLES
1702 #else
1703 
1704 _EVASGL_EXT_BEGIN(GLX_EXT_swap_control)
1705 	_EVASGL_EXT_DRVNAME(GLX_EXT_swap_control)
1706 
1707 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glXSwapIntervalEXT, (Display *dpy, GLXDrawable drawable, int interval))
1708                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXSwapIntervalEXT")
1709 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1710 _EVASGL_EXT_END()
1711 
1712 _EVASGL_EXT_BEGIN(GLX_SGI_swap_control)
1713 	_EVASGL_EXT_DRVNAME(GLX_SGI_swap_control)
1714 
1715 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(int, glXSwapIntervalSGI, (int interval))
1716                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXSwapIntervalSGI")
1717 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1718 _EVASGL_EXT_END()
1719 
1720 _EVASGL_EXT_BEGIN(GLX_SGI_video_sync)
1721 	_EVASGL_EXT_DRVNAME(GLX_SGI_video_sync)
1722 
1723         _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(int, glXGetVideoSyncSGI, (uint32_t *count))
1724                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXGetVideoSyncSGI")
1725 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1726 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(int, glXWaitVideoSyncSGI, (int divisor, int remainder, unsigned int *count))
1727                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXWaitVideoSyncSGI")
1728 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1729 
1730 _EVASGL_EXT_END()
1731 
1732 _EVASGL_EXT_BEGIN(GLX_EXT_texture_from_pixmap)
1733 	_EVASGL_EXT_DRVNAME(GLX_EXT_texture_from_pixmap)
1734 
1735 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glXBindTexImageEXT, (Display *display, GLXDrawable drawable, int buffer, const int *attrib_list))
1736                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXBindTexImageEXT")
1737 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1738 	_EVASGL_EXT_FUNCTION_PRIVATE_BEGIN(void, glXReleaseTexImageEXT, (Display *display, GLXDrawable drawable, int buffer))
1739                 _EVASGL_EXT_FUNCTION_DRVFUNC_PROCADDR("glXReleaseTexImageEXT")
1740 	_EVASGL_EXT_FUNCTION_PRIVATE_END()
1741 
1742 _EVASGL_EXT_END()
1743 
1744 #endif
1745 #endif
1746 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1747 
1748 #ifdef _EVASGL_EXT_WHITELIST_ONLY
1749 #undef _EVASGL_EXT_WHITELIST_ONLY
1750 #endif
1751 
1752 #ifdef _EVASGL_EXT_ENABLE_GL_GLES
1753 #undef _EVASGL_EXT_ENABLE_GL_GLES
1754 #endif
1755 
1756 #ifdef _EVASGL_EXT_ENABLE_EGL
1757 #undef _EVASGL_EXT_ENABLE_EGL
1758 #endif
1759 
1760 #ifdef _EVASGL_EXT_FUNCTION_WHITELIST
1761 #undef _EVASGL_EXT_FUNCTION_WHITELIST
1762 #endif
1763 
1764 #ifdef _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN_DEFINED
1765 #undef _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN
1766 #undef _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN_DEFINED
1767 #endif
1768 
1769 #ifdef _EVASGL_EXT_FUNCTION_PRIVATE_END_DEFINED
1770 #undef _EVASGL_EXT_FUNCTION_PRIVATE_END
1771 #undef _EVASGL_EXT_FUNCTION_PRIVATE_END_DEFINED
1772 #endif
1773 
1774 #ifdef _EVASGL_EXT_DRVNAME_PRIVATE_DEFINED
1775 #undef _EVASGL_EXT_DRVNAME_PRIVATE
1776 #undef _EVASGL_EXT_DRVNAME_PRIVATE_DEFINED
1777 #endif
1778 
1779 #ifdef _EVASGL_EXT_USE_DEFAULT_DEFINE
1780 #undef _EVASGL_EXT_CHECK_SUPPORT
1781 #undef _EVASGL_EXT_DISCARD_SUPPORT
1782 #undef _EVASGL_EXT_BEGIN
1783 #undef _EVASGL_EXT_END
1784 #undef _EVASGL_EXT_DRVNAME
1785 #undef _EVASGL_EXT_DRVNAME_PRIVATE
1786 #undef _EVASGL_EXT_FUNCTION_BEGIN
1787 #undef _EVASGL_EXT_FUNCTION_END
1788 #undef _EVASGL_EXT_FUNCTION_PRIVATE_BEGIN
1789 #undef _EVASGL_EXT_FUNCTION_PRIVATE_END
1790 #undef _EVASGL_EXT_FUNCTION_DRVFUNC
1791 #endif
1792 
1793 
1794