[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