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

Campbell Barton cbarton at metavr.com
Wed Oct 17 20:32:54 CEST 2007


Revision: 12273
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12273
Author:   campbellbarton
Date:     2007-10-17 20:32:54 +0200 (Wed, 17 Oct 2007)

Log Message:
-----------
Sequencer
- Draw a verticle line for markers
- Added an option to transform selected markers in the sequencer - useful for Extending time

Modified Paths:
--------------
    trunk/blender/source/blender/include/BSE_time.h
    trunk/blender/source/blender/makesdna/DNA_space_types.h
    trunk/blender/source/blender/src/drawaction.c
    trunk/blender/source/blender/src/drawipo.c
    trunk/blender/source/blender/src/drawnla.c
    trunk/blender/source/blender/src/drawseq.c
    trunk/blender/source/blender/src/drawsound.c
    trunk/blender/source/blender/src/drawtime.c
    trunk/blender/source/blender/src/editseq.c
    trunk/blender/source/blender/src/header_seq.c
    trunk/blender/source/blender/src/space.c

Modified: trunk/blender/source/blender/include/BSE_time.h
===================================================================
--- trunk/blender/source/blender/include/BSE_time.h	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/include/BSE_time.h	2007-10-17 18:32:54 UTC (rev 12273)
@@ -54,7 +54,7 @@
 void add_marker_to_cfra_elem(struct ListBase *lb, struct TimeMarker *marker, short only_sel);
 void make_marker_cfra_list(struct ListBase *lb, short only_sel);
 
-void draw_markers_timespace(void);
+void draw_markers_timespace(int lines);
 
 /* ******** Animation - Preview Range ************* */
 void anim_previewrange_set(void);

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2007-10-17 18:32:54 UTC (rev 12273)
@@ -621,6 +621,7 @@
 
 /* sseq->flag */
 #define SEQ_DRAWFRAMES  1
+#define SEQ_MARKER_TRANS 2
 
 /* space types, moved from DNA_screen_types.h */
 enum {

Modified: trunk/blender/source/blender/src/drawaction.c
===================================================================
--- trunk/blender/source/blender/src/drawaction.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawaction.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -928,7 +928,7 @@
 	draw_cfra_action();
 	
 	/* Draw markers */
-	draw_markers_timespace();
+	draw_markers_timespace(0);
 	
 	/* Draw 'curtains' for preview */
 	draw_anim_preview_timespace();

Modified: trunk/blender/source/blender/src/drawipo.c
===================================================================
--- trunk/blender/source/blender/src/drawipo.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawipo.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -2240,7 +2240,7 @@
 		draw_anim_preview_timespace();
 		
 		/* draw markers */
-		draw_markers_timespace();
+		draw_markers_timespace(0);
 		
 		/* restore viewport */
 		mywinset(sa->win);

Modified: trunk/blender/source/blender/src/drawnla.c
===================================================================
--- trunk/blender/source/blender/src/drawnla.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawnla.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -754,7 +754,7 @@
 	draw_cfra_action();
 	
 	/* draw markers */
-	draw_markers_timespace();
+	draw_markers_timespace(0);
 	
 	/* Draw preview 'curtains' */
 	draw_anim_preview_timespace();

Modified: trunk/blender/source/blender/src/drawseq.c
===================================================================
--- trunk/blender/source/blender/src/drawseq.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawseq.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -76,6 +76,7 @@
 #include "BSE_seqeffects.h"
 #include "BSE_seqscopes.h"
 #include "BSE_seqaudio.h"
+#include "BSE_time.h"
 
 #include "IMB_imbuf_types.h"
 #include "IMB_imbuf.h"
@@ -883,7 +884,7 @@
 
 	yfac= G.v2d->cur.ymax - G.v2d->cur.ymin;
 	yfac/= (float)(G.v2d->mask.ymax-G.v2d->mask.ymin);
-	yco= G.v2d->cur.ymin+10*yfac;
+	yco= G.v2d->cur.ymin+40*yfac;
 	
 	BIF_ThemeColor(TH_TEXT_HI);
 
@@ -1230,10 +1231,10 @@
 			uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Percent", 10, 30, 150, 19, &transform->percent, 0.0, 1.0, 0.0, 0.0, "Percent Translate");
 			uiDefButI(block, ROW, SEQ_BUT_EFFECT, "Pixels", 160, 30, 150, 19, &transform->percent, 0.0, 0.0, 0.0, 0.0, "Pixels Translate");
 			if(transform->percent==1){
-				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 	10,10,150,19, &transform->xIni, -100.0, 100.0, 0, 0, "X Position Start");
-				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 	160,10,150,19, &transform->xFin, -100.0, 100.0, 0, 0, "X Position End");
-				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y Start:", 	10,-10,150,19, &transform->yIni, -100.0, 100.0, 0, 0, "Y Position Start");
-				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y End:", 	160,-10,150,19, &transform->yFin, -100.0, 100.0, 0, 0, "Y Position End");
+				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 	10,10,150,19, &transform->xIni, -500.0, 500.0, 0, 0, "X Position Start");
+				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 	160,10,150,19, &transform->xFin, -500.0, 500.0, 0, 0, "X Position End");
+				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y Start:", 	10,-10,150,19, &transform->yIni, -500.0, 500.0, 0, 0, "Y Position Start");
+				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "y End:", 	160,-10,150,19, &transform->yFin, -500.0, 500.0, 0, 0, "Y Position End");
 			}else{
 				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x Start:", 	10,10,150,19, &transform->xIni, -10000.0, 10000.0, 0, 0, "X Position Start");
 				uiDefButF(block, NUM, SEQ_BUT_EFFECT, "x End:", 	160,10,150,19, &transform->xFin, -10000.0, 10000.0, 0, 0, "X Position End");
@@ -1444,7 +1445,7 @@
 	draw_extra_seqinfo();
 
 	/* Draw markers */
-	draw_markers_timespace();
+	draw_markers_timespace(1);
 	
 	/* restore viewport */
 	mywinset(sa->win);

Modified: trunk/blender/source/blender/src/drawsound.c
===================================================================
--- trunk/blender/source/blender/src/drawsound.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawsound.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -219,7 +219,7 @@
 	}
 	
 	draw_cfra_sound(spacedata);
