summaryrefslogtreecommitdiff
path: root/gst/gl/effects/gstgleffectxray.c
diff options
context:
space:
mode:
Diffstat (limited to 'gst/gl/effects/gstgleffectxray.c')
-rw-r--r--gst/gl/effects/gstgleffectxray.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/gst/gl/effects/gstgleffectxray.c b/gst/gl/effects/gstgleffectxray.c
index d086843..d5f9e16 100644
--- a/gst/gl/effects/gstgleffectxray.c
+++ b/gst/gl/effects/gstgleffectxray.c
@@ -22,11 +22,8 @@
#include <gstgleffectscurves.h>
#include <gstgleffectlumatocurve.h>
-/* Gaussian Kernel: std = 1.200000, size = 9x1 */
-static gfloat gauss_kernel[9] = { 0.001285f, 0.014607f, 0.082898f,
- 0.234927f, 0.332452f, 0.234927f,
- 0.082898f, 0.014607f, 0.001285f
-};
+static gboolean kernel_ready = FALSE;
+static float gauss_kernel[9];
/* Normalization Constant = 0.999885 */
@@ -54,6 +51,11 @@ gst_gl_effects_xray_step_two (gint width, gint height, guint texture,
g_hash_table_insert (effects->shaderstable, "xray1", shader);
}
+ if (!kernel_ready) {
+ fill_gaussian_kernel (gauss_kernel, 9, 1.5);
+ kernel_ready = TRUE;
+ }
+
g_return_if_fail (gst_gl_shader_compile_and_check (shader,
hconv9_fragment_source, GST_GL_SHADER_FRAGMENT_SOURCE));
@@ -68,10 +70,7 @@ gst_gl_effects_xray_step_two (gint width, gint height, guint texture,
glDisable (GL_TEXTURE_RECTANGLE_ARB);
gst_gl_shader_set_uniform_1i (shader, "tex", 1);
-
gst_gl_shader_set_uniform_1fv (shader, "kernel", 9, gauss_kernel);
- gst_gl_shader_set_uniform_1f (shader, "norm_const", 0.999885f);
- gst_gl_shader_set_uniform_1f (shader, "norm_offset", 0.0f);
gst_gl_effects_draw_texture (effects, texture);
}
@@ -104,10 +103,7 @@ gst_gl_effects_xray_step_three (gint width, gint height, guint texture,
glDisable (GL_TEXTURE_RECTANGLE_ARB);
gst_gl_shader_set_uniform_1i (shader, "tex", 1);
-
gst_gl_shader_set_uniform_1fv (shader, "kernel", 9, gauss_kernel);
- gst_gl_shader_set_uniform_1f (shader, "norm_const", 0.999885f);
- gst_gl_shader_set_uniform_1f (shader, "norm_offset", 0.0f);
gst_gl_effects_draw_texture (effects, texture);
}