From 64c320ca3c96042263fa8d1153a2abfa03c0b808 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Tue, 19 Apr 2016 19:27:33 +0300 Subject: [PATCH] glcolorconvert: GLES3 deprecates texture2D() and it does not work at all in newer versions than 3.3 Use the newer texture() function instead. This fixes glimagesink and other things on various Android devices. https://bugzilla.gnome.org/show_bug.cgi?id=765266 --- gst-libs/gst/gl/gstglcolorconvert.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c index c5018f103c..ae3d7fe8d9 100644 --- a/gst-libs/gst/gl/gstglcolorconvert.c +++ b/gst-libs/gst/gl/gstglcolorconvert.c @@ -1712,7 +1712,7 @@ _unbind_buffer (GstGLColorConvert * convert) static gchar * _mangle_texture_access (const gchar * str, GstGLTextureTarget from, - GstGLTextureTarget to, GstGLAPI gl_api) + GstGLTextureTarget to, GstGLAPI gl_api, guint gl_major, guint gl_minor) { const gchar *from_str = NULL, *to_str = NULL; gchar *ret, *tmp; @@ -1726,7 +1726,8 @@ _mangle_texture_access (const gchar * str, GstGLTextureTarget from, if (from == GST_GL_TEXTURE_TARGET_EXTERNAL_OES) from_str = "texture2D"; - if (gl_api & GST_GL_API_OPENGL3) { + if ((gl_api & GST_GL_API_OPENGL3) || (gl_api & GST_GL_API_GLES2 + && gl_major >= 3)) { to_str = "texture"; } else { if (to == GST_GL_TEXTURE_TARGET_2D) @@ -1894,7 +1895,7 @@ _mangle_shader (const gchar * str, guint shader_type, GstGLTextureTarget from, _mangle_version_profile_from_gl_api (gl_api, gl_major, gl_minor, version, profile); - tmp = _mangle_texture_access (str, from, to, gl_api); + tmp = _mangle_texture_access (str, from, to, gl_api, gl_major, gl_minor); tmp2 = _mangle_sampler_type (tmp, from, to); g_free (tmp); tmp =