Commit: 44db9f192eba5ef3c2f3117457b45540d3ca3801 Author: Richard Antalik Date: Tue Dec 28 14:28:52 2021 +0100 Branches: master https://developer.blender.org/rB44db9f192eba5ef3c2f3117457b45540d3ca3801
Cleanup: Factor in VSE effect processing 2 factor variables were passed to effects, but they were hard coded to have same value. Remove duplicate variable from arguments, rename single argument to `fac`. Inverted factor variables were renamed to `mfac`. Any other factor related variables are prefixed with `temp_`. There should be no functional changes. =================================================================== M source/blender/sequencer/SEQ_effects.h M source/blender/sequencer/intern/effects.c M source/blender/sequencer/intern/render.c M source/blender/sequencer/intern/render.h =================================================================== diff --git a/source/blender/sequencer/SEQ_effects.h b/source/blender/sequencer/SEQ_effects.h index 4bd5b54b36b..87a8288a593 100644 --- a/source/blender/sequencer/SEQ_effects.h +++ b/source/blender/sequencer/SEQ_effects.h @@ -68,10 +68,10 @@ struct SeqEffectHandle { * 0: no early out, * 1: out = ibuf1, * 2: out = ibuf2 */ - int (*early_out)(struct Sequence *seq, float facf0, float facf1); + int (*early_out)(struct Sequence *seq, float fac); - /* stores the default facf0 and facf1 if no IPO is present */ - void (*get_default_fac)(struct Sequence *seq, float timeline_frame, float *facf0, float *facf1); + /* sets the default `fac` value */ + void (*get_default_fac)(struct Sequence *seq, float timeline_frame, float *fac); /* execute the effect * sequence effects are only required to either support @@ -81,8 +81,7 @@ struct SeqEffectHandle { struct ImBuf *(*execute)(const struct SeqRenderData *context, struct Sequence *seq, float timeline_frame, - float facf0, - float facf1, + float fac, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3); @@ -95,8 +94,7 @@ struct SeqEffectHandle { void (*execute_slice)(const struct SeqRenderData *context, struct Sequence *seq, float timeline_frame, - float facf0, - float facf1, + float fac, struct ImBuf *ibuf1, struct ImBuf *ibuf2, struct ImBuf *ibuf3, diff --git a/source/blender/sequencer/intern/effects.c b/source/blender/sequencer/intern/effects.c index 05ce35deeec..1cf0d7bb34f 100644 --- a/source/blender/sequencer/intern/effects.c +++ b/source/blender/sequencer/intern/effects.c @@ -206,15 +206,9 @@ static void init_alpha_over_or_under(Sequence *seq) seq->seq1 = seq2; } -static void do_alphaover_effect_byte(float facf0, - float facf1, - int x, - int y, - unsigned char *rect1, - unsigned char *rect2, - unsigned char *out) -{ - float fac2, mfac, fac, fac4; +static void do_alphaover_effect_byte( + float fac, int x, int y, unsigned char *rect1, unsigned char *rect2, unsigned char *out) +{ int xo; unsigned char *cp1, *cp2, *rt; float tempc[4], rt1[4], rt2[4]; @@ -224,9 +218,6 @@ static void do_alphaover_effect_byte(float facf0, cp2 = rect2; rt = out; - fac2 = facf0; - fac4 = facf1; - while (y--) { x = xo; while (x--) { @@ -235,8 +226,7 @@ static void do_alphaover_effect_byte(float facf0, straight_uchar_to_premul_float(rt1, cp1); straight_uchar_to_premul_float(rt2, cp2); - fac = fac2; - mfac = 1.0f - fac2 * rt1[3]; + float mfac = 1.0f - fac * rt1[3]; if (fac <= 0.0f) { *((unsigned int *)rt) = *((unsigned int *)cp2); @@ -267,8 +257,7 @@ static void do_alphaover_effect_byte(float facf0, straight_uchar_to_premul_float(rt1, cp1); straight_uchar_to_premul_float(rt2, cp2); - fac = fac4; - mfac = 1.0f - (fac4 * rt1[3]); + float mfac = 1.0f - (fac * rt1[3]); if (fac <= 0.0f) { *((unsigned int *)rt) = *((unsigned int *)cp2); @@ -292,9 +281,8 @@ static void do_alphaover_effect_byte(float facf0, } static void do_alphaover_effect_float( - float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out) + float fac, int x, int y, float *rect1, float *rect2, float *out) { - float fac2, mfac, fac, fac4; int xo; float *rt1, *rt2, *rt; @@ -303,16 +291,12 @@ static void do_alphaover_effect_float( rt2 = rect2; rt = out; - fac2 = facf0; - fac4 = facf1; - while (y--) { x = xo; while (x--) { /* rt = rt1 over rt2 (alpha from rt1) */ - fac = fac2; - mfac = 1.0f - (fac2 * rt1[3]); + float mfac = 1.0f - (fac * rt1[3]); if (fac <= 0.0f) { memcpy(rt, rt2, sizeof(float[4])); @@ -338,8 +322,7 @@ static void do_alphaover_effect_float( x = xo; while (x--) { - fac = fac4; - mfac = 1.0f - (fac4 * rt1[3]); + float mfac = 1.0f - (fac * rt1[3]); if (fac <= 0.0f) { memcpy(rt, rt2, sizeof(float[4])); @@ -363,8 +346,7 @@ static void do_alphaover_effect_float( static void do_alphaover_effect(const SeqRenderData *context, Sequence *UNUSED(seq), float UNUSED(timeline_frame), - float facf0, - float facf1, + float fac, ImBuf *ibuf1, ImBuf *ibuf2, ImBuf *UNUSED(ibuf3), @@ -378,7 +360,7 @@ static void do_alphaover_effect(const SeqRenderData *context, slice_get_float_buffers( context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out); - do_alphaover_effect_float(facf0, facf1, context->rectx, total_lines, rect1, rect2, rect_out); + do_alphaover_effect_float(fac, context->rectx, total_lines, rect1, rect2, rect_out); } else { unsigned char *rect1 = NULL, *rect2 = NULL, *rect_out = NULL; @@ -386,21 +368,15 @@ static void do_alphaover_effect(const SeqRenderData *context, slice_get_byte_buffers( context, ibuf1, ibuf2, NULL, out, start_line, &rect1, &rect2, NULL, &rect_out); - do_alphaover_effect_byte(facf0, facf1, context->rectx, total_lines, rect1, rect2, rect_out); + do_alphaover_effect_byte(fac, context->rectx, total_lines, rect1, rect2, rect_out); } } /*********************** Alpha Under *************************/ -static void do_alphaunder_effect_byte(float facf0, - float facf1, - int x, - int y, - unsigned char *rect1, - unsigned char *rect2, - unsigned char *out) +static void do_alphaunder_effect_byte( + float fac, int x, int y, unsigned char *rect1, unsigned char *rect2, unsigned char *out) { - float fac2, fac, fac4; int xo; unsigned char *cp1, *cp2, *rt; float tempc[4], rt1[4], rt2[4]; @@ -410,9 +386,6 @@ static void do_alphaunder_effect_byte(float facf0, cp2 = rect2; rt = out; - fac2 = facf0; - fac4 = facf1; - while (y--) { x = xo; while (x--) { @@ -423,23 +396,23 @@ static void do_alphaunder_effect_byte(float facf0, /* this complex optimization is because the * 'skybuf' can be crossed in */ - if (rt2[3] <= 0.0f && fac2 >= 1.0f) { + if (rt2[3] <= 0.0f && fac >= 1.0f) { *((unsigned int *)rt) = *((unsigned int *)cp1); } else if (rt2[3] >= 1.0f) { *((unsigned int *)rt) = *((unsigned int *)cp2); } else { - fac = (fac2 * (1.0f - rt2[3])); + float temp_fac = (fac * (1.0f - rt2[3])); if (fac <= 0) { *((unsigned int *)rt) = *((unsigned int *)cp2); } else { - tempc[0] = (fac * rt1[0] + rt2[0]); - tempc[1] = (fac * rt1[1] + rt2[1]); - tempc[2] = (fac * rt1[2] + rt2[2]); - tempc[3] = (fac * rt1[3] + rt2[3]); + tempc[0] = (temp_fac * rt1[0] + rt2[0]); + tempc[1] = (temp_fac * rt1[1] + rt2[1]); + tempc[2] = (temp_fac * rt1[2] + rt2[2]); + tempc[3] = (temp_fac * rt1[3] + rt2[3]); premul_float_to_straight_uchar(rt, tempc); } @@ -459,23 +432,23 @@ static void do_alphaunder_effect_byte(float facf0, straight_uchar_to_premul_float(rt1, cp1); straight_uchar_to_premul_float(rt2, cp2); - if (rt2[3] <= 0.0f && fac4 >= 1.0f) { + if (rt2[3] <= 0.0f && fac >= 1.0f) { *((unsigned int *)rt) = *((unsigned int *)cp1); } else if (rt2[3] >= 1.0f) { *((unsigned int *)rt) = *((unsigned int *)cp2); } else { - fac = (fac4 * (1.0f - rt2[3])); + float temp_fac = (fac * (1.0f - rt2[3])); if (fac <= 0) { *((unsigned int *)rt) = *((unsigned int *)cp2); } else { - tempc[0] = (fac * rt1[0] + rt2[0]); - tempc[1] = (fac * rt1[1] + rt2[1]); - tempc[2] = (fac * rt1[2] + rt2[2]); - tempc[3] = (fac * rt1[3] + rt2[3]); + tempc[0] = (temp_fac * rt1[0] + rt2[0]); + tempc[1] = (temp_fac * rt1[1] + rt2[1]); + tempc[2] = (temp_fac * rt1[2] + rt2[2]); + tempc[3] = (temp_fac * rt1[3] + rt2[3]); premul_float_to_straight_uchar(rt, tempc); } @@ -488,9 +461,8 @@ static void do_alphaunder_effect_byte(float facf0, } static void do_alphaunder_effect_float( - float facf0, float facf1, int x, int y, float *rect1, float *rect2, float *out) + float fac, int x, int y, float *rect1, float *rect2, float *out) { - float fac2, fac, fac4; int xo; float *rt1, *rt2, *rt; @@ -499,9 +471,6 @@ static void do_alphaunder_effect_float( rt2 = rect2; rt = out; - fac2 = facf0; - fac4 = facf1; - while (y--) { x = xo; while (x--) { @@ -510,23 +479,23 @@ static void do_alphaunder_effect_float( /* this complex optimization is because the * 'skybuf' can be crossed in */ - if (rt2[3] <= 0 && fac2 >= 1.0f) { + if (rt2[3] <= 0 && fac >= 1.0f) { memcpy(rt, rt1, sizeof(float[4])); } else if (rt2[3] >= 1.0f) { memcpy(rt, rt2, sizeof(float[4])); } else { - fac = fac2 * (1.0f - rt2[3]); + float temp_fac = fac * (1.0f - rt2[3]); if (fac == 0) { memcpy(rt, rt2, sizeof(float[4])); } else { - rt[0] = fac * rt1[0] @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs