aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenrique Dante de Almeida <hdante@profusion.mobi>2013-01-30 15:52:56 -0200
committerLucas De Marchi <lucas.demarchi@profusion.mobi>2013-02-26 10:17:28 -0300
commit211c33ff6e76e5d3f7dd7ac3c2feaad6900c5e3c (patch)
tree6f8426e00b0dce6068a5bba6a166d84a5afe3d49
parentb9ac180af64ef810eed95a5e08940cfa2a55b83a (diff)
downloadefl-211c33ff6e76e5d3f7dd7ac3c2feaad6900c5e3c.tar.gz
efl-211c33ff6e76e5d3f7dd7ac3c2feaad6900c5e3c.tar.xz
efl-211c33ff6e76e5d3f7dd7ac3c2feaad6900c5e3c.zip
evas: Deal with double glShaderSource signature
The function glShaderSource may have 2 signatures: http://stackoverflow.com/questions/12586695/signature-difference-in-openglshadersource-between-opengl-es-2-revisions http://www.opengl.org/sdk/docs/man/xhtml/glShaderSource.xml http://www.khronos.org/opengles/sdk/docs/man/xhtml/glShaderSource.xml This patch changes all internal signatures to use the most restrictive signature.
-rw-r--r--src/modules/evas/engines/gl_common/evas_gl_api.c3
-rw-r--r--src/modules/evas/engines/software_generic/evas_engine.c2
-rw-r--r--src/modules/evas/engines/wayland_egl/evas_engine.c3
3 files changed, 5 insertions, 3 deletions
diff --git a/src/modules/evas/engines/gl_common/evas_gl_api.c b/src/modules/evas/engines/gl_common/evas_gl_api.c
index b6af4ca9e..e7f0f28a9 100644
--- a/src/modules/evas/engines/gl_common/evas_gl_api.c
+++ b/src/modules/evas/engines/gl_common/evas_gl_api.c
@@ -2323,7 +2323,8 @@ _normal_gl_api_get(Evas_GL_API *funcs)
ORD(glSampleCoverage);
// ORD(glScissor);
// ORD(glShaderBinary);
- ORD(glShaderSource);
+// Deal with double glShaderSource signature
+ funcs->glShaderSource = (void (*)(GLuint, GLsizei, const char * const *, const GLint *))glShaderSource;
ORD(glStencilFunc);
ORD(glStencilFuncSeparate);
ORD(glStencilMask);
diff --git a/src/modules/evas/engines/software_generic/evas_engine.c b/src/modules/evas/engines/software_generic/evas_engine.c
index 8eea25c68..f6d40791d 100644
--- a/src/modules/evas/engines/software_generic/evas_engine.c
+++ b/src/modules/evas/engines/software_generic/evas_engine.c
@@ -3369,7 +3369,7 @@ evgl_glShaderSource(GLuint shader, GLsizei count, const char* const* string, con
}
}
- _sym_glShaderSource(shader, count, (const char **)s, l);
+ _sym_glShaderSource(shader, count, (const char * const *)s, l);
while(i)
free(s[--i]);
diff --git a/src/modules/evas/engines/wayland_egl/evas_engine.c b/src/modules/evas/engines/wayland_egl/evas_engine.c
index 8074009cf..ec02883f6 100644
--- a/src/modules/evas/engines/wayland_egl/evas_engine.c
+++ b/src/modules/evas/engines/wayland_egl/evas_engine.c
@@ -3416,7 +3416,8 @@ eng_gl_api_get(void *data EINA_UNUSED)
ORD(glSampleCoverage);
// ORD(glScissor);/***/
// ORD(glShaderBinary);
- ORD(glShaderSource);
+// Deal with double glShaderSource signature
+ funcs->glShaderSource = (void (*)(GLuint, GLsizei, const char * const *, const GLint *))glShaderSource;
ORD(glStencilFunc);
ORD(glStencilFuncSeparate);
ORD(glStencilMask);