diff options
author | Peter Schlaile <peter@schlaile.de> | 2007-10-22 00:05:01 +0400 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2007-10-22 00:05:01 +0400 |
commit | af03bbe412f44a2a38b64e441454faec7c4d3c77 (patch) | |
tree | 2a3e8219e818496130902273d4b5733217a56a81 | |
parent | 477a8c30fa46bf4832d590e957f6c842ed874562 (diff) |
== Sequencer ==
Peach request: display last mapped frame in status bar of speed control
effect. (To come: auto-resize based on this information)
-rw-r--r-- | source/blender/makesdna/DNA_sequence_types.h | 2 | ||||
-rw-r--r-- | source/blender/src/drawseq.c | 14 | ||||
-rw-r--r-- | source/blender/src/seqeffects.c | 5 |
3 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index bd6976f1414..839d804fbea 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -185,7 +185,7 @@ typedef struct SpeedControlVars { float globalSpeed; int flags; int length; - int pad; + int lastValidFrame; } SpeedControlVars; /* SpeedControlVars->flags */ diff --git a/source/blender/src/drawseq.c b/source/blender/src/drawseq.c index 9f33995f136..cac8b0d433e 100644 --- a/source/blender/src/drawseq.c +++ b/source/blender/src/drawseq.c @@ -987,6 +987,20 @@ static void draw_extra_seqinfo(void) glRasterPos3f(xco, yco, 0.0); BMF_DrawString(G.font, str); } + else if(last_seq->type == SEQ_SPEED) { + SpeedControlVars * vars = + (SpeedControlVars*) last_seq->effectdata; + + if (vars) { + sprintf(str, "Last mapped frame: %d at %d", + vars->lastValidFrame, + vars->lastValidFrame + + last_seq->startdisp); + + glRasterPos3f(xco, yco, 0.0); + BMF_DrawString(G.font, str); + } + } } void seq_reset_imageofs(SpaceSeq *sseq) diff --git a/source/blender/src/seqeffects.c b/source/blender/src/seqeffects.c index 4a0dbdae186..5b89bd3ee44 100644 --- a/source/blender/src/seqeffects.c +++ b/source/blender/src/seqeffects.c @@ -2730,6 +2730,7 @@ void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force) float cursor = 0; v->frameMap[0] = 0; + v->lastValidFrame = 0; for (cfra = 1; cfra < v->length; cfra++) { if(seq->ipo) { @@ -2756,9 +2757,11 @@ void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force) v->frameMap[cfra] = v->length - 1; } else { v->frameMap[cfra] = cursor; + v->lastValidFrame = cfra; } } } else { + v->lastValidFrame = 0; for (cfra = 0; cfra < v->length; cfra++) { if(seq->ipo) { if((seq->flag & SEQ_IPO_FRAME_LOCKED) != 0) { @@ -2784,6 +2787,8 @@ void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force) seq->facf0 *= v->globalSpeed; if (seq->facf0 >= v->length) { seq->facf0 = v->length - 1; + } else { + v->lastValidFrame = cfra; } v->frameMap[cfra] = seq->facf0; } |