DALi Version 2.2.14
[platform/core/uifw/dali-core.git] / dali / internal / event / rendering / renderer-impl.cpp
index fc9b85a..ace6e68 100644 (file)
@@ -80,6 +80,7 @@ DALI_ENUM_TO_STRING_TABLE_BEGIN(BLEND_MODE)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, AUTO)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, ON)
   DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, ON_WITHOUT_CULL)
+  DALI_ENUM_TO_STRING_WITH_SCOPE(BlendMode, USE_ACTOR_OPACITY)
 DALI_ENUM_TO_STRING_TABLE_END(BLEND_MODE)
 
 DALI_ENUM_TO_STRING_TABLE_BEGIN(BLEND_EQUATION)
@@ -193,14 +194,14 @@ TypeRegistration mType(typeid(Dali::Renderer), typeid(Dali::Handle), Create, Ren
 RendererPtr Renderer::New()
 {
   // create scene object first so it's guaranteed to exist for the event side
-  auto                               sceneObject = SceneGraph::Renderer::New();
-  OwnerPointer<SceneGraph::Renderer> transferOwnership(sceneObject);
+  auto sceneObjectKey = SceneGraph::Renderer::NewKey();
+
   // pass the pointer to base for message passing
-  RendererPtr rendererPtr(new Renderer(sceneObject));
-  // transfer scene object ownership to update manager
+  RendererPtr rendererPtr(new Renderer(sceneObjectKey.Get()));
+
   EventThreadServices&       eventThreadServices = rendererPtr->GetEventThreadServices();
   SceneGraph::UpdateManager& updateManager       = eventThreadServices.GetUpdateManager();
-  AddRendererMessage(updateManager, transferOwnership);
+  AddRendererMessage(updateManager, sceneObjectKey);
 
   eventThreadServices.RegisterObject(rendererPtr.Get());
   return rendererPtr;
@@ -804,7 +805,7 @@ Renderer::~Renderer()
   {
     EventThreadServices&       eventThreadServices = GetEventThreadServices();
     SceneGraph::UpdateManager& updateManager       = eventThreadServices.GetUpdateManager();
-    RemoveRendererMessage(updateManager, GetRendererSceneObject());
+    RemoveRendererMessage(updateManager, SceneGraph::Renderer::GetKey(GetRendererSceneObject())); //@todo Use key throughtout
 
     eventThreadServices.UnregisterObject(this);
   }
@@ -1180,6 +1181,13 @@ const Vector4& Renderer::GetBlendColor() const
   return Color::TRANSPARENT; // GL default
 }
 
+void Renderer::SetRenderCallback(RenderCallback* callback)
+{
+  Dali::Internal::SceneGraph::SetRenderCallbackMessage(GetEventThreadServices(),
+                                                       GetRendererSceneObject(),
+                                                       callback);
+}
+
 } // namespace Internal
 
 } // namespace Dali