diff --git a/src/examples/images/test.tvg b/src/examples/images/test.tvg index baec10b8..9351ba55 100644 Binary files a/src/examples/images/test.tvg and b/src/examples/images/test.tvg differ diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index 2192e315..954b1e44 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -607,7 +607,7 @@ static void _updateRoundedCorner(LottieRoundedCorner* roundedCorner, int32_t fra static void _updateRepeater(LottieRepeater* repeater, int32_t frameNo, RenderContext& ctx) { - ctx.repeater.cnt = repeater->copies(frameNo); + ctx.repeater.cnt = static_cast(repeater->copies(frameNo)); ctx.repeater.offset = repeater->offset(frameNo); ctx.repeater.position = repeater->position(frameNo); ctx.repeater.anchor = repeater->anchor(frameNo); @@ -788,8 +788,12 @@ static void _updateLayer(LottieLayer* root, LottieLayer* layer, int32_t frameNo) //FIXME: Ignore opacity when Null layer? if (layer->type != LottieLayer::Null) { + if (layer->cache.opacity == 0 && !layer->matteSrc) { + delete(layer->scene); + layer->scene = nullptr; + return; + } layer->scene->opacity(layer->cache.opacity); - if (layer->cache.opacity == 0) return; } layer->scene->transform(layer->cache.matrix); diff --git a/test/images/tag.tvg b/test/images/tag.tvg index 0ce8f0a6..6f916e82 100644 Binary files a/test/images/tag.tvg and b/test/images/tag.tvg differ