From 5681f78362cc2b20b4dd71d1836e25c27e3e410f Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Thu, 1 May 2014 14:11:00 +1000 Subject: glcolorscale: fix operation with dual GL, GLES2 libgstgl --- ext/gl/gstglcolorscale.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/ext/gl/gstglcolorscale.c b/ext/gl/gstglcolorscale.c index b4f501bd9..bde35c3a0 100644 --- a/ext/gl/gstglcolorscale.c +++ b/ext/gl/gstglcolorscale.c @@ -160,15 +160,17 @@ gst_gl_colorscale_gen_gl_resources (GstGLFilter * filter) { GstGLColorscale *colorscale = GST_GL_COLORSCALE (filter); - gst_gl_context_thread_add (filter->context, - (GstGLContextThreadFunc) _compile_identity_shader, colorscale); - - if (!colorscale->shader) { - gst_gl_context_set_error (filter->context, - "Failed to initialize identity shader"); - GST_ELEMENT_ERROR (colorscale, RESOURCE, NOT_FOUND, ("%s", - gst_gl_context_get_error ()), (NULL)); - return FALSE; + if (gst_gl_context_get_gl_api (filter->context) & GST_GL_API_GLES2) { + gst_gl_context_thread_add (filter->context, + (GstGLContextThreadFunc) _compile_identity_shader, colorscale); + + if (!colorscale->shader) { + gst_gl_context_set_error (filter->context, + "Failed to initialize identity shader"); + GST_ELEMENT_ERROR (colorscale, RESOURCE, NOT_FOUND, ("%s", + gst_gl_context_get_error ()), (NULL)); + return FALSE; + } } return TRUE; @@ -195,13 +197,15 @@ gst_gl_colorscale_filter_texture (GstGLFilter * filter, guint in_tex, colorscale = GST_GL_COLORSCALE (filter); #if GST_GL_HAVE_GLES2 - gst_gl_filter_render_to_target_with_shader (filter, TRUE, in_tex, out_tex, - colorscale->shader); + if (gst_gl_context_get_gl_api (filter->context) & GST_GL_API_GLES2) + gst_gl_filter_render_to_target_with_shader (filter, TRUE, in_tex, out_tex, + colorscale->shader); #endif #if GST_GL_HAVE_OPENGL - gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, - gst_gl_colorscale_callback, colorscale); + if (gst_gl_context_get_gl_api (filter->context) & GST_GL_API_OPENGL) + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, + gst_gl_colorscale_callback, colorscale); #endif return TRUE; -- cgit v1.2.1