From 3d6ea827b9940a1fda6b2643a918d1ba546f5c11 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Thu, 26 May 2016 20:08:04 +0900 Subject: [PATCH] Evas GL: Fix compilation warning, use func pointer GLES 3 support should be a runtime-only requirement, so no direct call to a GLES3 function should appear in evas. Use our dlsym() pointer instead. --- .../evas/engines/gl_common/evas_gl_api.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 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 649b63a2d9..0e1901ca8c 100644 --- a/src/modules/evas/engines/gl_common/evas_gl_api.c +++ b/src/modules/evas/engines/gl_common/evas_gl_api.c @@ -1617,6 +1617,8 @@ _evgl_glDrawBuffers(GLsizei n, const GLenum *bufs) Eina_Bool target_is_fbo = EINA_FALSE; unsigned int drawbuffer; + if (!_gles3_api.glDrawBuffers) return; + ctx = evas_gl_common_current_context_get(); if (!ctx) { @@ -1626,7 +1628,7 @@ _evgl_glDrawBuffers(GLsizei n, const GLenum *bufs) if (!bufs) { - glDrawBuffers(n, bufs); + _gles3_api.glDrawBuffers(n, bufs); return; } @@ -1643,7 +1645,7 @@ _evgl_glDrawBuffers(GLsizei n, const GLenum *bufs) if (*bufs == GL_BACK) { drawbuffer = GL_COLOR_ATTACHMENT0; - glDrawBuffers(n, &drawbuffer); + _gles3_api.glDrawBuffers(n, &drawbuffer); } else if ((*bufs & GL_COLOR_ATTACHMENT0) == GL_COLOR_ATTACHMENT0) { @@ -1651,7 +1653,7 @@ _evgl_glDrawBuffers(GLsizei n, const GLenum *bufs) } else { - glDrawBuffers(n, bufs); + _gles3_api.glDrawBuffers(n, bufs); } } else @@ -1661,7 +1663,7 @@ _evgl_glDrawBuffers(GLsizei n, const GLenum *bufs) } else { - glDrawBuffers(n, bufs); + _gles3_api.glDrawBuffers(n, bufs); } } @@ -1671,6 +1673,8 @@ _evgl_glReadBuffer(GLenum src) EVGL_Context *ctx; Eina_Bool target_is_fbo = EINA_FALSE; + if (!_gles3_api.glReadBuffer) return; + ctx = evas_gl_common_current_context_get(); if (!ctx) { @@ -1688,7 +1692,7 @@ _evgl_glReadBuffer(GLenum src) { if (src == GL_BACK) { - glReadBuffer(GL_COLOR_ATTACHMENT0); + _gles3_api.glReadBuffer(GL_COLOR_ATTACHMENT0); } else if((src & GL_COLOR_ATTACHMENT0) == GL_COLOR_ATTACHMENT0) { @@ -1696,12 +1700,12 @@ _evgl_glReadBuffer(GLenum src) } else { - glReadBuffer(src); + _gles3_api.glReadBuffer(src); } } else { - glReadBuffer(src); + _gles3_api.glReadBuffer(src); } }