summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThiago Marcos P. Santos <tmpsantos@gmail.com>2019-04-04 17:26:24 +0300
committerThiago Marcos P. Santos <tmpsantos@gmail.com>2019-04-05 16:01:22 +0300
commita2eff7539fee7d903c4d817b991fceca5b10f09e (patch)
tree8369d6e437a3759b002b4096262c33566003285e
parent2455275bf47e1671a92eb2c1296c6b48f11f6b2e (diff)
downloadqtlocation-mapboxgl-upstream/tmpsantos-android_compilation_fix.tar.gz
[android] Fix build with mismatching glShaderSource signatureupstream/tmpsantos-android_compilation_fix
Not all GL implementations are following the glShaderSource signature specified by Khronos for GLES20. https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glShaderSource.xml
-rw-r--r--platform/android/src/gl_functions.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/platform/android/src/gl_functions.cpp b/platform/android/src/gl_functions.cpp
index 168ae4c52e..637788e4a8 100644
--- a/platform/android/src/gl_functions.cpp
+++ b/platform/android/src/gl_functions.cpp
@@ -102,7 +102,12 @@ void (* const glReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, void
void (* const glRenderbufferStorage)(GLenum, GLenum, GLsizei, GLsizei) = ::glRenderbufferStorage;
void (* const glSampleCoverage)(GLfloat, GLboolean) = ::glSampleCoverage;
void (* const glScissor)(GLint, GLint, GLsizei, GLsizei) = ::glScissor;
-void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = ::glShaderSource;
+
+// Some implementations use `const GLchar* const*` and others `const GLchar**`.
+void (* const glShaderSource)(GLuint, GLsizei, const GLchar * const*, const GLint *) = [](GLuint shader, GLsizei count, const GLchar * const * string, const GLint *length) {
+ ::glShaderSource(shader, count, const_cast<const GLchar **>(string), length);
+};
+
void (* const glStencilFunc)(GLenum, GLint, GLuint) = ::glStencilFunc;
void (* const glStencilFuncSeparate)(GLenum, GLenum, GLint, GLuint) = ::glStencilFuncSeparate;
void (* const glStencilMask)(GLuint) = ::glStencilMask;