From 30ec55853e057337343c5cb7d028bcd746cbd6b3 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Tue, 25 Sep 2012 18:06:14 +1000 Subject: [PATCH] [595/906] update for filter API change gleffects needed a similar change --- gst/gl/effects/gstgleffectbulge.c | 4 ++-- gst/gl/effects/gstgleffectfisheye.c | 4 ++-- gst/gl/effects/gstgleffectglow.c | 16 ++++++++-------- gst/gl/effects/gstgleffectidentity.c | 7 ++++--- gst/gl/effects/gstgleffectlumatocurve.c | 8 ++++---- gst/gl/effects/gstgleffectmirror.c | 4 ++-- gst/gl/effects/gstgleffectrgbtocurve.c | 4 ++-- gst/gl/effects/gstgleffectsin.c | 4 ++-- gst/gl/effects/gstgleffectsquare.c | 4 ++-- gst/gl/effects/gstgleffectsqueeze.c | 4 ++-- gst/gl/effects/gstgleffectstretch.c | 4 ++-- gst/gl/effects/gstgleffecttunnel.c | 4 ++-- gst/gl/effects/gstgleffecttwirl.c | 4 ++-- gst/gl/effects/gstgleffectxray.c | 30 +++++++++++++++--------------- gst/gl/gstgldeinterlace.c | 2 +- gst/gl/gstgldifferencematte.c | 20 ++++++++++---------- gst/gl/gstgleffects.c | 12 +++++------- gst/gl/gstgleffects.h | 2 +- gst/gl/gstglfilterapp.c | 2 +- gst/gl/gstglfilterblur.c | 8 ++++---- gst/gl/gstglfilterlaplacian.c | 2 +- gst/gl/gstglfilterreflectedscreen.c | 8 ++++---- gst/gl/gstglfiltershader.c | 4 ++-- gst/gl/gstglfiltersobel.c | 10 +++++----- gst/gl/gstgloverlay.c | 2 +- 25 files changed, 86 insertions(+), 87 deletions(-) diff --git a/gst/gl/effects/gstgleffectbulge.c b/gst/gl/effects/gstgleffectbulge.c index 981d835..478ad67 100644 --- a/gst/gl/effects/gstgleffectbulge.c +++ b/gst/gl/effects/gstgleffectbulge.c @@ -58,7 +58,7 @@ gst_gl_effects_bulge_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_bulge (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_bulge_callback, effects); } diff --git a/gst/gl/effects/gstgleffectfisheye.c b/gst/gl/effects/gstgleffectfisheye.c index e5f519a..ad7b566 100644 --- a/gst/gl/effects/gstgleffectfisheye.c +++ b/gst/gl/effects/gstgleffectfisheye.c @@ -58,7 +58,7 @@ gst_gl_effects_fisheye_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_fisheye (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_fisheye_callback, effects); } diff --git a/gst/gl/effects/gstgleffectglow.c b/gst/gl/effects/gstgleffectglow.c index fa19208..6fe83ba 100644 --- a/gst/gl/effects/gstgleffectglow.c +++ b/gst/gl/effects/gstgleffectglow.c @@ -58,7 +58,7 @@ gst_gl_effects_glow_step_one (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 0); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -102,7 +102,7 @@ gst_gl_effects_glow_step_two (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 1); gst_gl_shader_set_uniform_1fv (shader, "kernel", 7, gauss_kernel); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -141,7 +141,7 @@ gst_gl_effects_glow_step_three (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 1); gst_gl_shader_set_uniform_1fv (shader, "kernel", 7, gauss_kernel); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -188,7 +188,7 @@ gst_gl_effects_glow_step_four (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "beta", (gfloat) 1 / 3.5f); gst_gl_shader_set_uniform_1i (shader, "blend", 1); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -197,14 +197,14 @@ gst_gl_effects_glow (GstGLEffects * effects) GstGLFilter *filter = GST_GL_FILTER (effects); /* threshold */ - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->midtexture[0], gst_gl_effects_glow_step_one, effects); /* blur */ - gst_gl_filter_render_to_target (filter, effects->midtexture[0], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[0], effects->midtexture[1], gst_gl_effects_glow_step_two, effects); - gst_gl_filter_render_to_target (filter, effects->midtexture[1], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[1], effects->midtexture[2], gst_gl_effects_glow_step_three, effects); /* add blurred luma to intexture */ - gst_gl_filter_render_to_target (filter, effects->midtexture[2], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[2], effects->outtexture, gst_gl_effects_glow_step_four, effects); } diff --git a/gst/gl/effects/gstgleffectidentity.c b/gst/gl/effects/gstgleffectidentity.c index cad6b4f..183018a 100644 --- a/gst/gl/effects/gstgleffectidentity.c +++ b/gst/gl/effects/gstgleffectidentity.c @@ -30,7 +30,8 @@ gst_gl_effects_identity_callback (gint width, gint height, guint texture, glMatrixMode (GL_PROJECTION); glLoadIdentity (); #else - GstGLShader *shader = g_hash_table_lookup (effects->shaderstable, "identity0"); + GstGLShader *shader = + g_hash_table_lookup (effects->shaderstable, "identity0"); if (!shader) { shader = gst_gl_shader_new (); @@ -66,7 +67,7 @@ gst_gl_effects_identity_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 0); #endif - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -74,6 +75,6 @@ gst_gl_effects_identity (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_identity_callback, effects); } diff --git a/gst/gl/effects/gstgleffectlumatocurve.c b/gst/gl/effects/gstgleffectlumatocurve.c index 599d35c..3e85a0d 100644 --- a/gst/gl/effects/gstgleffectlumatocurve.c +++ b/gst/gl/effects/gstgleffectlumatocurve.c @@ -81,7 +81,7 @@ gst_gl_effects_luma_to_curve (GstGLEffects * effects, glDisable (GL_TEXTURE_1D); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -99,7 +99,7 @@ gst_gl_effects_heat (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_heat_callback, effects); } @@ -118,7 +118,7 @@ gst_gl_effects_sepia (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_sepia_callback, effects); } @@ -137,6 +137,6 @@ gst_gl_effects_luma_xpro (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_luma_xpro_callback, effects); } diff --git a/gst/gl/effects/gstgleffectmirror.c b/gst/gl/effects/gstgleffectmirror.c index b0969bb..15acec9 100644 --- a/gst/gl/effects/gstgleffectmirror.c +++ b/gst/gl/effects/gstgleffectmirror.c @@ -85,7 +85,7 @@ gst_gl_effects_mirror_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); #endif - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -93,6 +93,6 @@ gst_gl_effects_mirror (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_mirror_callback, effects); } diff --git a/gst/gl/effects/gstgleffectrgbtocurve.c b/gst/gl/effects/gstgleffectrgbtocurve.c index a2fe0d5..84838eb 100644 --- a/gst/gl/effects/gstgleffectrgbtocurve.c +++ b/gst/gl/effects/gstgleffectrgbtocurve.c @@ -81,7 +81,7 @@ gst_gl_effects_rgb_to_curve (GstGLEffects * effects, glDisable (GL_TEXTURE_1D); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -99,6 +99,6 @@ gst_gl_effects_xpro (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_xpro_callback, effects); } diff --git a/gst/gl/effects/gstgleffectsin.c b/gst/gl/effects/gstgleffectsin.c index 035e542..c48b655 100644 --- a/gst/gl/effects/gstgleffectsin.c +++ b/gst/gl/effects/gstgleffectsin.c @@ -55,7 +55,7 @@ gst_gl_effects_sin_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 0); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -63,6 +63,6 @@ gst_gl_effects_sin (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_sin_callback, effects); } diff --git a/gst/gl/effects/gstgleffectsquare.c b/gst/gl/effects/gstgleffectsquare.c index 9ad4b39..3229e08 100644 --- a/gst/gl/effects/gstgleffectsquare.c +++ b/gst/gl/effects/gstgleffectsquare.c @@ -58,7 +58,7 @@ gst_gl_effects_square_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_square (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_square_callback, effects); } diff --git a/gst/gl/effects/gstgleffectsqueeze.c b/gst/gl/effects/gstgleffectsqueeze.c index 1b51e62..ee7a672 100644 --- a/gst/gl/effects/gstgleffectsqueeze.c +++ b/gst/gl/effects/gstgleffectsqueeze.c @@ -85,7 +85,7 @@ gst_gl_effects_squeeze_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); #endif - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -93,6 +93,6 @@ gst_gl_effects_squeeze (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_squeeze_callback, effects); } diff --git a/gst/gl/effects/gstgleffectstretch.c b/gst/gl/effects/gstgleffectstretch.c index a1fcabd..2d0de32 100644 --- a/gst/gl/effects/gstgleffectstretch.c +++ b/gst/gl/effects/gstgleffectstretch.c @@ -58,7 +58,7 @@ gst_gl_effects_stretch_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_stretch (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_stretch_callback, effects); } diff --git a/gst/gl/effects/gstgleffecttunnel.c b/gst/gl/effects/gstgleffecttunnel.c index bc10aec..cbcc913 100644 --- a/gst/gl/effects/gstgleffecttunnel.c +++ b/gst/gl/effects/gstgleffecttunnel.c @@ -58,7 +58,7 @@ gst_gl_effects_tunnel_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_tunnel (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_tunnel_callback, effects); } diff --git a/gst/gl/effects/gstgleffecttwirl.c b/gst/gl/effects/gstgleffecttwirl.c index f8b375b..d3d9e90 100644 --- a/gst/gl/effects/gstgleffecttwirl.c +++ b/gst/gl/effects/gstgleffecttwirl.c @@ -58,7 +58,7 @@ gst_gl_effects_twirl_callback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "width", (gfloat) width / 2.0f); gst_gl_shader_set_uniform_1f (shader, "height", (gfloat) height / 2.0f); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -66,6 +66,6 @@ gst_gl_effects_twirl (GstGLEffects * effects) { GstGLFilter *filter = GST_GL_FILTER (effects); - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->outtexture, gst_gl_effects_twirl_callback, effects); } diff --git a/gst/gl/effects/gstgleffectxray.c b/gst/gl/effects/gstgleffectxray.c index dc23908..3acb077 100644 --- a/gst/gl/effects/gstgleffectxray.c +++ b/gst/gl/effects/gstgleffectxray.c @@ -76,7 +76,7 @@ gst_gl_effects_xray_step_two (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 1); gst_gl_shader_set_uniform_1fv (shader, "kernel", 9, gauss_kernel); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -115,7 +115,7 @@ gst_gl_effects_xray_step_three (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 1); gst_gl_shader_set_uniform_1fv (shader, "kernel", 9, gauss_kernel); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } /* multipass separable sobel */ @@ -153,7 +153,7 @@ gst_gl_effects_xray_desaturate (gint width, gint height, guint texture, glDisable (GL_TEXTURE_RECTANGLE_ARB); gst_gl_shader_set_uniform_1i (shader, "tex", 1); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -190,7 +190,7 @@ gst_gl_effects_xray_sobel_hconv (gint width, gint height, guint texture, glDisable (GL_TEXTURE_RECTANGLE_ARB); gst_gl_shader_set_uniform_1i (shader, "tex", 1); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -227,7 +227,7 @@ gst_gl_effects_xray_sobel_vconv (gint width, gint height, guint texture, glDisable (GL_TEXTURE_RECTANGLE_ARB); gst_gl_shader_set_uniform_1i (shader, "tex", 1); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } static void @@ -265,7 +265,7 @@ gst_gl_effects_xray_sobel_length (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (shader, "tex", 1); gst_gl_shader_set_uniform_1i (shader, "invert", TRUE); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } /* end of sobel passes */ @@ -313,7 +313,7 @@ gst_gl_effects_xray_step_five (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1f (shader, "alpha", (gfloat) 0.5f); gst_gl_shader_set_uniform_1i (shader, "blend", 1); - gst_gl_effects_draw_texture (effects, texture); + gst_gl_effects_draw_texture (effects, texture, width, height); } void @@ -322,13 +322,13 @@ gst_gl_effects_xray (GstGLEffects * effects) GstGLFilter *filter = GST_GL_FILTER (effects); /* map luma to xray curve */ - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->midtexture[0], gst_gl_effects_xray_step_one, effects); /* horizontal blur */ - gst_gl_filter_render_to_target (filter, effects->midtexture[0], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[0], effects->midtexture[1], gst_gl_effects_xray_step_two, effects); /* vertical blur */ - gst_gl_filter_render_to_target (filter, effects->midtexture[1], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[1], effects->midtexture[2], gst_gl_effects_xray_step_three, effects); /* detect edges with Sobel */ /* the old version used edges from the blurred texture, this uses @@ -336,18 +336,18 @@ gst_gl_effects_xray (GstGLEffects * effects) * more. This one gives better edges obviously but behaves badly * with noise */ /* desaturate */ - gst_gl_filter_render_to_target (filter, effects->intexture, + gst_gl_filter_render_to_target (filter, TRUE, effects->intexture, effects->midtexture[3], gst_gl_effects_xray_desaturate, effects); /* horizonal convolution */ - gst_gl_filter_render_to_target (filter, effects->midtexture[3], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[3], effects->midtexture[4], gst_gl_effects_xray_sobel_hconv, effects); /* vertical convolution */ - gst_gl_filter_render_to_target (filter, effects->midtexture[4], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[4], effects->midtexture[3], gst_gl_effects_xray_sobel_vconv, effects); /* gradient length */ - gst_gl_filter_render_to_target (filter, effects->midtexture[3], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[3], effects->midtexture[4], gst_gl_effects_xray_sobel_length, effects); /* multiply edges with the blurred image */ - gst_gl_filter_render_to_target (filter, effects->midtexture[4], + gst_gl_filter_render_to_target (filter, FALSE, effects->midtexture[4], effects->outtexture, gst_gl_effects_xray_step_five, effects); } diff --git a/gst/gl/gstgldeinterlace.c b/gst/gl/gstgldeinterlace.c index 815e40b..ffab2ef 100644 --- a/gst/gl/gstgldeinterlace.c +++ b/gst/gl/gstgldeinterlace.c @@ -163,7 +163,7 @@ gst_gl_deinterlace_filter_texture (GstGLFilter * filter, guint in_tex, GstGLDeinterlace *deinterlace_filter = GST_GL_DEINTERLACE (filter); //blocking call, use a FBO - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_deinterlace_callback, deinterlace_filter); return TRUE; diff --git a/gst/gl/gstgldifferencematte.c b/gst/gl/gstgldifferencematte.c index c59efb1..d2d1422 100644 --- a/gst/gl/gstgldifferencematte.c +++ b/gst/gl/gstgldifferencematte.c @@ -483,7 +483,7 @@ gst_gl_differencematte_filter_texture (GstGLFilter * filter, guint in_tex, /* save current frame, needed to calculate difference between * this frame and next ones */ - gst_gl_filter_render_to_target (filter, in_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, differencematte->savedbgtexture, gst_gl_differencematte_save_texture, differencematte); @@ -496,19 +496,19 @@ gst_gl_differencematte_filter_texture (GstGLFilter * filter, guint in_tex, } if (differencematte->savedbgtexture != 0) { - gst_gl_filter_render_to_target (filter, in_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, differencematte->midtexture[0], gst_gl_differencematte_diff, differencematte); - gst_gl_filter_render_to_target (filter, differencematte->midtexture[0], - differencematte->midtexture[1], gst_gl_differencematte_hblur, - differencematte); - gst_gl_filter_render_to_target (filter, differencematte->midtexture[1], - differencematte->midtexture[2], gst_gl_differencematte_vblur, - differencematte); - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, FALSE, + differencematte->midtexture[0], differencematte->midtexture[1], + gst_gl_differencematte_hblur, differencematte); + gst_gl_filter_render_to_target (filter, FALSE, + differencematte->midtexture[1], differencematte->midtexture[2], + gst_gl_differencematte_vblur, differencematte); + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_differencematte_interp, differencematte); } else { - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_differencematte_identity, differencematte); } diff --git a/gst/gl/gstgleffects.c b/gst/gl/gstgleffects.c index ab7df36..8c7ae3d 100644 --- a/gst/gl/gstgleffects.c +++ b/gst/gl/gstgleffects.c @@ -267,11 +267,10 @@ gst_gl_effects_class_init (GstGLEffectsClass * klass) } void -gst_gl_effects_draw_texture (GstGLEffects * effects, GLuint tex) +gst_gl_effects_draw_texture (GstGLEffects * effects, GLuint tex, guint width, + guint height) { #ifndef OPENGL_ES2 - GstGLFilter *filter = GST_GL_FILTER (effects); - glActiveTexture (GL_TEXTURE0); glEnable (GL_TEXTURE_RECTANGLE_ARB); glBindTexture (GL_TEXTURE_RECTANGLE_ARB, tex); @@ -280,12 +279,11 @@ gst_gl_effects_draw_texture (GstGLEffects * effects, GLuint tex) glTexCoord2f (0.0, 0.0); glVertex2f (-1.0, -1.0); - glTexCoord2f ((gfloat) GST_VIDEO_INFO_WIDTH (&filter->out_info), 0.0); + glTexCoord2f ((gfloat) width, 0.0); glVertex2f (1.0, -1.0); - glTexCoord2f ((gfloat) GST_VIDEO_INFO_WIDTH (&filter->out_info), - (gfloat) GST_VIDEO_INFO_HEIGHT (&filter->out_info)); + glTexCoord2f ((gfloat) width, (gfloat) height); glVertex2f (1.0, 1.0); - glTexCoord2f (0.0, (gfloat) GST_VIDEO_INFO_HEIGHT (&filter->out_info)); + glTexCoord2f (0.0, (gfloat) height); glVertex2f (-1.0, 1.0); glEnd (); diff --git a/gst/gl/gstgleffects.h b/gst/gl/gstgleffects.h index 4f38119..9bd0c09 100644 --- a/gst/gl/gstgleffects.h +++ b/gst/gl/gstgleffects.h @@ -92,7 +92,7 @@ enum GType gst_gl_effects_get_type (void); -void gst_gl_effects_draw_texture (GstGLEffects * effects, GLuint tex); +void gst_gl_effects_draw_texture (GstGLEffects * effects, GLuint tex, guint width, guint height); void gst_gl_effects_identity (GstGLEffects *effects); void gst_gl_effects_mirror (GstGLEffects *effects); diff --git a/gst/gl/gstglfilterapp.c b/gst/gl/gstglfilterapp.c index 7f2e84d..61dc277 100644 --- a/gst/gl/gstglfilterapp.c +++ b/gst/gl/gstglfilterapp.c @@ -192,7 +192,7 @@ gst_gl_filter_app_filter_texture (GstGLFilter * filter, guint in_tex, //default else { //blocking call, use a FBO - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_filter_app_callback, NULL); } diff --git a/gst/gl/gstglfilterblur.c b/gst/gl/gstglfilterblur.c index 7243439..1d518da 100644 --- a/gst/gl/gstglfilterblur.c +++ b/gst/gl/gstglfilterblur.c @@ -190,10 +190,10 @@ gst_gl_filterblur_filter_texture (GstGLFilter * filter, guint in_tex, { GstGLFilterBlur *filterblur = GST_GL_FILTERBLUR (filter); - gst_gl_filter_render_to_target (filter, in_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, filterblur->midtexture, gst_gl_filterblur_hcallback, filterblur); - gst_gl_filter_render_to_target (filter, filterblur->midtexture, + gst_gl_filter_render_to_target (filter, FALSE, filterblur->midtexture, out_tex, gst_gl_filterblur_vcallback, filterblur); return TRUE; @@ -220,7 +220,7 @@ gst_gl_filterblur_hcallback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1fv (filterblur->shader0, "kernel", 7, filterblur->gauss_kernel); - gst_gl_filter_draw_texture (filter, texture); + gst_gl_filter_draw_texture (filter, texture, width, height); } @@ -245,5 +245,5 @@ gst_gl_filterblur_vcallback (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1fv (filterblur->shader1, "kernel", 7, filterblur->gauss_kernel); - gst_gl_filter_draw_texture (filter, texture); + gst_gl_filter_draw_texture (filter, texture, width, height); } diff --git a/gst/gl/gstglfilterlaplacian.c b/gst/gl/gstglfilterlaplacian.c index ec1d9d7..452132c 100644 --- a/gst/gl/gstglfilterlaplacian.c +++ b/gst/gl/gstglfilterlaplacian.c @@ -178,7 +178,7 @@ gst_gl_filter_laplacian_filter_texture (GstGLFilter * filter, guint in_tex, //blocking call, use a FBO - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_filter_laplacian_callback, laplacian_filter); return TRUE; diff --git a/gst/gl/gstglfilterreflectedscreen.c b/gst/gl/gstglfilterreflectedscreen.c index 7539198..e98be82 100644 --- a/gst/gl/gstglfilterreflectedscreen.c +++ b/gst/gl/gstglfilterreflectedscreen.c @@ -121,13 +121,13 @@ gst_gl_filter_reflected_screen_class_init (GstGLFilterReflectedScreenClass * g_object_class_install_property (gobject_class, PROP_ASPECT, g_param_spec_double ("aspect", "Aspect", - "Field of view in the x direction", 0.0, 100, 0.0, + "Field of view in the x direction", 1.0, 100, 1.0, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_ZNEAR, g_param_spec_double ("znear", "Znear", "Specifies the distance from the viewer to the near clipping plane", - 0.0, 100.0, 0.1, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); + 0.0000000001, 100.0, 0.1, G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); g_object_class_install_property (gobject_class, PROP_ZFAR, g_param_spec_double ("zfar", "Zfar", @@ -145,8 +145,8 @@ gst_gl_filter_reflected_screen_init (GstGLFilterReflectedScreen * filter) filter->active_graphic_mode = TRUE; filter->separated_screen = FALSE; filter->show_floor = TRUE; - filter->fovy = 80; - filter->aspect = 0; + filter->fovy = 90; + filter->aspect = 1.0; filter->znear = 0.1; filter->zfar = 1000; } diff --git a/gst/gl/gstglfiltershader.c b/gst/gl/gstglfiltershader.c index d5d1e69..e9ba943 100644 --- a/gst/gl/gstglfiltershader.c +++ b/gst/gl/gstglfiltershader.c @@ -325,7 +325,7 @@ gst_gl_filtershader_filter_texture (GstGLFilter * filter, guint in_tex, { GstGLFilterShader *filtershader = GST_GL_FILTERSHADER (filter); - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_filtershader_hcallback, filtershader); return TRUE; @@ -364,6 +364,6 @@ gst_gl_filtershader_hcallback (gint width, gint height, guint texture, hfilter_fragment_variables[1] = 0; } - gst_gl_filter_draw_texture (filter, texture); + gst_gl_filter_draw_texture (filter, texture, width, height); } diff --git a/gst/gl/gstglfiltersobel.c b/gst/gl/gstglfiltersobel.c index 4ee65b5..625f74a 100644 --- a/gst/gl/gstglfiltersobel.c +++ b/gst/gl/gstglfiltersobel.c @@ -220,15 +220,15 @@ gst_gl_filtersobel_filter_texture (GstGLFilter * filter, guint in_tex, { GstGLFilterSobel *filtersobel = GST_GL_FILTERSOBEL (filter); - gst_gl_filter_render_to_target_with_shader (filter, in_tex, + gst_gl_filter_render_to_target_with_shader (filter, TRUE, in_tex, filtersobel->midtexture[0], filtersobel->desat); - gst_gl_filter_render_to_target_with_shader (filter, + gst_gl_filter_render_to_target_with_shader (filter, FALSE, filtersobel->midtexture[0], filtersobel->midtexture[1], filtersobel->hconv); - gst_gl_filter_render_to_target_with_shader (filter, + gst_gl_filter_render_to_target_with_shader (filter, FALSE, filtersobel->midtexture[1], filtersobel->midtexture[0], filtersobel->vconv); - gst_gl_filter_render_to_target (filter, filtersobel->midtexture[0], + gst_gl_filter_render_to_target (filter, FALSE, filtersobel->midtexture[0], out_tex, gst_gl_filtersobel_length, filtersobel); return TRUE; @@ -255,5 +255,5 @@ gst_gl_filtersobel_length (gint width, gint height, guint texture, gst_gl_shader_set_uniform_1i (filtersobel->len, "invert", filtersobel->invert); - gst_gl_filter_draw_texture (filter, texture); + gst_gl_filter_draw_texture (filter, texture, width, height); } diff --git a/gst/gl/gstgloverlay.c b/gst/gl/gstgloverlay.c index 8481ab6..9b5ce78 100644 --- a/gst/gl/gstgloverlay.c +++ b/gst/gl/gstgloverlay.c @@ -607,7 +607,7 @@ gst_gl_overlay_filter_texture (GstGLFilter * filter, guint in_tex, overlay->pbuf_has_changed = FALSE; } - gst_gl_filter_render_to_target (filter, in_tex, out_tex, + gst_gl_filter_render_to_target (filter, TRUE, in_tex, out_tex, gst_gl_overlay_callback, overlay); return TRUE; -- 2.7.4