[Tizen] Skip rendering before the first renderer is added to node
[platform/core/uifw/dali-core.git] / dali / internal / update / manager / update-manager.h
index 29d0e0f..a34cdb6 100644 (file)
@@ -333,6 +333,12 @@ public:
    */
   void RemoveRenderer(Renderer* renderer);
 
+  /**
+   * Attach a renderer to node
+   * @param renderer to attach
+   */
+  void AttachRenderer(Node* node, Renderer* renderer);
+
   // Gestures
 
   /**
@@ -1099,6 +1105,16 @@ inline void RemoveRendererMessage(UpdateManager& manager, const Renderer& object
   new(slot) LocalType(&manager, &UpdateManager::RemoveRenderer, const_cast<Renderer*>(&object));
 }
 
+inline void AttachRendererMessage(UpdateManager& manager, const Node& node, const Renderer& renderer)
+{
+  using LocalType = MessageValue2<UpdateManager, Node*, Renderer*>;
+
+  // 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*>(&node), const_cast<Renderer*>(&renderer));
+}
+
 // The render thread can safely change the Shader
 inline void AddTextureSetMessage(UpdateManager& manager, OwnerPointer<TextureSet>& textureSet)
 {