-	draw_markers_timespace();
+	draw_markers_timespace(0);
 
 	/* restore viewport */
 	mywinset(curarea->win);

Modified: trunk/blender/source/blender/src/drawtime.c
===================================================================
--- trunk/blender/source/blender/src/drawtime.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/drawtime.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -133,7 +133,7 @@
 	
 }
 
-static void draw_marker(TimeMarker *marker)
+static void draw_marker(TimeMarker *marker, int lines)
 {
 	float xpos, ypixels, xscale, yscale;
 
@@ -145,10 +145,25 @@
 	yscale = (G.v2d->mask.ymax-G.v2d->mask.ymin)/(G.v2d->cur.ymax-G.v2d->cur.ymin);
 
 	glScalef( 1.0/xscale, 1.0/yscale, 1.0);
-
+	
 	glEnable(GL_BLEND);
 	glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);			
 	
+	/* verticle line */
+	if (lines) {
+		setlinestyle(3);
+		if(marker->flag & SELECT)
+			glColor4ub(255,255,255, 96);
+		else
+			glColor4ub(0,0,0, 96);
+		
+		glBegin(GL_LINES);
+		glVertex2f((xpos*xscale)+0.5, 12);
+		glVertex2f((xpos*xscale)+0.5, 34*yscale); /* a bit lazy but we know it cant be greater then 34 strips high*/
+		glEnd();
+		setlinestyle(0);
+	}
+	
 	/* 5 px to offset icon to align properly, space / pixels corrects for zoom */
 	if(marker->flag & SELECT)
 		BIF_icon_draw(xpos*xscale-5.0, 12.0, ICON_MARKER_HLT);
@@ -176,24 +191,24 @@
 	glScalef(xscale, yscale, 1.0);
 }
 
