+ virtual void DoSetOffScene(Actor& actor);
+
+ /**
+ * @brief Called by DoAction() allowing sub classes to do the given action.
+ *
+ * @param[in] actionId The action to perform
+ * @param[in] attributes The list of attributes for the action. ( optional for this data structure to have content )
+ */
+ virtual void OnDoAction(const Property::Index actionId, const Property::Value& attributes);
+
+ /**
+ * @brief Update the shader when some properties are changed.
+ */
+ virtual void UpdateShader()
+ {
+ }
+
+ /**
+ * @brief Generate a shader by the current properties from each sub classes's own shader-generate logic.
+ * @param[in] factoryCache The visual factory cache to store the generated shader.
+ * @return If the function defined, Generated shader by the current properties. Else, empty shader.
+ */
+ virtual Dali::Shader GenerateShader() const
+ {
+ return Dali::Shader();
+ }
+
+ /**
+ * @brief Called by GetPropertyObject() allowing sub classes to respond to the GetPropertyObject event
+ * @note The derived class is required to register the given property.
+ * @param[in] key The key of the visual's property.
+ * @return The Property object
+ */
+ virtual Dali::Property OnGetPropertyObject(Dali::Property::Key key)
+ {
+ Handle handle;
+ return Dali::Property(handle, Property::INVALID_INDEX);
+ }