From 1b3293e68500cc2bb6a225baaa6309e86b1d7b10 Mon Sep 17 00:00:00 2001 From: wangxiuxiu96 Date: Mon, 30 Jun 2025 22:54:46 +0800 Subject: [PATCH] dump Signed-off-by: wangxiuxiu96 Change-Id: Ica7e4a4932c221e38bbf05f65780d6c228195495 Signed-off-by: wangxiuxiu96 --- .../render/adapter/rosen_render_context.cpp | 82 +++++++++++++++++++ .../render/adapter/rosen_render_context.h | 3 +- 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/frameworks/core/components_ng/render/adapter/rosen_render_context.cpp b/frameworks/core/components_ng/render/adapter/rosen_render_context.cpp index a8e336351c0..e9ad7e2b3fe 100755 --- a/frameworks/core/components_ng/render/adapter/rosen_render_context.cpp +++ b/frameworks/core/components_ng/render/adapter/rosen_render_context.cpp @@ -1293,6 +1293,61 @@ void RosenRenderContext::OnLightUpEffectUpdate(double radio) RequestNextFrame(); } +std::map RosenRenderContext::splitParticleConfig(const std::string& config) +{ + std::map result; + + std::vector keys = { + "emitter", "colorOption", "opacityOption", + "scaleOption", "velocityOption", "accelerationOption", "spinOption" + }; + + std::vector keyPrefixes = { + "emitter: ", "colorOption: ", "opacityOption: ", + "scaleOption: ", "velocityOption: ", "accelerationOption: ", "spinOption: " + }; + + size_t currentPos = 0; + size_t configLength = config.length(); + + for (size_t i = 0; i < keys.size(); i++) { + const std::string& key = keys[i]; + const std::string& prefix = keyPrefixes[i]; + + size_t keyStart = config.find(prefix, currentPos); + if (keyStart == std::string::npos) { + result[key] = ""; + continue; + } + + keyStart += prefix.length(); + if (keyStart + 1 < configLength && config[keyStart] == '[') { + keyStart++; + } + + size_t nextKeyStart = std::string::npos; + if (i < keys.size() - 1) { + nextKeyStart = config.find(keyPrefixes[i + 1], keyStart); + } + + size_t keyEnd = (nextKeyStart != std::string::npos) ? nextKeyStart : configLength; + + if (keyEnd > keyStart + 1 && config[keyEnd - 1] == ']') { + keyEnd--; + } + + if (keyEnd > keyStart) { + result[key] = config.substr(keyStart, keyEnd - keyStart); + } else { + result[key] = ""; + } + + currentPos = keyEnd; + } + + return result; +} +s void RosenRenderContext::OnParticleOptionArrayUpdate(const std::list& optionList) { CHECK_NULL_VOID(rsNode_); @@ -1319,6 +1374,7 @@ void RosenRenderContext::OnParticleOptionArrayUpdate(const std::listparticleAnimationPlaying_ = false; }; rsNode_->SetParticleParams(particleParams, finishCallback); + optionList_ = optionList; RequestNextFrame(); } @@ -6233,6 +6289,32 @@ void RosenRenderContext::DumpInfo() std::string("transitionCnt:").append(std::to_string(disappearingTransitionCount_)) ); } + + for (auto option : optionList_) { + std::string str = option.ToString(); + auto parts = splitParticleConfig(str); + DumpLog::GetInstance().AddDesc( + std::string("emitter:").append(parts["emitter"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("colorOption:").append(parts["colorOption"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("opacityOption:").append(parts["opacityOption"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("scaleOption:").append(parts["scaleOption"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("velocityOption:").append(parts["velocityOption"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("accelerationOption:").append(parts["accelerationOption"]) + ); + DumpLog::GetInstance().AddDesc( + std::string("spinOption:").append(parts["spinOption"]) + ); + } } void RosenRenderContext::DumpAdvanceInfo() diff --git a/frameworks/core/components_ng/render/adapter/rosen_render_context.h b/frameworks/core/components_ng/render/adapter/rosen_render_context.h index fed348e1634..c9fca314102 100755 --- a/frameworks/core/components_ng/render/adapter/rosen_render_context.h +++ b/frameworks/core/components_ng/render/adapter/rosen_render_context.h @@ -533,7 +533,7 @@ public: std::vector GetRenderNodePropertyValue(AnimationPropertyType property) override; void SyncRSPropertyToRenderContext(AnimationPropertyType property) override; void RemoveFromTree() override; - + std::map splitParticleConfig(const std::string& config); protected: void OnBackgroundImageUpdate(const ImageSourceInfo& src) override; void OnBackgroundImageRepeatUpdate(const ImageRepeat& imageRepeat) override; @@ -918,6 +918,7 @@ protected: private: void ModifyCustomBackground(); + std::list optionList_; }; } // namespace OHOS::Ace::NG -- Gitee