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

Peter Schlaile peter at schlaile.de
Sun Mar 30 16:23:15 CEST 2008


Revision: 14284
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14284
Author:   schlaile
Date:     2008-03-30 16:23:15 +0200 (Sun, 30 Mar 2008)

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

Added IPO-support to color strip.

Modified Paths:
--------------
    trunk/blender/source/blender/src/seqeffects.c
    trunk/blender/source/blender/src/sequence.c

Modified: trunk/blender/source/blender/src/seqeffects.c
===================================================================
--- trunk/blender/source/blender/src/seqeffects.c	2008-03-30 09:06:56 UTC (rev 14283)
+++ trunk/blender/source/blender/src/seqeffects.c	2008-03-30 14:23:15 UTC (rev 14284)
@@ -2572,26 +2572,67 @@
 	float *rect_float;
 
 	if (out->rect) {
+		unsigned char col0[3];
+		unsigned char col1[3];
+
+		col0[0] = facf0 * cv->col[0] * 255;
+		col0[1] = facf0 * cv->col[1] * 255;
+		col0[2] = facf0 * cv->col[2] * 255;
+
+		col1[0] = facf1 * cv->col[0] * 255;
+		col1[1] = facf1 * cv->col[1] * 255;
+		col1[2] = facf1 * cv->col[2] * 255;
+
 		rect = (unsigned char *)out->rect;
 		
 		for(y=0; y<out->y; y++) {	
 			for(x=0; x<out->x; x++, rect+=4) {
-				rect[0]= (char)(cv->col[0]*255);
-				rect[1]= (char)(cv->col[1]*255);
-				rect[2]= (char)(cv->col[2]*255);
+				rect[0]= col0[0];
+				rect[1]= col0[1];
+				rect[2]= col0[2];
 				rect[3]= 255;
-			}	
+			}
+			y++;
+			if (y<out->y) {
+				for(x=0; x<out->x; x++, rect+=4) {
+					rect[0]= col1[0];
+					rect[1]= col1[1];
+					rect[2]= col1[2];
+					rect[3]= 255;
+				}	
+			}
 		}
+
 	} else if (out->rect_float) {
+		float col0[3];
+		float col1[3];
+
+		col0[0] = facf0 * cv->col[0];
+		col0[1] = facf0 * cv->col[1];
+		col0[2] = facf0 * cv->col[2];
+
+		col1[0] = facf1 * cv->col[0];
+		col1[1] = facf1 * cv->col[1];
+		col1[2] = facf1 * cv->col[2];
+
 		rect_float = out->rect_float;
 		
 		for(y=0; y<out->y; y++) {	
 			for(x=0; x<out->x; x++, rect_float+=4) {
-				rect_float[0]= cv->col[0];
-				rect_float[1]= cv->col[1];
-				rect_float[2]= cv->col[2];
+				rect_float[0]= col0[0];
+				rect_float[1]= col0[1];
+				rect_float[2]= col0[2];
 				rect_float[3]= 1.0;
 			}
+			y++;
+			if (y<out->y) {
+				for(x=0; x<out->x; x++, rect_float+=4) {
+					rect_float[0]= col1[0];
+					rect_float[1]= col1[1];
+					rect_float[2]= col1[2];
+					rect_float[3]= 1.0;
+				}
+			}
 		}
 	}
 }

Modified: trunk/blender/source/blender/src/sequence.c
===================================================================
--- trunk/blender/source/blender/src/sequence.c	2008-03-30 09:06:56 UTC (rev 14283)
+++ trunk/blender/source/blender/src/sequence.c	2008-03-30 14:23:15 UTC (rev 14284)
@@ -875,7 +875,8 @@
 	   alpha over mode...
 	*/
 	if (seq->blend_mode != SEQ_BLEND_REPLACE ||
-	    (seq->ipo && seq->ipo->curve.first && !(seq->type & SEQ_EFFECT))) {
+	    (seq->ipo && seq->ipo->curve.first && (
+		    !(seq->type & SEQ_EFFECT) || !seq->seq1))) {
 		Strip * s = seq->strip;
 		if (cfra < seq->start) {
 			se = s->tstripdata_startstill;





More information about the Bf-blender-cvs mailing list