[173/906] add lumaxpro (desaturate + cross process) effect. nothing too impressive...
authorFilippo Argiolas <filippo.argiolas@gmail.com>
Thu, 14 Aug 2008 19:29:02 +0000 (21:29 +0200)
committerMatthew Waters <ystreet00@gmail.com>
Sat, 15 Mar 2014 17:36:25 +0000 (18:36 +0100)
gst/gl/effects/gstgleffectlumatocurve.c
gst/gl/effects/gstgleffectscurves.h
gst/gl/gstgleffects.c
gst/gl/gstgleffects.h
tests/examples/gtk/fxtest/fxtest.c

index 21739ad..86fabcd 100644 (file)
@@ -105,3 +105,20 @@ gst_gl_effects_sepia (GstGLEffects *effects) {
   gst_gl_filter_render_to_target (filter, effects->intexture, effects->outtexture,
                                  gst_gl_effects_sepia_callback, effects);
 }
+
+static void gst_gl_effects_luma_xpro_callback (gint width, gint height, guint texture, gpointer data)
+{
+    GstGLEffects* effects = GST_GL_EFFECTS (data);
+    
+    gst_gl_effects_luma_to_curve (effects, luma_xpro_curve, GST_GL_EFFECTS_CURVE_LUMA_XPRO, 
+                                  width, height, texture);
+}
+
+void
+gst_gl_effects_luma_xpro (GstGLEffects *effects) {
+  GstGLFilter *filter = GST_GL_FILTER (effects);
+
+  gst_gl_filter_render_to_target (filter, effects->intexture, effects->outtexture,
+                                 gst_gl_effects_luma_xpro_callback, effects);
+}
+
index bb06c0c..ca70c1f 100644 (file)
@@ -69,7 +69,7 @@ static const GstGLEffectsCurve xpro_curve = {
   "\377\367\377\377\367\377\377\370",
 };
 
-static const GstGLEffectsCurve blue_curve = {
+static const GstGLEffectsCurve luma_xpro_curve = {
   256, 1, 3,
   "\0\0\1\0\1\1\0\1\2\0\1\2\0\1\2\0\1\2\0\1\3\0\2\3\0\2\4\0\2\4\0\2\5\0\2\6"
   "\0\3\6\0\3\6\0\3\7\0\3\10\0\4\10\0\4\11\0\4\12\0\4\12\1\4\13\1\5\14\1\5\15"
@@ -94,7 +94,6 @@ static const GstGLEffectsCurve blue_curve = {
   "\274\362\355\276\364\356\277\364\357\277\365\360\277\365\360\302\366\361"
   "\302\367\361\304\370\363\304\370\363\307\370\364\307\371\364\311\371\366"
   "\312\372\367\312\372\367\314\372\367\316\373\370\316\373\370\320\373\371"
-
   "\320\374\371\321\374\372\323\374\372\324\375\372\325\375\372\325\375\373"
   "\327\375\373\330\375\374\332\375\374\333\375\375\334\376\375\334\376\375"
   "\335\376\375\337\376\375\337\376\375\340\376\376\342\376\376\344\376\376"
index af912d3..2170aa3 100644 (file)
@@ -67,6 +67,7 @@ typedef enum {
   GST_GL_EFFECT_HEAT,
   GST_GL_EFFECT_SEPIA,
   GST_GL_EFFECT_XPRO,
+  GST_GL_EFFECT_LUMA_XPRO,
   GST_GL_EFFECT_GLOW,
   GST_GL_N_EFFECTS
 } GstGLEffectsEffect;
@@ -89,6 +90,7 @@ gst_gl_effects_effect_get_type (void)
     { GST_GL_EFFECT_HEAT, "Heat Signature Effect", "heat" },
     { GST_GL_EFFECT_SEPIA, "Sepia Toning Effect", "sepia" },
     { GST_GL_EFFECT_XPRO, "Cross Processing Effect", "xpro" },
+    { GST_GL_EFFECT_LUMA_XPRO, "Luma Cross Processing Effect", "lumaxpro" },
     { GST_GL_EFFECT_GLOW, "Glow Lighting Effect", "glow" },
     { 0, NULL, NULL }
   };
@@ -140,6 +142,9 @@ gst_gl_effects_set_effect (GstGLEffects *effects, gint effect_type) {
   case GST_GL_EFFECT_XPRO:
     effects->effect = (GstGLEffectProcessFunc) gst_gl_effects_xpro;
     break;
+  case GST_GL_EFFECT_LUMA_XPRO:
+    effects->effect = (GstGLEffectProcessFunc) gst_gl_effects_luma_xpro;
+    break;
   case GST_GL_EFFECT_GLOW:
     effects->effect = (GstGLEffectProcessFunc) gst_gl_effects_glow;
     break;
index 24c114d..4af9d24 100644 (file)
@@ -49,6 +49,7 @@ enum {
   GST_GL_EFFECTS_CURVE_HEAT,
   GST_GL_EFFECTS_CURVE_SEPIA,
   GST_GL_EFFECTS_CURVE_XPRO,
+  GST_GL_EFFECTS_CURVE_LUMA_XPRO,
   GST_GL_EFFECTS_N_CURVES
 };
 
@@ -96,6 +97,7 @@ void gst_gl_effects_square (GstGLEffects *effects);
 void gst_gl_effects_heat (GstGLEffects *effects);
 void gst_gl_effects_sepia (GstGLEffects *effects);
 void gst_gl_effects_xpro (GstGLEffects *effects);
+void gst_gl_effects_luma_xpro (GstGLEffects *effects);
 void gst_gl_effects_glow (GstGLEffects *effects);
 
 G_END_DECLS
index 55ef43c..cc1c46a 100644 (file)
@@ -164,16 +164,17 @@ main (gint argc, gchar * argv[])
   combo = gtk_combo_box_new_text ();
 
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "identity");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "mirror");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "squeeze");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "stretch");
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "bulge");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "fisheye");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "twirl");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "bulge");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "tunnel");
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "fisheye");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "square");
-  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "mirror");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "heat");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "xpro");
+  gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "lumaxpro");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "sepia");
   gtk_combo_box_append_text (GTK_COMBO_BOX (combo), "glow");