diff --git a/frameworks/core/interfaces/native/ani/common_ani_modifier.cpp b/frameworks/core/interfaces/native/ani/common_ani_modifier.cpp index c2f4e848c4f2d09bee104f972a02f6d7892c1fe3..825978ffbea9d31c23fa5824293783a04273472e 100644 --- a/frameworks/core/interfaces/native/ani/common_ani_modifier.cpp +++ b/frameworks/core/interfaces/native/ani/common_ani_modifier.cpp @@ -225,7 +225,7 @@ ani_long CreateRenderNodePeerWithNodePtr(ani_long ptr) { FrameNode* node = reinterpret_cast(ptr); auto nodePtr = AceType::Claim(node); - auto peerPtr = RenderNodePeer::Create(nodePtr); + auto peerPtr = PeerUtils::CreatePeer(nodePtr); ani_long ret = reinterpret_cast(peerPtr); return ret; } diff --git a/frameworks/core/interfaces/native/implementation/frame_node_peer_impl.h b/frameworks/core/interfaces/native/implementation/frame_node_peer_impl.h index 7f33e4fc2fd2bbb94b923b5e8c7ea158942baa4d..9262d8590a6c294ced463e6c08b00fbc0ced6b5b 100644 --- a/frameworks/core/interfaces/native/implementation/frame_node_peer_impl.h +++ b/frameworks/core/interfaces/native/implementation/frame_node_peer_impl.h @@ -95,7 +95,7 @@ struct FrameNodePeer { RenderNodePeer* GetRenderNodePeer() { - return RenderNodePeer::Create(GetFrameNodeByPeer(this)); + return OHOS::Ace::NG::PeerUtils::CreatePeer(GetFrameNodeByPeer(this)); } }; #endif // FOUNDATION_ARKUI_ACE_ENGINE_FRAMEWORKS_CORE_INTERFACES_NATIVE_IMPL_FRAME_NODE_PEER_IMPL_H diff --git a/frameworks/core/interfaces/native/implementation/render_node_accessor.cpp b/frameworks/core/interfaces/native/implementation/render_node_accessor.cpp index f8fa0411ccd57f4e9f53ba2f57d4cdb13755c850..c191566032b97e9a53a8cfeefc38e621b98e29fb 100644 --- a/frameworks/core/interfaces/native/implementation/render_node_accessor.cpp +++ b/frameworks/core/interfaces/native/implementation/render_node_accessor.cpp @@ -31,7 +31,6 @@ namespace OHOS::Ace::NG { namespace GeneratedModifier { namespace { constexpr int32_t ARK_UNION_UNDEFINED = 1; -enum class LengthMetricsUnit : int32_t { DEFAULT = 0, PX }; DimensionUnit ConvertLengthMetricsUnitToDimensionUnit(Ark_Int32 unitValue, DimensionUnit defaultUnit) { @@ -49,14 +48,14 @@ DimensionUnit ConvertLengthMetricsUnitToDimensionUnit(Ark_Int32 unitValue, Dimen namespace RenderNodeAccessor { void DestroyPeerImpl(Ark_RenderNode peer) { - RenderNodePeer::Destroy(peer); + PeerUtils::DestroyPeer(peer); } Ark_RenderNode CtorImpl(Ark_Int32 nodeId, const DrawCallbackFunc* value) { auto frameNode = NG::FrameNode::GetOrCreateFrameNode( V2::RENDER_NODE_ETS_TAG, nodeId, []() { return AceType::MakeRefPtr(); }); frameNode->SetIsArkTsRenderNode(true); - auto renderNodePeer = RenderNodePeer::Create(frameNode); + auto renderNodePeer = PeerUtils::CreatePeer(frameNode); return renderNodePeer; } Ark_NativePointer GetFinalizerImpl() diff --git a/frameworks/core/interfaces/native/implementation/render_node_peer_impl.h b/frameworks/core/interfaces/native/implementation/render_node_peer_impl.h index 9d08618df995b2dda7f0ab3a08b77f4785dd8735..1b1ea607a6556c34212893054b30344be0f89e4c 100644 --- a/frameworks/core/interfaces/native/implementation/render_node_peer_impl.h +++ b/frameworks/core/interfaces/native/implementation/render_node_peer_impl.h @@ -15,42 +15,44 @@ #ifndef FOUNDATION_ARKUI_ACE_ENGINE_FRAMEWORKS_CORE_INTERFACES_NATIVE_IMPL_RENDER_NODE_PEER_IMPL_H #define FOUNDATION_ARKUI_ACE_ENGINE_FRAMEWORKS_CORE_INTERFACES_NATIVE_IMPL_RENDER_NODE_PEER_IMPL_H -#include "base/memory/referenced.h" -#include "core/components_ng/base/frame_node.h" #include "core/interfaces/native/generated/interface/arkoala_api_generated.h" +#include "core/components_ng/pattern/render_node/render_node_pattern.h" +#include "core/interfaces/native/utility/ace_engine_types.h" +#include "core/interfaces/native/utility/peer_utils.h" +#include "core/components_ng/base/frame_node.h" +#include "base/memory/referenced.h" -struct RenderNodePeer { +struct RenderNodePeer final { public: - RenderNodePeer() = default; - RenderNodePeer(const OHOS::Ace::RefPtr& src) : node(src) {} - ~RenderNodePeer() = default; - - static RenderNodePeer* Create(Ark_UIContext uiContext) - { - return new RenderNodePeer; - } - - static RenderNodePeer* Create(const OHOS::Ace::RefPtr& src) + OHOS::Ace::NG::LengthMetricsUnit lengthMetricsUnit{ OHOS::Ace::NG::LengthMetricsUnit::DEFAULT }; + std::optional shadowAlpha{ std::nullopt }; + std::string label = ""; + friend OHOS::Ace::NG::PeerUtils; + const OHOS::Ace::RefPtr& GetFrameNode() const { - return new RenderNodePeer(src); + return node; } - static RenderNodePeer* Create(OHOS::Ace::NG::FrameNode* src) - { - return new RenderNodePeer(OHOS::Ace::Referenced::Claim(src)); - } +protected: + OHOS::Ace::RefPtr node; - static void Destroy(RenderNodePeer* peer) + RenderNodePeer(const OHOS::Ace::RefPtr& src) + : node(src) { - delete peer; + if (node) { + node->SetIsArkTsRenderNode(true); + } } - const OHOS::Ace::RefPtr& GetFrameNode() const + RenderNodePeer(OHOS::Ace::NG::FrameNode* src) + : node(OHOS::Ace::Referenced::Claim(src)) { - return node; + if (node) { + node->SetIsArkTsRenderNode(true); + } } private: - OHOS::Ace::RefPtr node; + ~RenderNodePeer() = default; }; #endif // FOUNDATION_ARKUI_ACE_ENGINE_FRAMEWORKS_CORE_INTERFACES_NATIVE_IMPL_RENDER_NODE_PEER_IMPL_H diff --git a/frameworks/core/interfaces/native/utility/ace_engine_types.h b/frameworks/core/interfaces/native/utility/ace_engine_types.h index 0ef0c4948cb6f7c7776d3bf5c2356fb5aeadd63a..05f5c37ce6d92914f6e4f4302e5139e2c35f9354 100644 --- a/frameworks/core/interfaces/native/utility/ace_engine_types.h +++ b/frameworks/core/interfaces/native/utility/ace_engine_types.h @@ -31,6 +31,8 @@ struct KeyboardOptions { struct PathShapeOptions { std::optional commands; }; + +enum class LengthMetricsUnit : int32_t { DEFAULT = 0, PX }; } namespace OHOS::Ace::NG::Converter {