[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25004] trunk/blender: == Sequencer ==

Peter Schlaile peter at schlaile.de
Sun Nov 29 19:14:16 CET 2009


Revision: 25004
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25004
Author:   schlaile
Date:     2009-11-29 19:14:16 +0100 (Sun, 29 Nov 2009)

Log Message:
-----------
== Sequencer ==

Brought back default effect fading: (adding a wipe effect makes it
wipe by default for the length of the strip)

First round in upgrading IPOs from older versions. (works for non-IPO
case now and sets at least the new "default effect fade"-flag)

Still non-working for old IPOs, since Sequence-Strips aren't real IDs!

And: non-frame-lock case should stretch the FCurve to the right length!

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/space_sequencer.py
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/blenkernel/intern/sequence.c
    trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
    trunk/blender/source/blender/makesdna/DNA_ipo_types.h
    trunk/blender/source/blender/makesdna/DNA_sequence_types.h
    trunk/blender/source/blender/makesrna/intern/rna_sequence.c

Modified: trunk/blender/release/scripts/ui/space_sequencer.py
===================================================================
--- trunk/blender/release/scripts/ui/space_sequencer.py	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/release/scripts/ui/space_sequencer.py	2009-11-29 18:14:16 UTC (rev 25004)
@@ -351,7 +351,10 @@
         if not strip:
             return False
 
-        return strip.type in ('COLOR', 'WIPE', 'GLOW', 'SPEED', 'TRANSFORM')
+        return strip.type in ('ADD','SUBTRACT','ALPHA_OVER','ALPHA_UNDER',
+                              'GAMMA_CROSS','MULTIPLY','OVER_DROP',
+                              'PLUGIN',
+                              'WIPE', 'GLOW', 'TRANSFORM', 'COLOR', 'SPEED')
 
     def draw(self, context):
         layout = self.layout
@@ -431,7 +434,9 @@
         if strip.type == 'SPEED':
             col.prop(strip, "speed_fader", text="Speed fader")
         else:
-            col.prop(strip, "effect_fader", text="Effect fader")
+            col.prop(strip, "use_effect_default_fade", "Default fade")
+            if not strip.use_effect_default_fade:
+                col.prop(strip, "effect_fader", text="Effect fader")
 
 
 class SEQUENCER_PT_input(SequencerButtonsPanel):

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/ipo.c	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2009-11-29 18:14:16 UTC (rev 25004)
@@ -885,6 +885,17 @@
 			
 		case ID_SEQ: /* sequencer strip */
 			//SEQ_FAC1:
+			switch (adrcode) {
+			case SEQ_FAC1:
+				propname= "effect_fader";
+				break;
+			case SEQ_FAC_SPEED:
+				propname= "speed_fader";
+				break;
+			case SEQ_FAC_OPACITY:
+				propname= "blend_opacity";
+				break;
+			}
 			//	poin= &(seq->facf0); // XXX this doesn't seem to be included anywhere in sequencer RNA...
 			break;
 			
@@ -1604,6 +1615,7 @@
 	ListBase drivers = {NULL, NULL};
 	ID *id;
 	AnimData *adt;
+	Scene *scene;
 	
 	if (main == NULL) {
 		printf("Argh! Main is NULL in do_versions_ipos_to_animato() \n");
@@ -1781,6 +1793,51 @@
 		}
 	}
 	
+	/* sequence strips */
+	for(scene = main->scene.first; scene; scene = scene->id.next) {
+		if(scene->ed && scene->ed->seqbasep) {
+			Sequence * seq;
+
+			for(seq = scene->ed->seqbasep->first; 
+			    seq; seq = seq->next) {
+				short adrcode = SEQ_FAC1;
+
+				if (G.f & G_DEBUG) 
+					printf("\tconverting sequence strip %s \n", seq->name+2);
+
+				if (!seq->ipo || !seq->ipo->curve.first) {
+					seq->flag |= 
+						SEQ_USE_EFFECT_DEFAULT_FADE;
+					continue;
+				}
+				
+				/* patch adrcode, so that we can map
+				   to different DNA variables later 
+				   (semi-hack (tm) )
+				*/
+				switch(seq->type) {
+				case SEQ_IMAGE:
+				case SEQ_META:
+				case SEQ_SCENE:
+				case SEQ_MOVIE:
+				case SEQ_COLOR:
+					adrcode = SEQ_FAC_OPACITY;
+					break;
+				case SEQ_SPEED:
+					adrcode = SEQ_FAC_SPEED;
+					break;
+				}
+				((IpoCurve*) seq->ipo->curve.first)
+					->adrcode = adrcode;
+				ipo_to_animdata((ID*) seq, seq->ipo,
+						NULL, NULL);
+				seq->ipo->id.us--;
+				seq->ipo = NULL;
+			}
+		}
+	}
+
+
 	/* textures */
 	for (id= main->tex.first; id; id= id->next) {
 		Tex *te= (Tex *)id;

Modified: trunk/blender/source/blender/blenkernel/intern/sequence.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/blenkernel/intern/sequence.c	2009-11-29 18:14:16 UTC (rev 25004)
@@ -820,16 +820,19 @@
 		return;
 	}
 
