diff options
author | Matthew Waters <matthew@centricular.com> | 2016-03-10 17:46:05 +1100 |
---|---|---|
committer | Matthew Waters <matthew@centricular.com> | 2016-03-10 22:53:02 +1100 |
commit | 5061095e056864c08e676067d5a868fb2cb37a64 (patch) | |
tree | fd533adb6715c846a9108714a34b4f0e25a252a9 /gst-libs | |
parent | 8ceeca93b289a51e60c04b5102cd26bcb7262929 (diff) | |
download | gstreamer-plugins-bad-5061095e056864c08e676067d5a868fb2cb37a64.tar.gz |
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.
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/gl/gstglshader.c | 16 | ||||
-rw-r--r-- | 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, |