From 211c33ff6e76e5d3f7dd7ac3c2feaad6900c5e3c Mon Sep 17 00:00:00 2001 From: Henrique Dante de Almeida Date: Wed, 30 Jan 2013 15:52:56 -0200 Subject: [PATCH] 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. --- src/modules/evas/engines/gl_common/evas_gl_api.c | 3 ++- src/modules/evas/engines/software_generic/evas_engine.c | 2 +- src/modules/evas/engines/wayland_egl/evas_engine.c | 3 ++- 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 b6af4ca..e7f0f28 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 8eea25c..f6d4079 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 8074009..ec02883 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); -- 2.7.4