X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fupdate%2Fnodes%2Fnode.h;h=d1fa90bdce8edbd8497faa5e49fa9788b4c6667b;hb=1cfe34df1874bde90b571a998d21709b2bdea29e;hp=6f6e68164e4c160780049aa7400f1b7ff0d1a04d;hpb=789bfce68a6dd23c6ee8178ed7db91de485524b3;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/update/nodes/node.h b/dali/internal/update/nodes/node.h index 6f6e681..d1fa90b 100644 --- a/dali/internal/update/nodes/node.h +++ b/dali/internal/update/nodes/node.h @@ -122,13 +122,13 @@ public: * @param[in] updated The updated flag * (used for partial rendering to mark an animating sub tree for example). */ - void SetUpdated(bool updated) override + void SetUpdatedTree(bool updated) { mUpdated = updated; for(Node* child : mChildren) { - child->SetUpdated(updated); + child->SetUpdatedTree(updated); } } @@ -725,6 +725,16 @@ public: return mDrawMode; } + void SetTransparent(bool transparent) + { + mTransparent = transparent; + } + + bool IsTransparent() const + { + return mTransparent; + } + /* * Returns the transform id of the node * @return The transform component id of the node @@ -954,6 +964,7 @@ protected: bool mIsRoot : 1; ///< True if the node cannot have a parent bool mIsLayer : 1; ///< True if the node is a layer bool mPositionUsesAnchorPoint : 1; ///< True if the node should use the anchor-point when calculating the position + bool mTransparent : 1; ///< True if this node is transparent. This value do not affect children. // Changes scope, should be at end of class DALI_LOG_OBJECT_STRING_DECLARATION; @@ -1038,6 +1049,17 @@ inline void SetDrawModeMessage(EventThreadServices& eventThreadServices, const N new(slot) LocalType(&node, &Node::SetDrawMode, drawMode); } +inline void SetTransparentMessage(EventThreadServices& eventThreadServices, const Node& node, bool transparent) +{ + 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::SetTransparent, transparent); +} + inline void DetachRendererMessage(EventThreadServices& eventThreadServices, const Node& node, const Renderer& renderer) { using LocalType = MessageValue1;