From e9410f93153967f1fcf3858c45915a9fe1a06ef5 Mon Sep 17 00:00:00 2001 From: Isaac <> Date: Thu, 16 May 2024 19:38:11 +0400 Subject: [PATCH] Refactoring --- .../PublicHeaders/LottieCpp/ShapeAttributes.h | 6 ++--- .../CompLayers/ShapeCompositionLayer.cpp | 26 +++++++------------ 2 files changed, 12 insertions(+), 20 deletions(-) diff --git a/submodules/TelegramUI/Components/LottieCpp/PublicHeaders/LottieCpp/ShapeAttributes.h b/submodules/TelegramUI/Components/LottieCpp/PublicHeaders/LottieCpp/ShapeAttributes.h index 2b707061a5..c6f11afa4c 100644 --- a/submodules/TelegramUI/Components/LottieCpp/PublicHeaders/LottieCpp/ShapeAttributes.h +++ b/submodules/TelegramUI/Components/LottieCpp/PublicHeaders/LottieCpp/ShapeAttributes.h @@ -41,14 +41,12 @@ struct TrimParams { double end = 0.0; double offset = 0.0; TrimType type = TrimType::Simultaneously; - size_t subItemLimit = 0; - TrimParams(double start_, double end_, double offset_, TrimType type_, size_t subItemLimit_) : + TrimParams(double start_, double end_, double offset_, TrimType type_) : start(start_), end(end_), offset(offset_), - type(type_), - subItemLimit(subItemLimit_) { + type(type_) { } }; diff --git a/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Private/MainThread/LayerContainers/CompLayers/ShapeCompositionLayer.cpp b/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Private/MainThread/LayerContainers/CompLayers/ShapeCompositionLayer.cpp index e269f7f74c..64f40338d4 100644 --- a/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Private/MainThread/LayerContainers/CompLayers/ShapeCompositionLayer.cpp +++ b/submodules/TelegramUI/Components/LottieCpp/Sources/Lottie/Private/MainThread/LayerContainers/CompLayers/ShapeCompositionLayer.cpp @@ -439,9 +439,8 @@ public: class TrimParamsOutput { public: - TrimParamsOutput(Trim const &trim, size_t subItemLimit) : + TrimParamsOutput(Trim const &trim) : type(trim.trimType), - subItemLimit(subItemLimit), start(trim.start.keyframes), end(trim.end.keyframes), offset(trim.offset.keyframes) { @@ -469,12 +468,11 @@ public: double resolvedOffset = fmod(offsetValue, 360.0) / 360.0; - return TrimParams(resolvedStart, resolvedEnd, resolvedOffset, type, subItemLimit); + return TrimParams(resolvedStart, resolvedEnd, resolvedOffset, type); } private: TrimType type; - size_t subItemLimit = 0; KeyframeInterpolator start; double startValue = 0.0; @@ -974,7 +972,7 @@ public: } void addTrim(Trim const &trim) { - trims.push_back(std::make_shared(trim, subItems.size())); + trims.push_back(std::make_shared(trim)); } public: @@ -1045,7 +1043,7 @@ public: } } - void updateChildren(std::optional parentTrim) { + void updateContents(std::optional parentTrim) { CATransform3D containerTransform = CATransform3D::identity(); double containerOpacity = 1.0; if (transform) { @@ -1108,14 +1106,12 @@ public: for (int i = (int)subItems.size() - 1; i >= 0; i--) { std::optional childTrim = parentTrim; for (const auto &trim : trims) { - if (i < (int)trim->trimParams().subItemLimit) { - //TODO:allow combination - //assert(!parentTrim); - childTrim = trim->trimParams(); - } + //TODO:allow combination + //assert(!parentTrim); + childTrim = trim->trimParams(); } - subItems[i]->updateChildren(childTrim); + subItems[i]->updateContents(childTrim); } } } @@ -1221,8 +1217,6 @@ private: itemTree->subItems.clear(); itemTree->addSubItem(groupItem); - //itemTree->addTrim(trim); - break; } case ShapeType::Transform: { @@ -1298,7 +1292,7 @@ void ShapeCompositionLayer::displayContentsWithFrame(double frame, bool forceUpd _frameTime = frame; _frameTimeInitialized = true; _contentTree->itemTree->updateFrame(_frameTime); - _contentTree->itemTree->updateChildren(std::nullopt); + _contentTree->itemTree->updateContents(std::nullopt); } std::shared_ptr ShapeCompositionLayer::renderTreeNode() { @@ -1306,7 +1300,7 @@ std::shared_ptr ShapeCompositionLayer::renderTreeNode() { _frameTime = 0.0; _frameTimeInitialized = true; _contentTree->itemTree->updateFrame(_frameTime); - _contentTree->itemTree->updateChildren(std::nullopt); + _contentTree->itemTree->updateContents(std::nullopt); } if (!_renderTreeNode) {