-static void draw_markers_time(void)
+static void draw_markers_time(int lines)
 {
 	TimeMarker *marker;
 
 	/* unselected markers are drawn at the first time */
 	for(marker= G.scene->markers.first; marker; marker= marker->next) {
-		if(!(marker->flag & SELECT)) draw_marker(marker);
+		if(!(marker->flag & SELECT)) draw_marker(marker, lines);
 	}
 
 	/* selected markers are drawn later ... selected markers have to cover unselected
 	 * markers laying at the same position as selected markers
 	 * (jiri: it is hack, it could be solved better) */
 	for(marker= G.scene->markers.first; marker; marker= marker->next) {
-		if(marker->flag & SELECT) draw_marker(marker);
+		if(marker->flag & SELECT) draw_marker(marker, lines);
 	}
 }
 
-void draw_markers_timespace()
+void draw_markers_timespace(int lines)
 {
 	TimeMarker *marker;
 	float yspace, ypixels;
@@ -208,13 +223,13 @@
 		
 	/* unselected markers are drawn at the first time */
 	for(marker= G.scene->markers.first; marker; marker= marker->next) {
-		if(!(marker->flag & SELECT)) draw_marker(marker);
+		if(!(marker->flag & SELECT)) draw_marker(marker, lines);
 	}
 	
 	/* selected markers are drawn later ... selected markers have to cover unselected
 		* markers laying at the same position as selected markers */
 	for(marker= G.scene->markers.first; marker; marker= marker->next) {
-		if(marker->flag & SELECT) draw_marker(marker);
+		if(marker->flag & SELECT) draw_marker(marker, lines);
 	}
 
 	glTranslatef(0.0f, -G.v2d->cur.ymin, 0.0f);
@@ -386,7 +401,7 @@
 
 	draw_cfra_time(spacedata);
 	draw_ob_keys();
-	draw_markers_time();
+	draw_markers_time(0);
 
 	/* restore viewport */
 	mywinset(curarea->win);

Modified: trunk/blender/source/blender/src/editseq.c
===================================================================
--- trunk/blender/source/blender/src/editseq.c	2007-10-17 17:53:59 UTC (rev 12272)
+++ trunk/blender/source/blender/src/editseq.c	2007-10-17 18:32:54 UTC (rev 12273)
@@ -2625,6 +2625,7 @@
 
 void transform_seq(int mode, int context)
 {
+	SpaceSeq *sseq= curarea->spacedata.first;
 	Sequence *seq;
 	Editing *ed;
 	float dx, dy, dvec[2], div;
@@ -2636,6 +2637,11 @@
 	char str[32];
 	char side; /* for extend mode only - use to know which side to extend on */
 	
+	/* for markers */
+	int *oldframe, totmark, a;
+	TimeMarker *marker;
+			
+	
 	if(mode!='g' && mode!='e') return;	/* from gesture */
 
 	/* which seqs are involved */
@@ -2672,7 +2678,7 @@
 		}
 	}
 	END_SEQ
-
+			
 	getmouseco_areawin(mval);
 	
 	/* choose the side based on which side of the playhead the mouse is on */
@@ -2682,6 +2688,31 @@
 		side = (xmouse > CFRA) ? 'R' : 'L';
 	}
 	
+	/* Markers */
+	if (sseq->flag & SEQ_MARKER_TRANS) {
+		for(marker= G.scene->markers.first; marker; marker= marker->next) {
+			if(marker->flag & SELECT) totmark++;
+		}
+		
+		oldframe= MEM_mallocN(totmark*sizeof(int), "marker array");
+		for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
+			if(marker->flag & SELECT) {
+				if (mode=='e') {
+					
+					/* when extending, invalidate markers on the other side by using an invalid frame value */
+					if ((side == 'L' && marker->frame > CFRA) || (side == 'R' && marker->frame < CFRA)) {
+						oldframe[a] = MAXFRAME+1;
+					} else {
+						oldframe[a]= marker->frame;
+					}
+				} else {
+					oldframe[a]= marker->frame;
+				}
+				a++;
+			}
+		}
+	}
+	
 	xo=xn= mval[0];
 	yo=yn= mval[1];
 	dvec[0]= dvec[1]= 0.0;
@@ -2747,6 +2778,16 @@
 						}
 					}
 					END_SEQ
+					
+					/* Markers */
+					if (sseq->flag & SEQ_MARKER_TRANS) {
+						for(a=0, marker= G.scene->markers.first; marker; marker= marker->next) {
+							if(marker->flag & SELECT) {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list