diff --git a/src/loaders/lottie/tvgLottieBuilder.cpp b/src/loaders/lottie/tvgLottieBuilder.cpp index b2ebc9bd..0ee3412f 100644 --- a/src/loaders/lottie/tvgLottieBuilder.cpp +++ b/src/loaders/lottie/tvgLottieBuilder.cpp @@ -682,7 +682,7 @@ static void _updateLayer(LottieLayer* root, LottieLayer* layer, int32_t frameNo) _updateMaskings(layer, rFrameNo); //clip the layer viewport - if (layer->clipself) { + if (layer->refId && layer->w > 0 && layer->h > 0) { //TODO: remove the intermediate scene.... auto cscene = Scene::gen(); auto clipper = Shape::gen(); @@ -732,24 +732,6 @@ static void _bulidHierarchy(LottieGroup* parent, LottieLayer* child) } -static void _buildSize(LottieComposition* comp, LottieLayer* layer) -{ - //should not clip? - if (layer->refId) return; - - //default size is 0x0 - if (layer->w == 0 || layer->h == 0) return; - - //compact layer size - if (layer->w > comp->w) layer->w = comp->w; - if (layer->h > comp->h) layer->h = comp->h; - - if (layer->w < comp->w || layer->h < comp->h) { - layer->clipself = true; - } -} - - static bool _buildPrecomp(LottieComposition* comp, LottieGroup* parent) { if (parent->children.count == 0) return false; @@ -757,9 +739,6 @@ static bool _buildPrecomp(LottieComposition* comp, LottieGroup* parent) for (auto c = parent->children.data; c < parent->children.end(); ++c) { auto child = static_cast(*c); - //compact layer size - _buildSize(comp, child); - //attach the referencing layer. if (child->refId) _buildReference(comp, child); diff --git a/src/loaders/lottie/tvgLottieModel.h b/src/loaders/lottie/tvgLottieModel.h index 2d69e2ec..7a764dc5 100644 --- a/src/loaders/lottie/tvgLottieModel.h +++ b/src/loaders/lottie/tvgLottieModel.h @@ -435,7 +435,6 @@ struct LottieLayer : LottieGroup Type type = Null; bool autoOrient = false; bool roundedCorner = false; - bool clipself = false; //clip the layer viewport bool matteSrc = false; };