diff options
author | Matthew Waters <matthew@centricular.com> | 2017-03-14 14:15:00 +1100 |
---|---|---|
committer | Matthew Waters <matthew@centricular.com> | 2017-03-14 14:15:00 +1100 |
commit | efc015f27deca351e4f7cca1ebf6bc23bad6fd71 (patch) | |
tree | c4eff99ce3b74cabcf0def88e8a2c0f2b2d4da1f /gst-libs/gst | |
parent | b01ae6e5e69bd04763b6b75cc978d0d9874514bc (diff) | |
download | gstreamer-plugins-bad-efc015f27deca351e4f7cca1ebf6bc23bad6fd71.tar.gz |
gl: GL_ARRAY_BUFFER is not a part of VAO state
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
Diffstat (limited to 'gst-libs/gst')
-rw-r--r-- | gst-libs/gst/gl/gstglcolorconvert.c | 6 | ||||
-rw-r--r-- | gst-libs/gst/gl/gstglfilter.c | 14 | ||||
-rw-r--r-- | gst-libs/gst/gl/gstglviewconvert.c | 6 |
3 files changed, 6 insertions, 20 deletions
diff --git a/gst-libs/gst/gl/gstglcolorconvert.c b/gst-libs/gst/gl/gstglcolorconvert.c index b04e414bb..4373be5d3 100644 --- a/gst-libs/gst/gl/gstglcolorconvert.c +++ b/gst-libs/gst/gl/gstglcolorconvert.c @@ -2476,8 +2476,7 @@ _do_convert_draw (GstGLContext * context, GstGLColorConvert * convert) if (gl->BindVertexArray) gl->BindVertexArray (convert->priv->vao); - else - _bind_buffer (convert); + _bind_buffer (convert); for (i = c_info->in_n_textures - 1; i >= 0; i--) { gchar *scale_name = g_strdup_printf ("tex_scale%u", i); @@ -2501,8 +2500,7 @@ _do_convert_draw (GstGLContext * context, GstGLColorConvert * convert) if (gl->BindVertexArray) gl->BindVertexArray (0); - else - _unbind_buffer (convert); + _unbind_buffer (convert); if (gl->DrawBuffer) gl->DrawBuffer (GL_NONE); diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c index f0c02cf73..61cce0286 100644 --- a/gst-libs/gst/gl/gstglfilter.c +++ b/gst-libs/gst/gl/gstglfilter.c @@ -1203,26 +1203,16 @@ gst_gl_filter_draw_fullscreen_quad (GstGLFilter * filter) gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, filter->vbo_indices); gl->BufferData (GL_ELEMENT_ARRAY_BUFFER, sizeof (indices), indices, GL_STATIC_DRAW); - - if (gl->GenVertexArrays) { - _bind_buffer (filter); - gl->BindVertexArray (0); - } - - gl->BindBuffer (GL_ARRAY_BUFFER, 0); - gl->BindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); } if (gl->GenVertexArrays) gl->BindVertexArray (filter->vao); - else - _bind_buffer (filter); + _bind_buffer (filter); gl->DrawElements (GL_TRIANGLES, 6, GL_UNSIGNED_SHORT, 0); if (gl->GenVertexArrays) gl->BindVertexArray (0); - else - _unbind_buffer (filter); + _unbind_buffer (filter); } } diff --git a/gst-libs/gst/gl/gstglviewconvert.c b/gst-libs/gst/gl/gstglviewconvert.c index 2d119e611..86f877e13 100644 --- a/gst-libs/gst/gl/gstglviewconvert.c +++ b/gst-libs/gst/gl/gstglviewconvert.c @@ -1923,8 +1923,7 @@ _do_view_convert_draw (GstGLContext * context, GstGLViewConvert * viewconvert) if (gl->BindVertexArray) gl->BindVertexArray (priv->vao); - else - _bind_buffer (viewconvert); + _bind_buffer (viewconvert); if (in_mode == GST_VIDEO_MULTIVIEW_MODE_SEPARATED || in_mode == GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME) { @@ -1944,8 +1943,7 @@ _do_view_convert_draw (GstGLContext * context, GstGLViewConvert * viewconvert) if (gl->BindVertexArray) gl->BindVertexArray (0); - else - _unbind_buffer (viewconvert); + _unbind_buffer (viewconvert); if (gl->DrawBuffer) gl->DrawBuffer (GL_NONE); /* we are done with the shader */ |