summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2017-03-14 14:15:00 +1100
committerMatthew Waters <matthew@centricular.com>2017-03-14 14:15:00 +1100
commitefc015f27deca351e4f7cca1ebf6bc23bad6fd71 (patch)
treec4eff99ce3b74cabcf0def88e8a2c0f2b2d4da1f /gst-libs
parentb01ae6e5e69bd04763b6b75cc978d0d9874514bc (diff)
downloadgstreamer-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')
-rw-r--r--gst-libs/gst/gl/gstglcolorconvert.c6
-rw-r--r--gst-libs/gst/gl/gstglfilter.c14
-rw-r--r--gst-libs/gst/gl/gstglviewconvert.c6
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 */