From 76f738bbe3227f87d5c6952875b162b63de6f91c Mon Sep 17 00:00:00 2001 From: Joogab Yun Date: Tue, 20 Apr 2021 10:01:50 +0900 Subject: [PATCH] Revert "[Tizen] Skip rendering before the first renderer is added to node" This reverts commit 70315a419e613279ae51d69092b210c18e30c8aa. --- dali/internal/event/actors/actor-impl.cpp | 2 +- dali/internal/update/manager/update-manager.cpp | 7 +------ dali/internal/update/manager/update-manager.h | 16 ---------------- dali/internal/update/nodes/node.h | 11 +++++++++++ 4 files changed, 13 insertions(+), 23 deletions(-) diff --git a/dali/internal/event/actors/actor-impl.cpp b/dali/internal/event/actors/actor-impl.cpp index 408c273..d499716 100644 --- a/dali/internal/event/actors/actor-impl.cpp +++ b/dali/internal/event/actors/actor-impl.cpp @@ -1038,7 +1038,7 @@ uint32_t Actor::AddRenderer(Renderer& renderer) uint32_t index = static_cast(mRenderers->size()); // 4,294,967,295 renderers per actor RendererPtr rendererPtr = RendererPtr(&renderer); mRenderers->push_back(rendererPtr); - AttachRendererMessage(GetEventThreadServices().GetUpdateManager(), GetNode(), renderer.GetRendererSceneObject()); + AttachRendererMessage(GetEventThreadServices(), GetNode(), renderer.GetRendererSceneObject()); return index; } diff --git a/dali/internal/update/manager/update-manager.cpp b/dali/internal/update/manager/update-manager.cpp index abad331..b082a9c 100644 --- a/dali/internal/update/manager/update-manager.cpp +++ b/dali/internal/update/manager/update-manager.cpp @@ -604,6 +604,7 @@ void UpdateManager::AddRenderer(OwnerPointer& renderer) renderer->ConnectToSceneGraph(*mImpl->sceneController, mSceneGraphBuffers.GetUpdateBufferIndex()); mImpl->renderers.PushBack(renderer.Release()); + mImpl->renderersAdded = true; } void UpdateManager::RemoveRenderer(Renderer* renderer) @@ -616,12 +617,6 @@ void UpdateManager::RemoveRenderer(Renderer* renderer) renderer->DisconnectFromSceneGraph(*mImpl->sceneController, mSceneGraphBuffers.GetUpdateBufferIndex()); } -void UpdateManager::AttachRenderer(Node* node, Renderer* renderer) -{ - node->AddRenderer(renderer); - mImpl->renderersAdded = true; -} - void UpdateManager::SetPanGestureProcessor(PanGesture* panGestureProcessor) { DALI_ASSERT_DEBUG(NULL != panGestureProcessor); diff --git a/dali/internal/update/manager/update-manager.h b/dali/internal/update/manager/update-manager.h index a34cdb6..29d0e0f 100644 --- a/dali/internal/update/manager/update-manager.h +++ b/dali/internal/update/manager/update-manager.h @@ -333,12 +333,6 @@ public: */ void RemoveRenderer(Renderer* renderer); - /** - * Attach a renderer to node - * @param renderer to attach - */ - void AttachRenderer(Node* node, Renderer* renderer); - // Gestures /** @@ -1105,16 +1099,6 @@ inline void RemoveRendererMessage(UpdateManager& manager, const Renderer& object new(slot) LocalType(&manager, &UpdateManager::RemoveRenderer, const_cast(&object)); } -inline void AttachRendererMessage(UpdateManager& manager, const Node& node, const Renderer& renderer) -{ - using LocalType = MessageValue2; - - // Reserve some memory inside the message queue - uint32_t* slot = manager.ReserveMessageSlot(sizeof(LocalType)); - // Construct message in the message queue memory; note that delete should not be called on the return value - new(slot) LocalType(&manager, &UpdateManager::AttachRenderer, const_cast(&node), const_cast(&renderer)); -} - // The render thread can safely change the Shader inline void AddTextureSetMessage(UpdateManager& manager, OwnerPointer& textureSet) { diff --git a/dali/internal/update/nodes/node.h b/dali/internal/update/nodes/node.h index 6f6e681..6026c00 100644 --- a/dali/internal/update/nodes/node.h +++ b/dali/internal/update/nodes/node.h @@ -1038,6 +1038,17 @@ inline void SetDrawModeMessage(EventThreadServices& eventThreadServices, const N new(slot) LocalType(&node, &Node::SetDrawMode, drawMode); } +inline void AttachRendererMessage(EventThreadServices& eventThreadServices, const Node& node, const Renderer& renderer) +{ + using LocalType = MessageValue1; + + // Reserve some memory inside the message queue + uint32_t* slot = eventThreadServices.ReserveMessageSlot(sizeof(LocalType)); + + // Construct message in the message queue memory; note that delete should not be called on the return value + new(slot) LocalType(&node, &Node::AddRenderer, const_cast(&renderer)); +} + inline void DetachRendererMessage(EventThreadServices& eventThreadServices, const Node& node, const Renderer& renderer) { using LocalType = MessageValue1; -- 2.7.4