Fix #147372: Transparency does not work with VSE compositor modifier

If a VSE compositor modifier is used to do keying or introduce an alpha
somehow to the image, the alpha is not used when blending. This is
because the VSE evaluator assumes all modifiers except Mask could not
introduce an alpha channel. So we need to extend the check to also make
an exception for the compositor modifier.

Pull Request: https://projects.blender.org/blender/blender/pulls/147456
This commit is contained in:
Omar Emara
2025-10-07 08:20:16 +02:00
committed by Omar Emara
parent ad04c9dfdf
commit 1a9a99036e

View File

@@ -1831,8 +1831,11 @@ static bool is_opaque_alpha_over(const Strip *strip)
return false;
}
LISTBASE_FOREACH (StripModifierData *, smd, &strip->modifiers) {
/* Assume result is not opaque if there is an enabled Mask modifier. */
if ((smd->flag & STRIP_MODIFIER_FLAG_MUTE) == 0 && smd->type == eSeqModifierType_Mask) {
/* Assume result is not opaque if there is an enabled Mask or Compositor modifiers, which could
* introduce alpha. */
if ((smd->flag & STRIP_MODIFIER_FLAG_MUTE) == 0 &&
ELEM(smd->type, eSeqModifierType_Mask, eSeqModifierType_Compositor))
{
return false;
}
}