2 * Copyright (C) 2010 Tieto Corporation.
3 * Copyright (C) 2011 Igalia S.L.
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26 #include <qopenglfunctions.h>
27 #include <QOpenGLContext>
32 #elif USE(TIZEN_TEXTURE_MAPPER)
38 #if defined(GL_ES_VERSION_2_0)
39 // Some openGL ES systems miss this typedef.
43 typedef struct _OpenGLFunctionTable OpenGLFunctionTable;
46 bool initializeOpenGLShims();
47 OpenGLFunctionTable* openGLFunctionTable();
49 #if USE(TIZEN_TEXTURE_MAPPER)
50 class EvasGlApiInterface {
52 static EvasGlApiInterface& shared()
54 static EvasGlApiInterface& evasGlApiInterface = *new EvasGlApiInterface;
55 return evasGlApiInterface;
58 void initialize(Evas_GL_API* evasGlApi) { m_evasGlApi = evasGlApi; }
59 Evas_GL_API* evasGlApi() { return m_evasGlApi; }
67 Evas_GL_API* m_evasGlApi;
72 #if !USE(TIZEN_TEXTURE_MAPPER)
73 typedef void (*glActiveTextureType) (GLenum);
74 typedef void (*glAttachShaderType) (GLuint, GLuint);
75 typedef void (*glBindAttribLocationType) (GLuint, GLuint, const char*);
76 typedef void (*glBindBufferType) (GLenum, GLuint);
77 typedef void (*glBindFramebufferType) (GLenum, GLuint);
78 typedef void (*glBindRenderbufferType) (GLenum, GLuint);
79 typedef void (*glBlendColorType) (GLclampf, GLclampf, GLclampf, GLclampf);
80 typedef void (*glBlendEquationType) (GLenum);
81 typedef void (*glBlendEquationSeparateType)(GLenum, GLenum);
82 typedef void (*glBlendFuncSeparateType)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
83 typedef void (*glBlitFramebufferType) (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
84 typedef void (*glBufferDataType) (GLenum, GLsizeiptr, const GLvoid*, GLenum);
85 typedef void (*glBufferSubDataType) (GLenum, GLintptr, GLsizeiptr, const GLvoid*);
86 typedef GLenum (*glCheckFramebufferStatusType) (GLenum);
87 typedef void (*glCompileShaderType) (GLuint);
88 typedef GLuint (*glCreateProgramType) ();
89 typedef GLuint (*glCreateShaderType) (GLenum);
90 typedef void (*glDeleteBuffersType) (GLsizei, const GLuint*);
91 typedef void (*glDeleteFramebuffersType) (GLsizei n, const GLuint*);
92 typedef void (*glDeleteProgramType) (GLuint);
93 typedef void (*glDeleteRenderbuffersType) (GLsizei n, const GLuint*);
94 typedef void (*glDeleteShaderType) (GLuint);
95 typedef void (*glDetachShaderType) (GLuint, GLuint);
96 typedef void (*glDisableVertexAttribArrayType) (GLuint);
97 typedef void (*glEnableVertexAttribArrayType) (GLuint);
98 typedef void (*glFramebufferRenderbufferType) (GLenum, GLenum, GLenum, GLuint);
99 typedef void (*glFramebufferTexture2DType) (GLenum, GLenum, GLenum, GLuint, GLint);
100 typedef void (*glGenBuffersType) (GLsizei, GLuint*);
101 typedef void (*glGenerateMipmapType) (GLenum target);
102 typedef void (*glGenFramebuffersType) (GLsizei, GLuint*);
103 typedef void (*glGenRenderbuffersType) (GLsizei, GLuint*);
104 typedef void (*glGetActiveAttribType) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
105 typedef void (*glGetActiveUniformType) (GLuint, GLuint, GLsizei, GLsizei*, GLint*, GLenum*, GLchar*);
106 typedef void (*glGetAttachedShadersType) (GLuint, GLsizei, GLsizei*, GLuint*);
107 typedef GLint (*glGetAttribLocationType) (GLuint, const char*);
108 typedef void (*glGetBufferParameterivType) (GLenum, GLenum, GLint*);
109 typedef void (*glGetFramebufferAttachmentParameterivType) (GLenum, GLenum, GLenum, GLint* params);
110 typedef void (*glGetProgramInfoLogType) (GLuint, GLsizei, GLsizei*, char*);
111 typedef void (*glGetProgramivType) (GLuint, GLenum, GLint*);
112 typedef void (*glGetRenderbufferParameterivType) (GLenum, GLenum, GLint*);
113 typedef void (*glGetShaderInfoLogType) (GLuint, GLsizei, GLsizei*, char*);
114 typedef void (*glGetShaderivType) (GLuint, GLenum, GLint*);
115 typedef void (*glGetShaderSourceType) (GLuint, GLsizei, GLsizei*, char*);
116 typedef GLint (*glGetUniformLocationType) (GLuint, const char*);
117 typedef void (*glGetUniformfvType) (GLuint, GLint, GLfloat*);
118 typedef void (*glGetUniformivType) (GLuint, GLint, GLint*);
119 typedef void (*glGetVertexAttribfvType) (GLuint, GLenum, GLfloat*);
120 typedef void (*glGetVertexAttribivType) (GLuint, GLenum, GLint*);
121 typedef void (*glGetVertexAttribPointervType) (GLuint, GLenum, GLvoid**);
122 typedef GLboolean (*glIsBufferType) (GLuint);
123 typedef GLboolean (*glIsFramebufferType) (GLuint);
124 typedef GLboolean (*glIsProgramType) (GLuint);
125 typedef GLboolean (*glIsRenderbufferType) (GLuint);
126 typedef GLboolean (*glIsShaderType) (GLuint);
127 typedef void (*glLinkProgramType) (GLuint);
128 typedef void (*glRenderbufferStorageType) (GLenum, GLenum, GLsizei, GLsizei);
129 typedef void (*glRenderbufferStorageMultisampleType) (GLenum, GLsizei, GLenum, GLsizei, GLsizei);
130 typedef void (*glSampleCoverageType) (GLclampf, GLboolean);
131 typedef void (*glShaderSourceType) (GLuint, GLsizei, const char**, const GLint*);
132 typedef void (*glStencilFuncSeparateType) (GLenum, GLenum, GLint, GLuint);
133 typedef void (*glStencilMaskSeparateType) (GLenum, GLuint);
134 typedef void (*glStencilOpSeparateType) (GLenum, GLenum, GLenum, GLenum);
135 typedef void (*glUniform1fType) (GLint, GLfloat);
136 typedef void (*glUniform1fvType) (GLint, GLsizei, const GLfloat*);
137 typedef void (*glUniform1iType) (GLint, GLint);
138 typedef void (*glUniform1ivType) (GLint, GLsizei, const GLint*);
139 typedef void (*glUniform2fType) (GLint, GLfloat, GLfloat);
140 typedef void (*glUniform2fvType) (GLint, GLsizei, const GLfloat*);
141 typedef void (*glUniform2iType) (GLint, GLint, GLint);
142 typedef void (*glUniform2ivType) (GLint, GLsizei, const GLint*);
143 typedef void (*glUniform3fType) (GLint, GLfloat, GLfloat, GLfloat);
144 typedef void (*glUniform3fvType) (GLint, GLsizei, const GLfloat*);
145 typedef void (*glUniform3iType) (GLint, GLint, GLint, GLint);
146 typedef void (*glUniform3ivType) (GLint, GLsizei, const GLint*);
147 typedef void (*glUniform4fType) (GLint, GLfloat, GLfloat, GLfloat, GLfloat);
148 typedef void (*glUniform4fvType) (GLint, GLsizei, const GLfloat*);
149 typedef void (*glUniform4iType) (GLint, GLint, GLint, GLint, GLint);
150 typedef void (*glUniform4ivType) (GLint, GLsizei, const GLint*);
151 typedef void (*glUniformMatrix2fvType) (GLint, GLsizei, GLboolean, const GLfloat*);
152 typedef void (*glUniformMatrix3fvType) (GLint, GLsizei, GLboolean, const GLfloat*);
153 typedef void (*glUniformMatrix4fvType) (GLint, GLsizei, GLboolean, const GLfloat*);
154 typedef void (*glUseProgramType) (GLuint);
155 typedef void (*glValidateProgramType) (GLuint);
156 typedef void (*glVertexAttrib1fType) (GLuint, const GLfloat);
157 typedef void (*glVertexAttrib1fvType) (GLuint, const GLfloat*);
158 typedef void (*glVertexAttrib2fType) (GLuint, const GLfloat, const GLfloat);
159 typedef void (*glVertexAttrib2fvType) (GLuint, const GLfloat*);
160 typedef void (*glVertexAttrib3fType) (GLuint, const GLfloat, const GLfloat, const GLfloat);
161 typedef void (*glVertexAttrib3fvType) (GLuint, const GLfloat*);
162 typedef void (*glVertexAttrib4fType) (GLuint, const GLfloat, const GLfloat, const GLfloat, const GLfloat);
163 typedef void (*glVertexAttrib4fvType) (GLuint, const GLfloat*);
164 typedef void (*glVertexAttribPointerType) (GLuint, GLint, GLenum, GLboolean, GLsizei, const GLvoid*);
166 #define FUNCTION_TABLE_ENTRY(FunctionName) FunctionName##Type FunctionName
168 typedef struct _OpenGLFunctionTable {
169 FUNCTION_TABLE_ENTRY(glActiveTexture);
170 FUNCTION_TABLE_ENTRY(glAttachShader);
171 FUNCTION_TABLE_ENTRY(glBindAttribLocation);
172 FUNCTION_TABLE_ENTRY(glBindBuffer);
173 FUNCTION_TABLE_ENTRY(glBindFramebuffer);
174 FUNCTION_TABLE_ENTRY(glBindRenderbuffer);
175 FUNCTION_TABLE_ENTRY(glBlendColor);
176 FUNCTION_TABLE_ENTRY(glBlendEquation);
177 FUNCTION_TABLE_ENTRY(glBlendEquationSeparate);
178 FUNCTION_TABLE_ENTRY(glBlendFuncSeparate);
179 FUNCTION_TABLE_ENTRY(glBlitFramebuffer);
180 FUNCTION_TABLE_ENTRY(glBufferData);
181 FUNCTION_TABLE_ENTRY(glBufferSubData);
182 FUNCTION_TABLE_ENTRY(glCheckFramebufferStatus);
183 FUNCTION_TABLE_ENTRY(glCompileShader);
184 FUNCTION_TABLE_ENTRY(glCreateProgram);
185 FUNCTION_TABLE_ENTRY(glCreateShader);
186 FUNCTION_TABLE_ENTRY(glDeleteBuffers);
187 FUNCTION_TABLE_ENTRY(glDeleteFramebuffers);
188 FUNCTION_TABLE_ENTRY(glDeleteProgram);
189 FUNCTION_TABLE_ENTRY(glDeleteRenderbuffers);
190 FUNCTION_TABLE_ENTRY(glDeleteShader);
191 FUNCTION_TABLE_ENTRY(glDetachShader);
192 FUNCTION_TABLE_ENTRY(glDisableVertexAttribArray);
193 FUNCTION_TABLE_ENTRY(glEnableVertexAttribArray);
194 FUNCTION_TABLE_ENTRY(glFramebufferRenderbuffer);
195 FUNCTION_TABLE_ENTRY(glFramebufferTexture2D);
196 FUNCTION_TABLE_ENTRY(glGenBuffers);
197 FUNCTION_TABLE_ENTRY(glGenerateMipmap);
198 FUNCTION_TABLE_ENTRY(glGenFramebuffers);
199 FUNCTION_TABLE_ENTRY(glGenRenderbuffers);
200 FUNCTION_TABLE_ENTRY(glGetActiveAttrib);
201 FUNCTION_TABLE_ENTRY(glGetActiveUniform);
202 FUNCTION_TABLE_ENTRY(glGetAttachedShaders);
203 FUNCTION_TABLE_ENTRY(glGetAttribLocation);
204 FUNCTION_TABLE_ENTRY(glGetBufferParameteriv);
205 FUNCTION_TABLE_ENTRY(glGetFramebufferAttachmentParameteriv);
206 FUNCTION_TABLE_ENTRY(glGetProgramInfoLog);
207 FUNCTION_TABLE_ENTRY(glGetProgramiv);
208 FUNCTION_TABLE_ENTRY(glGetRenderbufferParameteriv);
209 FUNCTION_TABLE_ENTRY(glGetShaderInfoLog);
210 FUNCTION_TABLE_ENTRY(glGetShaderiv);
211 FUNCTION_TABLE_ENTRY(glGetShaderSource);
212 FUNCTION_TABLE_ENTRY(glGetUniformfv);
213 FUNCTION_TABLE_ENTRY(glGetUniformiv);
214 FUNCTION_TABLE_ENTRY(glGetUniformLocation);
215 FUNCTION_TABLE_ENTRY(glGetVertexAttribfv);
216 FUNCTION_TABLE_ENTRY(glGetVertexAttribiv);
217 FUNCTION_TABLE_ENTRY(glGetVertexAttribPointerv);
218 FUNCTION_TABLE_ENTRY(glIsBuffer);
219 FUNCTION_TABLE_ENTRY(glIsFramebuffer);
220 FUNCTION_TABLE_ENTRY(glIsProgram);
221 FUNCTION_TABLE_ENTRY(glIsRenderbuffer);
222 FUNCTION_TABLE_ENTRY(glIsShader);
223 FUNCTION_TABLE_ENTRY(glLinkProgram);
224 FUNCTION_TABLE_ENTRY(glRenderbufferStorage);
225 FUNCTION_TABLE_ENTRY(glRenderbufferStorageMultisample);
226 FUNCTION_TABLE_ENTRY(glSampleCoverage);
227 FUNCTION_TABLE_ENTRY(glShaderSource);
228 FUNCTION_TABLE_ENTRY(glStencilFuncSeparate);
229 FUNCTION_TABLE_ENTRY(glStencilMaskSeparate);
230 FUNCTION_TABLE_ENTRY(glStencilOpSeparate);
231 FUNCTION_TABLE_ENTRY(glUniform1f);
232 FUNCTION_TABLE_ENTRY(glUniform1fv);
233 FUNCTION_TABLE_ENTRY(glUniform1i);
234 FUNCTION_TABLE_ENTRY(glUniform1iv);
235 FUNCTION_TABLE_ENTRY(glUniform2f);
236 FUNCTION_TABLE_ENTRY(glUniform2fv);
237 FUNCTION_TABLE_ENTRY(glUniform2i);
238 FUNCTION_TABLE_ENTRY(glUniform2iv);
239 FUNCTION_TABLE_ENTRY(glUniform3f);
240 FUNCTION_TABLE_ENTRY(glUniform3fv);
241 FUNCTION_TABLE_ENTRY(glUniform3i);
242 FUNCTION_TABLE_ENTRY(glUniform3iv);
243 FUNCTION_TABLE_ENTRY(glUniform4f);
244 FUNCTION_TABLE_ENTRY(glUniform4fv);
245 FUNCTION_TABLE_ENTRY(glUniform4i);
246 FUNCTION_TABLE_ENTRY(glUniform4iv);
247 FUNCTION_TABLE_ENTRY(glUniformMatrix2fv);
248 FUNCTION_TABLE_ENTRY(glUniformMatrix3fv);
249 FUNCTION_TABLE_ENTRY(glUniformMatrix4fv);
250 FUNCTION_TABLE_ENTRY(glUseProgram);
251 FUNCTION_TABLE_ENTRY(glValidateProgram);
252 FUNCTION_TABLE_ENTRY(glVertexAttrib1f);
253 FUNCTION_TABLE_ENTRY(glVertexAttrib1fv);
254 FUNCTION_TABLE_ENTRY(glVertexAttrib2f);
255 FUNCTION_TABLE_ENTRY(glVertexAttrib2fv);
256 FUNCTION_TABLE_ENTRY(glVertexAttrib3f);
257 FUNCTION_TABLE_ENTRY(glVertexAttrib3fv);
258 FUNCTION_TABLE_ENTRY(glVertexAttrib4f);
259 FUNCTION_TABLE_ENTRY(glVertexAttrib4fv);
260 FUNCTION_TABLE_ENTRY(glVertexAttribPointer);
261 } OpenGLFunctionTable;
263 // We disable the shims for OpenGLShims.cpp, so that we can set them.
264 #ifndef DISABLE_SHIMS
265 #define LOOKUP_GL_FUNCTION(Function) WebCore::openGLFunctionTable()->Function
266 #define glActiveTexture LOOKUP_GL_FUNCTION(glActiveTexture)
267 #define glAttachShader LOOKUP_GL_FUNCTION(glAttachShader)
268 #define glBindAttribLocation LOOKUP_GL_FUNCTION(glBindAttribLocation)
269 #define glBindBuffer LOOKUP_GL_FUNCTION(glBindBuffer)
270 #define glBindFramebufferEXT glBindFramebuffer
271 #define glBindFramebuffer LOOKUP_GL_FUNCTION(glBindFramebuffer)
272 #define glBindRenderbufferEXT glBindRenderbuffer
273 #define glBindRenderbuffer LOOKUP_GL_FUNCTION(glBindRenderbuffer)
274 #define glBlendColor LOOKUP_GL_FUNCTION(glBlendColor)
275 #define glBlendEquation LOOKUP_GL_FUNCTION(glBlendEquation)
276 #define glBlendEquationSeparate LOOKUP_GL_FUNCTION(glBlendEquationSeparate)
277 #define glBlendFuncSeparate LOOKUP_GL_FUNCTION(glBlendFuncSeparate)
278 #define glBlitFramebufferEXT glBlitFramebuffer
279 #define glBlitFramebuffer LOOKUP_GL_FUNCTION(glBlitFramebuffer)
280 #define glBufferData LOOKUP_GL_FUNCTION(glBufferData)
281 #define glBufferSubData LOOKUP_GL_FUNCTION(glBufferSubData)
282 #define glCheckFramebufferStatusEXT glCheckFramebufferStatus
283 #define glCheckFramebufferStatus LOOKUP_GL_FUNCTION(glCheckFramebufferStatus)
284 #define glCompileShader LOOKUP_GL_FUNCTION(glCompileShader)
285 #define glCreateProgram LOOKUP_GL_FUNCTION(glCreateProgram)
286 #define glCreateShader LOOKUP_GL_FUNCTION(glCreateShader)
287 #define glDeleteBuffers LOOKUP_GL_FUNCTION(glDeleteBuffers)
288 #define glDeleteFramebuffersEXT glDeleteFramebuffers
289 #define glDeleteFramebuffers LOOKUP_GL_FUNCTION(glDeleteFramebuffers)
290 #define glDeleteProgram LOOKUP_GL_FUNCTION(glDeleteProgram)
291 #define glDeleteRenderbuffersEXT glDeleteRenderbuffers
292 #define glDeleteRenderbuffers LOOKUP_GL_FUNCTION(glDeleteRenderbuffers)
293 #define glDeleteShader LOOKUP_GL_FUNCTION(glDeleteShader)
294 #define glDetachShader LOOKUP_GL_FUNCTION(glDetachShader)
295 #define glDisableVertexAttribArray LOOKUP_GL_FUNCTION(glDisableVertexAttribArray)
296 #define glEnableVertexAttribArray LOOKUP_GL_FUNCTION(glEnableVertexAttribArray)
297 #define glFramebufferRenderbufferEXT glFramebufferRenderbuffer
298 #define glFramebufferRenderbuffer LOOKUP_GL_FUNCTION(glFramebufferRenderbuffer)
299 #define glFramebufferTexture2DEXT glFramebufferTexture2D
300 #define glFramebufferTexture2D LOOKUP_GL_FUNCTION(glFramebufferTexture2D)
301 #define glGenBuffers LOOKUP_GL_FUNCTION(glGenBuffers)
302 #define glGenerateMipmapEXT glGenerateMipmap
303 #define glGenerateMipmap LOOKUP_GL_FUNCTION(glGenerateMipmap)
304 #define glGenFramebuffersEXT glGenFramebuffers
305 #define glGenFramebuffers LOOKUP_GL_FUNCTION(glGenFramebuffers)
306 #define glGenRenderbuffersEXT glGenRenderbuffers
307 #define glGenRenderbuffers LOOKUP_GL_FUNCTION(glGenRenderbuffers)
308 #define glGetActiveAttrib LOOKUP_GL_FUNCTION(glGetActiveAttrib)
309 #define glGetActiveUniform LOOKUP_GL_FUNCTION(glGetActiveUniform)
310 #define glGetAttachedShaders LOOKUP_GL_FUNCTION(glGetAttachedShaders)
311 #define glGetAttribLocation LOOKUP_GL_FUNCTION(glGetAttribLocation)
312 #define glGetBufferParameterivEXT glGetBufferParameteriv
313 #define glGetBufferParameteriv LOOKUP_GL_FUNCTION(glGetBufferParameteriv)
314 #define glGetFramebufferAttachmentParameterivEXT glGetFramebufferAttachmentParameteriv
315 #define glGetFramebufferAttachmentParameteriv LOOKUP_GL_FUNCTION(glGetFramebufferAttachmentParameteriv)
316 #define glGetProgramInfoLog LOOKUP_GL_FUNCTION(glGetProgramInfoLog)
317 #define glGetProgramiv LOOKUP_GL_FUNCTION(glGetProgramiv)
318 #define glGetRenderbufferParameterivEXT glGetRenderbufferParameteriv
319 #define glGetRenderbufferParameteriv LOOKUP_GL_FUNCTION(glGetRenderbufferParameteriv)
320 #define glGetShaderInfoLog LOOKUP_GL_FUNCTION(glGetShaderInfoLog)
321 #define glGetShaderiv LOOKUP_GL_FUNCTION(glGetShaderiv)
322 #define glGetShaderSource LOOKUP_GL_FUNCTION(glGetShaderSource)
323 #define glGetUniformfv LOOKUP_GL_FUNCTION(glGetUniformfv)
324 #define glGetUniformiv LOOKUP_GL_FUNCTION(glGetUniformiv)
325 #define glGetUniformLocation LOOKUP_GL_FUNCTION(glGetUniformLocation)
326 #define glGetVertexAttribfv LOOKUP_GL_FUNCTION(glGetVertexAttribfv)
327 #define glGetVertexAttribiv LOOKUP_GL_FUNCTION(glGetVertexAttribiv)
328 #define glGetVertexAttribPointerv LOOKUP_GL_FUNCTION(glGetVertexAttribPointerv)
329 #define glIsBuffer LOOKUP_GL_FUNCTION(glIsBuffer)
330 #define glIsFramebufferEXT glIsFramebuffer
331 #define glIsFramebuffer LOOKUP_GL_FUNCTION(glIsFramebuffer)
332 #define glIsProgram LOOKUP_GL_FUNCTION(glIsProgram)
333 #define glIsRenderbufferEXT glIsRenderbuffer
334 #define glIsRenderbuffer LOOKUP_GL_FUNCTION(glIsRenderbuffer)
335 #define glIsShader LOOKUP_GL_FUNCTION(glIsShader)
336 #define glLinkProgram LOOKUP_GL_FUNCTION(glLinkProgram)
337 #define glRenderbufferStorageEXT glRenderbufferStorage
338 #define glRenderbufferStorage LOOKUP_GL_FUNCTION(glRenderbufferStorage)
339 #define glRenderbufferStorageMultisampleEXT glRenderbufferStorageMultisample
340 #define glRenderbufferStorageMultisample LOOKUP_GL_FUNCTION(glRenderbufferStorageMultisample)
341 #define glSampleCoverage LOOKUP_GL_FUNCTION(glSampleCoverage)
342 #define glShaderSource LOOKUP_GL_FUNCTION(glShaderSource)
343 #define glStencilFuncSeparate LOOKUP_GL_FUNCTION(glStencilFuncSeparate)
344 #define glStencilMaskSeparate LOOKUP_GL_FUNCTION(glStencilMaskSeparate)
345 #define glStencilOpSeparate LOOKUP_GL_FUNCTION(glStencilOpSeparate)
346 #define glUniform1f LOOKUP_GL_FUNCTION(glUniform1f)
347 #define glUniform1fv LOOKUP_GL_FUNCTION(glUniform1fv)
348 #define glUniform1i LOOKUP_GL_FUNCTION(glUniform1i)
349 #define glUniform1iv LOOKUP_GL_FUNCTION(glUniform1iv)
350 #define glUniform2f LOOKUP_GL_FUNCTION(glUniform2f)
351 #define glUniform2fv LOOKUP_GL_FUNCTION(glUniform2fv)
352 #define glUniform2i LOOKUP_GL_FUNCTION(glUniform2i)
353 #define glUniform2iv LOOKUP_GL_FUNCTION(glUniform2iv)
354 #define glUniform3f LOOKUP_GL_FUNCTION(glUniform3f)
355 #define glUniform3fv LOOKUP_GL_FUNCTION(glUniform3fv)
356 #define glUniform3i LOOKUP_GL_FUNCTION(glUniform3i)
357 #define glUniform3iv LOOKUP_GL_FUNCTION(glUniform3iv)
358 #define glUniform4f LOOKUP_GL_FUNCTION(glUniform4f)
359 #define glUniform4fv LOOKUP_GL_FUNCTION(glUniform4fv)
360 #define glUniform4i LOOKUP_GL_FUNCTION(glUniform4i)
361 #define glUniform4iv LOOKUP_GL_FUNCTION(glUniform4iv)
362 #define glUniformMatrix2fv LOOKUP_GL_FUNCTION(glUniformMatrix2fv)
363 #define glUniformMatrix3fv LOOKUP_GL_FUNCTION(glUniformMatrix3fv)
364 #define glUniformMatrix4fv LOOKUP_GL_FUNCTION(glUniformMatrix4fv)
365 #define glUseProgram LOOKUP_GL_FUNCTION(glUseProgram)
366 #define glValidateProgram LOOKUP_GL_FUNCTION(glValidateProgram)
367 #define glVertexAttrib1f LOOKUP_GL_FUNCTION(glVertexAttrib1f)
368 #define glVertexAttrib1fv LOOKUP_GL_FUNCTION(glVertexAttrib1fv)
369 #define glVertexAttrib2f LOOKUP_GL_FUNCTION(glVertexAttrib2f)
370 #define glVertexAttrib2fv LOOKUP_GL_FUNCTION(glVertexAttrib2fv)
371 #define glVertexAttrib3f LOOKUP_GL_FUNCTION(glVertexAttrib3f)
372 #define glVertexAttrib3fv LOOKUP_GL_FUNCTION(glVertexAttrib3fv)
373 #define glVertexAttrib4f LOOKUP_GL_FUNCTION(glVertexAttrib4f)
374 #define glVertexAttrib4fv LOOKUP_GL_FUNCTION(glVertexAttrib4fv)
375 #define glVertexAttribPointer LOOKUP_GL_FUNCTION(glVertexAttribPointer)
377 #else // !USE(TIZEN_TEXTURE_MAPPER)
378 #define LOOKUP_GL_FUNCTION(Function) WebCore::EvasGlApiInterface::shared().evasGlApi()->Function
379 #define glActiveTexture LOOKUP_GL_FUNCTION(glActiveTexture)
380 #define glAttachShader LOOKUP_GL_FUNCTION(glAttachShader)
381 #define glBindAttribLocation LOOKUP_GL_FUNCTION(glBindAttribLocation)
382 #define glBindBuffer LOOKUP_GL_FUNCTION(glBindBuffer)
383 #define glBindFramebuffer LOOKUP_GL_FUNCTION(glBindFramebuffer)
384 #define glBindRenderbuffer LOOKUP_GL_FUNCTION(glBindRenderbuffer)
385 #define glBindTexture LOOKUP_GL_FUNCTION(glBindTexture)
386 #define glBlendColor LOOKUP_GL_FUNCTION(glBlendColor)
387 #define glBlendEquation LOOKUP_GL_FUNCTION(glBlendEquation)
388 #define glBlendEquationSeparate LOOKUP_GL_FUNCTION(glBlendEquationSeparate)
389 #define glBlendFunc LOOKUP_GL_FUNCTION(glBlendFunc)
390 #define glBlendFuncSeparate LOOKUP_GL_FUNCTION(glBlendFuncSeparate)
391 #define glBufferData LOOKUP_GL_FUNCTION(glBufferData)
392 #define glBufferSubData LOOKUP_GL_FUNCTION(glBufferSubData)
393 #define glCheckFramebufferStatus LOOKUP_GL_FUNCTION(glCheckFramebufferStatus)
394 #define glClear LOOKUP_GL_FUNCTION(glClear)
395 #define glClearColor LOOKUP_GL_FUNCTION(glClearColor)
396 #define glClearDepthf LOOKUP_GL_FUNCTION(glClearDepthf)
397 #define glClearStencil LOOKUP_GL_FUNCTION(glClearStencil)
398 #define glColorMask LOOKUP_GL_FUNCTION(glColorMask)
399 #define glCompileShader LOOKUP_GL_FUNCTION(glCompileShader)
400 #define glCompressedTexImage2D LOOKUP_GL_FUNCTION(glCompressedTexImage2D)
401 #define glCompressedTexSubImage2D LOOKUP_GL_FUNCTION(glCompressedTexSubImage2D)
402 #define glCopyTexImage2D LOOKUP_GL_FUNCTION(glCopyTexImage2D)
403 #define glCopyTexSubImage2D LOOKUP_GL_FUNCTION(glCopyTexSubImage2D)
404 #define glCreateProgram LOOKUP_GL_FUNCTION(glCreateProgram)
405 #define glCreateShader LOOKUP_GL_FUNCTION(glCreateShader)
406 #define glCullFace LOOKUP_GL_FUNCTION(glCullFace)
407 #define glDeleteBuffers LOOKUP_GL_FUNCTION(glDeleteBuffers)
408 #define glDeleteFramebuffers LOOKUP_GL_FUNCTION(glDeleteFramebuffers)
409 #define glDeleteProgram LOOKUP_GL_FUNCTION(glDeleteProgram)
410 #define glDeleteRenderbuffers LOOKUP_GL_FUNCTION(glDeleteRenderbuffers)
411 #define glDeleteShader LOOKUP_GL_FUNCTION(glDeleteShader)
412 #define glDeleteTextures LOOKUP_GL_FUNCTION(glDeleteTextures)
413 #define glDepthFunc LOOKUP_GL_FUNCTION(glDepthFunc)
414 #define glDepthMask LOOKUP_GL_FUNCTION(glDepthMask)
415 #define glDepthRangef LOOKUP_GL_FUNCTION(glDepthRangef)
416 #define glDetachShader LOOKUP_GL_FUNCTION(glDetachShader)
417 #define glDisable LOOKUP_GL_FUNCTION(glDisable)
418 #define glDisableVertexAttribArray LOOKUP_GL_FUNCTION(glDisableVertexAttribArray)
419 #define glDrawArrays LOOKUP_GL_FUNCTION(glDrawArrays)
420 #define glDrawElements LOOKUP_GL_FUNCTION(glDrawElements)
421 #define glEnable LOOKUP_GL_FUNCTION(glEnable)
422 #define glEnableVertexAttribArray LOOKUP_GL_FUNCTION(glEnableVertexAttribArray)
423 #define glFinish LOOKUP_GL_FUNCTION(glFinish)
424 #define glFlush LOOKUP_GL_FUNCTION(glFlush)
425 #define glFramebufferRenderbuffer LOOKUP_GL_FUNCTION(glFramebufferRenderbuffer)
426 #define glFramebufferTexture2D LOOKUP_GL_FUNCTION(glFramebufferTexture2D)
427 #define glFrontFace LOOKUP_GL_FUNCTION(glFrontFace)
428 #define glGenBuffers LOOKUP_GL_FUNCTION(glGenBuffers)
429 #define glGenerateMipmap LOOKUP_GL_FUNCTION(glGenerateMipmap)
430 #define glGenFramebuffers LOOKUP_GL_FUNCTION(glGenFramebuffers)
431 #define glGenRenderbuffers LOOKUP_GL_FUNCTION(glGenRenderbuffers)
432 #define glGenTextures LOOKUP_GL_FUNCTION(glGenTextures)
433 #define glGetActiveAttrib LOOKUP_GL_FUNCTION(glGetActiveAttrib)
434 #define glGetActiveUniform LOOKUP_GL_FUNCTION(glGetActiveUniform)
435 #define glGetAttachedShaders LOOKUP_GL_FUNCTION(glGetAttachedShaders)
436 #define glGetAttribLocation LOOKUP_GL_FUNCTION(glGetAttribLocation)
437 #define glGetBooleanv LOOKUP_GL_FUNCTION(glGetBooleanv)
438 #define glGetBufferParameteriv LOOKUP_GL_FUNCTION(glGetBufferParameteriv)
439 #define glGetError LOOKUP_GL_FUNCTION(glGetError)
440 #define glGetFloatv LOOKUP_GL_FUNCTION(glGetFloatv)
441 #define glGetFramebufferAttachmentParameteriv LOOKUP_GL_FUNCTION(glGetFramebufferAttachmentParameteriv)
442 #define glGetIntegerv LOOKUP_GL_FUNCTION(glGetIntegerv)
443 #define glGetProgramiv LOOKUP_GL_FUNCTION(glGetProgramiv)
444 #define glGetProgramInfoLog LOOKUP_GL_FUNCTION(glGetProgramInfoLog)
445 #define glGetRenderbufferParameteriv LOOKUP_GL_FUNCTION(glGetRenderbufferParameteriv)
446 #define glGetShaderiv LOOKUP_GL_FUNCTION(glGetShaderiv)
447 #define glGetShaderInfoLog LOOKUP_GL_FUNCTION(glGetShaderInfoLog)
448 #define glGetShaderPrecisionFormat LOOKUP_GL_FUNCTION(glGetShaderPrecisionFormat)
449 #define glGetShaderSource LOOKUP_GL_FUNCTION(glGetShaderSource)
450 #define glGetString LOOKUP_GL_FUNCTION(glGetString)
451 #define glGetTexParameterfv LOOKUP_GL_FUNCTION(glGetTexParameterfv)
452 #define glGetTexParameteriv LOOKUP_GL_FUNCTION(glGetTexParameteriv)
453 #define glGetUniformfv LOOKUP_GL_FUNCTION(glGetUniformfv)
454 #define glGetUniformiv LOOKUP_GL_FUNCTION(glGetUniformiv)
455 #define glGetUniformLocation LOOKUP_GL_FUNCTION(glGetUniformLocation)
456 #define glGetVertexAttribfv LOOKUP_GL_FUNCTION(glGetVertexAttribfv)
457 #define glGetVertexAttribiv LOOKUP_GL_FUNCTION(glGetVertexAttribiv)
458 #define glGetVertexAttribPointerv LOOKUP_GL_FUNCTION(glGetVertexAttribPointerv)
459 #define glHint LOOKUP_GL_FUNCTION(glHint)
460 #define glIsBuffer LOOKUP_GL_FUNCTION(glIsBuffer)
461 #define glIsEnabled LOOKUP_GL_FUNCTION(glIsEnabled)
462 #define glIsFramebuffer LOOKUP_GL_FUNCTION(glIsFramebuffer)
463 #define glIsProgram LOOKUP_GL_FUNCTION(glIsProgram)
464 #define glIsRenderbuffer LOOKUP_GL_FUNCTION(glIsRenderbuffer)
465 #define glIsShader LOOKUP_GL_FUNCTION(glIsShader)
466 #define glIsTexture LOOKUP_GL_FUNCTION(glIsTexture)
467 #define glLineWidth LOOKUP_GL_FUNCTION(glLineWidth)
468 #define glLinkProgram LOOKUP_GL_FUNCTION(glLinkProgram)
469 #define glPixelStorei LOOKUP_GL_FUNCTION(glPixelStorei)
470 #define glPolygonOffset LOOKUP_GL_FUNCTION(glPolygonOffset)
471 #define glReadPixels LOOKUP_GL_FUNCTION(glReadPixels)
472 #define glReleaseShaderCompiler LOOKUP_GL_FUNCTION(glReleaseShaderCompiler)
473 #define glRenderbufferStorage LOOKUP_GL_FUNCTION(glRenderbufferStorage)
474 #define glSampleCoverage LOOKUP_GL_FUNCTION(glSampleCoverage)
475 #define glScissor LOOKUP_GL_FUNCTION(glScissor)
476 #define glShaderBinary LOOKUP_GL_FUNCTION(glShaderBinary)
477 #define glShaderSource LOOKUP_GL_FUNCTION(glShaderSource)
478 #define glStencilFunc LOOKUP_GL_FUNCTION(glStencilFunc)
479 #define glStencilFuncSeparate LOOKUP_GL_FUNCTION(glStencilFuncSeparate)
480 #define glStencilMask LOOKUP_GL_FUNCTION(glStencilMask)
481 #define glStencilMaskSeparate LOOKUP_GL_FUNCTION(glStencilMaskSeparate)
482 #define glStencilOp LOOKUP_GL_FUNCTION(glStencilOp)
483 #define glStencilOpSeparate LOOKUP_GL_FUNCTION(glStencilOpSeparate)
484 #define glTexImage2D LOOKUP_GL_FUNCTION(glTexImage2D)
485 #define glTexParameterf LOOKUP_GL_FUNCTION(glTexParameterf)
486 #define glTexParameterfv LOOKUP_GL_FUNCTION(glTexParameterfv)
487 #define glTexParameteri LOOKUP_GL_FUNCTION(glTexParameteri)
488 #define glTexParameteriv LOOKUP_GL_FUNCTION(glTexParameteriv)
489 #define glTexSubImage2D LOOKUP_GL_FUNCTION(glTexSubImage2D)
490 #define glUniform1f LOOKUP_GL_FUNCTION(glUniform1f)
491 #define glUniform1fv LOOKUP_GL_FUNCTION(glUniform1fv)
492 #define glUniform1i LOOKUP_GL_FUNCTION(glUniform1i)
493 #define glUniform1iv LOOKUP_GL_FUNCTION(glUniform1iv)
494 #define glUniform2f LOOKUP_GL_FUNCTION(glUniform2f)
495 #define glUniform2fv LOOKUP_GL_FUNCTION(glUniform2fv)
496 #define glUniform2i LOOKUP_GL_FUNCTION(glUniform2i)
497 #define glUniform2iv LOOKUP_GL_FUNCTION(glUniform2iv)
498 #define glUniform3f LOOKUP_GL_FUNCTION(glUniform3f)
499 #define glUniform3fv LOOKUP_GL_FUNCTION(glUniform3fv)
500 #define glUniform3i LOOKUP_GL_FUNCTION(glUniform3i)
501 #define glUniform3iv LOOKUP_GL_FUNCTION(glUniform3iv)
502 #define glUniform4f LOOKUP_GL_FUNCTION(glUniform4f)
503 #define glUniform4fv LOOKUP_GL_FUNCTION(glUniform4fv)
504 #define glUniform4i LOOKUP_GL_FUNCTION(glUniform4i)
505 #define glUniform4iv LOOKUP_GL_FUNCTION(glUniform4iv)
506 #define glUniformMatrix2fv LOOKUP_GL_FUNCTION(glUniformMatrix2fv)
507 #define glUniformMatrix3fv LOOKUP_GL_FUNCTION(glUniformMatrix3fv)
508 #define glUniformMatrix4fv LOOKUP_GL_FUNCTION(glUniformMatrix4fv)
509 #define glUseProgram LOOKUP_GL_FUNCTION(glUseProgram)
510 #define glValidateProgram LOOKUP_GL_FUNCTION(glValidateProgram)
511 #define glVertexAttrib1f LOOKUP_GL_FUNCTION(glVertexAttrib1f)
512 #define glVertexAttrib1fv LOOKUP_GL_FUNCTION(glVertexAttrib1fv)
513 #define glVertexAttrib2f LOOKUP_GL_FUNCTION(glVertexAttrib2f)
514 #define glVertexAttrib2fv LOOKUP_GL_FUNCTION(glVertexAttrib2fv)
515 #define glVertexAttrib3f LOOKUP_GL_FUNCTION(glVertexAttrib3f)
516 #define glVertexAttrib3fv LOOKUP_GL_FUNCTION(glVertexAttrib3fv)
517 #define glVertexAttrib4f LOOKUP_GL_FUNCTION(glVertexAttrib4f)
518 #define glVertexAttrib4fv LOOKUP_GL_FUNCTION(glVertexAttrib4fv)
519 #define glVertexAttribPointer LOOKUP_GL_FUNCTION(glVertexAttribPointer)
520 #define glViewport LOOKUP_GL_FUNCTION(glViewport)
521 #define glEvasGLImageTargetTexture2DOES LOOKUP_GL_FUNCTION(glEvasGLImageTargetTexture2DOES)
522 #define glEvasGLImageTargetRenderbufferStorageOES LOOKUP_GL_FUNCTION(glEvasGLImageTargetRenderbufferStorageOES)
523 #define GetProgramBinaryOES LOOKUP_GL_FUNCTION(GetProgramBinaryOES)
524 #define ProgramBinaryOES LOOKUP_GL_FUNCTION(ProgramBinaryOES)
525 #define MapBufferOES LOOKUP_GL_FUNCTION(MapBufferOES)
526 #define glUnmapBufferOES LOOKUP_GL_FUNCTION(glUnmapBufferOES)
527 #define GetBufferPointervOES LOOKUP_GL_FUNCTION(GetBufferPointervOES)
528 #define TexImage3DOES LOOKUP_GL_FUNCTION(TexImage3DOES)
529 #define TexSubImage3DOES LOOKUP_GL_FUNCTION(TexSubImage3DOES)
530 #define CopyTexSubImage3DOES LOOKUP_GL_FUNCTION(CopyTexSubImage3DOES)
531 #define CompressedTexImage3DOES LOOKUP_GL_FUNCTION(CompressedTexImage3DOES)
532 #define CompressedTexSubImage3DOES LOOKUP_GL_FUNCTION(CompressedTexSubImage3DOES)
533 #define FramebufferTexture3DOES LOOKUP_GL_FUNCTION(FramebufferTexture3DOES)
534 #define GetPerfMonitorGroupsAMD LOOKUP_GL_FUNCTION(GetPerfMonitorGroupsAMD)
535 #define GetPerfMonitorCountersAMD LOOKUP_GL_FUNCTION(GetPerfMonitorCountersAMD)
536 #define GetPerfMonitorGroupStringAMD LOOKUP_GL_FUNCTION(GetPerfMonitorGroupStringAMD)
537 #define GetPerfMonitorCounterStringAMD LOOKUP_GL_FUNCTION(GetPerfMonitorCounterStringAMD)
538 #define GetPerfMonitorCounterInfoAMD LOOKUP_GL_FUNCTION(GetPerfMonitorCounterInfoAMD)
539 #define GenPerfMonitorsAMD LOOKUP_GL_FUNCTION(GenPerfMonitorsAMD)
540 #define DeletePerfMonitorsAMD LOOKUP_GL_FUNCTION(DeletePerfMonitorsAMD)
541 #define SelectPerfMonitorCountersAMD LOOKUP_GL_FUNCTION(SelectPerfMonitorCountersAMD)
542 #define BeginPerfMonitorAMD LOOKUP_GL_FUNCTION(BeginPerfMonitorAMD)
543 #define EndPerfMonitorAMD LOOKUP_GL_FUNCTION(EndPerfMonitorAMD)
544 #define GetPerfMonitorCounterDataAMD LOOKUP_GL_FUNCTION(GetPerfMonitorCounterDataAMD)
545 #define DiscardFramebufferEXT LOOKUP_GL_FUNCTION(DiscardFramebufferEXT)
546 #define MultiDrawArraysEXT LOOKUP_GL_FUNCTION(MultiDrawArraysEXT)
547 #define MultiDrawElementsEXT LOOKUP_GL_FUNCTION(MultiDrawElementsEXT)
548 #define DeleteFencesNV LOOKUP_GL_FUNCTION(DeleteFencesNV)
549 #define GenFencesNV LOOKUP_GL_FUNCTION(GenFencesNV)
550 #define glIsFenceNV LOOKUP_GL_FUNCTION(glIsFenceNV)
551 #define glTestFenceNV LOOKUP_GL_FUNCTION(glTestFenceNV)
552 #define GetFenceivNV LOOKUP_GL_FUNCTION(GetFenceivNV)
553 #define FinishFenceNV LOOKUP_GL_FUNCTION(FinishFenceNV)
554 #define SetFenceNV LOOKUP_GL_FUNCTION(SetFenceNV)
555 #define GetDriverControlsQCOM LOOKUP_GL_FUNCTION(GetDriverControlsQCOM)
556 #define GetDriverControlStringQCOM LOOKUP_GL_FUNCTION(GetDriverControlStringQCOM)
557 #define EnableDriverControlQCOM LOOKUP_GL_FUNCTION(EnableDriverControlQCOM)
558 #define DisableDriverControlQCOM LOOKUP_GL_FUNCTION(DisableDriverControlQCOM)
559 #define ExtGetTexturesQCOM LOOKUP_GL_FUNCTION(ExtGetTexturesQCOM)
560 #define ExtGetBuffersQCOM LOOKUP_GL_FUNCTION(ExtGetBuffersQCOM)
561 #define ExtGetRenderbuffersQCOM LOOKUP_GL_FUNCTION(ExtGetRenderbuffersQCOM)
562 #define ExtGetFramebuffersQCOM LOOKUP_GL_FUNCTION(ExtGetFramebuffersQCOM)
563 #define ExtGetTexLevelParameterivQCOM LOOKUP_GL_FUNCTION(ExtGetTexLevelParameterivQCOM)
564 #define ExtTexObjectStateOverrideiQCOM LOOKUP_GL_FUNCTION(ExtTexObjectStateOverrideiQCOM)
565 #define ExtGetTexSubImageQCOM LOOKUP_GL_FUNCTION(ExtGetTexSubImageQCOM)
566 #define ExtGetBufferPointervQCOM LOOKUP_GL_FUNCTION(ExtGetBufferPointervQCOM)
567 #define ExtGetShadersQCOM LOOKUP_GL_FUNCTION(ExtGetShadersQCOM)
568 #define ExtGetProgramsQCOM LOOKUP_GL_FUNCTION(ExtGetProgramsQCOM)
569 #define glExtIsProgramBinaryQCOM LOOKUP_GL_FUNCTION(glExtIsProgramBinaryQCOM)
570 #define ExtGetProgramBinarySourceQCOM LOOKUP_GL_FUNCTION(ExtGetProgramBinarySourceQCOM)
571 #define evasglCreateImage LOOKUP_GL_FUNCTION(evasglCreateImage)
572 #define evasglDestroyImage LOOKUP_GL_FUNCTION(evasglDestroyImage)
573 #define glEvasGLImageTargetTexture2DOES LOOKUP_GL_FUNCTION(glEvasGLImageTargetTexture2DOES)
574 #endif // !USE(TIZEN_TEXTURE_MAPPER)