-	fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, 
-				  "effect_fader", 0);
-
-	if (!fcu) {
+	if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) {
 		sh.get_default_fac(seq, cfra, &fac, &facf);
 		if( scene->r.mode & R_FIELDS ); else facf= fac;
 	} else {
-		fac = facf = evaluate_fcurve(fcu, cfra);
-		if( scene->r.mode & R_FIELDS ) {
-			facf = evaluate_fcurve(fcu, cfra + 0.5);
+		fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, 
+					  "effect_fader", 0);
+		if (fcu) {
+			fac = facf = evaluate_fcurve(fcu, cfra);
+			if( scene->r.mode & R_FIELDS ) {
+				facf = evaluate_fcurve(fcu, cfra + 0.5);
+			}
+		} else {
+			fac = facf = seq->effect_fader;
 		}
 	}
 
@@ -2122,16 +2125,19 @@
 	se->se2 = 0;
 	se->se3 = 0;
 
-	fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, 
-				  "effect_fader", 0);
-
-	if (!fcu) {
+	if ((seq->flag & SEQ_USE_EFFECT_DEFAULT_FADE) != 0) {
 		sh.get_default_fac(seq, cfra, &fac, &facf);
 		if( scene->r.mode & R_FIELDS ); else facf= fac;
 	} else {
-		fac = facf = evaluate_fcurve(fcu, cfra);
-		if( scene->r.mode & R_FIELDS ) {
-			facf = evaluate_fcurve(fcu, cfra + 0.5);
+		fcu = id_data_find_fcurve(&scene->id, seq, &RNA_Sequence, 
+					  "effect_fader", 0);
+		if (fcu) {
+			fac = facf = evaluate_fcurve(fcu, cfra);
+			if( scene->r.mode & R_FIELDS ) {
+				facf = evaluate_fcurve(fcu, cfra + 0.5);
+			}
+		} else {
+			fac = facf = seq->effect_fader;
 		}
 	}
 

Modified: trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c
===================================================================
--- trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/editors/space_sequencer/sequencer_add.c	2009-11-29 18:14:16 UTC (rev 25004)
@@ -513,6 +513,8 @@
 		seq_tx_set_final_right(seq, end_frame);
 	}
 
+	seq->flag |= SEQ_USE_EFFECT_DEFAULT_FADE;
+
 	calc_sequence(seq);
 	
 	/* basic defaults */

Modified: trunk/blender/source/blender/makesdna/DNA_ipo_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_ipo_types.h	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/makesdna/DNA_ipo_types.h	2009-11-29 18:14:16 UTC (rev 25004)
@@ -275,6 +275,8 @@
 #define SEQ_TOTNAM	1
 
 #define SEQ_FAC1	1
+#define SEQ_FAC_SPEED   2
+#define SEQ_FAC_OPACITY 3
 
 /* ********* Curve (ID_CU) *********** */
 

Modified: trunk/blender/source/blender/makesdna/DNA_sequence_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_sequence_types.h	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/makesdna/DNA_sequence_types.h	2009-11-29 18:14:16 UTC (rev 25004)
@@ -268,6 +268,7 @@
 #define SEQ_USE_COLOR_BALANCE                  262144
 #define SEQ_USE_PROXY_CUSTOM_DIR               524288
 #define SEQ_USE_PROXY_CUSTOM_FILE             2097152
+#define SEQ_USE_EFFECT_DEFAULT_FADE           4194304
 
 /* deprecated, dont use a flag anymore*/
 /*#define SEQ_ACTIVE                            1048576*/

Modified: trunk/blender/source/blender/makesrna/intern/rna_sequence.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_sequence.c	2009-11-29 16:49:26 UTC (rev 25003)
+++ trunk/blender/source/blender/makesrna/intern/rna_sequence.c	2009-11-29 18:14:16 UTC (rev 25004)
@@ -538,6 +538,12 @@
 	RNA_def_property_ui_text(prop, "Effect fader position", "");
 	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL);
 
+	prop= RNA_def_property(srna, "use_effect_default_fade", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", SEQ_USE_EFFECT_DEFAULT_FADE);
+	RNA_def_property_ui_text(prop, "Use Default Fade", "Fade effect using the builtin default (usually make transition as long as effect strip).");
+	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL);
+	
+
 	prop= RNA_def_property(srna, "speed_fader", PROP_FLOAT, PROP_NONE);
 	RNA_def_property_float_sdna(prop, NULL, "speed_fader");
 	RNA_def_property_ui_text(prop, "Speed effect fader position", "");
@@ -637,7 +643,7 @@
 	RNA_def_property_ui_text(prop, "Use Translation", "Translate image before processing.");
 	RNA_def_property_boolean_funcs(prop, NULL, "rna_SequenceEditor_use_translation_set");
 	RNA_def_property_update(prop, NC_SCENE|ND_SEQUENCER, NULL);
-	
+
 	prop= RNA_def_property(srna, "transform", PROP_POINTER, PROP_NONE);
 	RNA_def_property_pointer_sdna(prop, NULL, "strip->transform");
 	RNA_def_property_ui_text(prop, "Transform", "");





More information about the Bf-blender-cvs mailing list