== Sequencer ==

Added IPO-support to color strip.
This commit is contained in:
2008-03-30 14:23:15 +00:00
parent 0eda26d126
commit cc4858cde0
2 changed files with 50 additions and 8 deletions

View File

@@ -2572,26 +2572,67 @@ static void do_solid_color(Sequence * seq,int cfra,
float *rect_float; float *rect_float;
if (out->rect) { 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; rect = (unsigned char *)out->rect;
for(y=0; y<out->y; y++) { for(y=0; y<out->y; y++) {
for(x=0; x<out->x; x++, rect+=4) { for(x=0; x<out->x; x++, rect+=4) {
rect[0]= (char)(cv->col[0]*255); rect[0]= col0[0];
rect[1]= (char)(cv->col[1]*255); rect[1]= col0[1];
rect[2]= (char)(cv->col[2]*255); rect[2]= col0[2];
rect[3]= 255; 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) { } 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; rect_float = out->rect_float;
for(y=0; y<out->y; y++) { for(y=0; y<out->y; y++) {
for(x=0; x<out->x; x++, rect_float+=4) { for(x=0; x<out->x; x++, rect_float+=4) {
rect_float[0]= cv->col[0]; rect_float[0]= col0[0];
rect_float[1]= cv->col[1]; rect_float[1]= col0[1];
rect_float[2]= cv->col[2]; rect_float[2]= col0[2];
rect_float[3]= 1.0; 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;
}
}
} }
} }
} }

View File

@@ -875,7 +875,8 @@ TStripElem *give_tstripelem(Sequence *seq, int cfra)
alpha over mode... alpha over mode...
*/ */
if (seq->blend_mode != SEQ_BLEND_REPLACE || 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; Strip * s = seq->strip;
if (cfra < seq->start) { if (cfra < seq->start) {
se = s->tstripdata_startstill; se = s->tstripdata_startstill;