From 5061095e056864c08e676067d5a868fb2cb37a64 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Thu, 10 Mar 2016 17:46:05 +1100 Subject: glshader: some compatibility changes for GL 1.4 GL 1.4 (with GL_ARB_shader_objects) doesn't have glIsProgram or glIsShader equivalents. As they are simply assertions, skip them when there isn't a valid function pointer. --- gst-libs/gst/gl/gstglshader.c | 16 ++++++++++------ gst-libs/gst/gl/gstglslstage.c | 2 +- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/gst-libs/gst/gl/gstglshader.c b/gst-libs/gst/gl/gstglshader.c index e7800b705..9d96784ae 100644 --- a/gst-libs/gst/gl/gstglshader.c +++ b/gst-libs/gst/gl/gstglshader.c @@ -458,9 +458,11 @@ gst_gl_shader_detach_unlocked (GstGLShader * shader, GstGLSLStage * stage) return; } - g_assert (shader->context->gl_vtable->IsProgram (shader->priv-> - program_handle)); - g_assert (shader->context->gl_vtable->IsShader (stage_handle)); + if (shader->context->gl_vtable->IsProgram) + g_assert (shader->context->gl_vtable->IsProgram (shader-> + priv->program_handle)); + if (shader->context->gl_vtable->IsShader) + g_assert (shader->context->gl_vtable->IsShader (stage_handle)); GST_LOG_OBJECT (shader, "detaching shader %i from program %i", stage_handle, (int) shader->priv->program_handle); @@ -533,9 +535,11 @@ gst_gl_shader_attach_unlocked (GstGLShader * shader, GstGLSLStage * stage) return FALSE; } - g_assert (shader->context->gl_vtable->IsProgram (shader->priv-> - program_handle)); - g_assert (shader->context->gl_vtable->IsShader (stage_handle)); + if (shader->context->gl_vtable->IsProgram) + g_assert (shader->context->gl_vtable->IsProgram (shader-> + priv->program_handle)); + if (shader->context->gl_vtable->IsShader) + g_assert (shader->context->gl_vtable->IsShader (stage_handle)); shader->priv->stages = g_list_prepend (shader->priv->stages, gst_object_ref_sink (stage)); diff --git a/gst-libs/gst/gl/gstglslstage.c b/gst-libs/gst/gl/gstglslstage.c index caa5860bf..770b1d012 100644 --- a/gst-libs/gst/gl/gstglslstage.c +++ b/gst-libs/gst/gl/gstglslstage.c @@ -471,7 +471,7 @@ _compile_shader (GstGLContext * context, struct compile *data) /* FIXME: supported threaded GLSL compilers and don't destroy compilation * performance by getting the compilation result directly after compilation */ status = GL_FALSE; - gl->GetShaderiv (priv->handle, GL_COMPILE_STATUS, &status); + vtable->GetShaderiv (priv->handle, GL_COMPILE_STATUS, &status); len = 0; vtable->GetShaderInfoLog (priv->handle, sizeof (info_buffer) - 1, &len, -- cgit v1.2.1