lottie: Fixed a regression in masking logic

The scene tree should be arranged prior to appending the masking.
This was caused by 838785d75a
This commit is contained in:
Hermet Park 2024-12-26 18:01:37 +09:00 committed by Mira Grudzinska
parent b59c7a0bee
commit e0588d39f0

View file

@ -1229,6 +1229,13 @@ void LottieBuilder::updateMaskings(LottieLayer* layer, float frameNo)
{ {
if (layer->masks.count == 0) return; if (layer->masks.count == 0) return;
//Introduce an intermediate scene for embracing the matte + masking
if (layer->matteTarget) {
auto scene = Scene::gen().release();
scene->push(cast(layer->scene));
layer->scene = scene;
}
Shape* pShape = nullptr; Shape* pShape = nullptr;
CompositeMethod pMethod; CompositeMethod pMethod;
uint8_t pOpacity; uint8_t pOpacity;
@ -1282,13 +1289,6 @@ void LottieBuilder::updateMaskings(LottieLayer* layer, float frameNo)
pOpacity = opacity; pOpacity = opacity;
pMethod = method; pMethod = method;
} }
//Introduce an intermediate scene for embracing the matte + masking
if (layer->matteTarget) {
auto scene = Scene::gen().release();
scene->push(cast(layer->scene));
layer->scene = scene;
}
} }