]> git.sesse.net Git - movit/blobdiff - luma_mix_effect.cpp
Add a simple luma wipe transition.
[movit] / luma_mix_effect.cpp
diff --git a/luma_mix_effect.cpp b/luma_mix_effect.cpp
new file mode 100644 (file)
index 0000000..e34d87f
--- /dev/null
@@ -0,0 +1,27 @@
+#include "luma_mix_effect.h"
+#include "effect_util.h"
+#include "util.h"
+
+using namespace std;
+
+namespace movit {
+
+LumaMixEffect::LumaMixEffect()
+       : transition_width(1.0f), progress(0.5f)
+{
+       register_float("transition_width", &transition_width);
+       register_float("progress", &progress);
+}
+
+string LumaMixEffect::output_fragment_shader()
+{
+       return read_file("luma_mix_effect.frag");
+}
+
+void LumaMixEffect::set_gl_state(GLuint glsl_program_num, const string &prefix, unsigned *sampler_num)
+{
+       Effect::set_gl_state(glsl_program_num, prefix, sampler_num);
+       set_uniform_float(glsl_program_num, prefix, "progress_mul_w_plus_one", progress * (transition_width + 1.0));
+}
+
+}  // namespace movit