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)
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;
{
EventThreadServices& eventThreadServices = GetEventThreadServices();
SceneGraph::UpdateManager& updateManager = eventThreadServices.GetUpdateManager();
- RemoveRendererMessage(updateManager, GetRendererSceneObject());
+ RemoveRendererMessage(updateManager, SceneGraph::Renderer::GetKey(GetRendererSceneObject())); //@todo Use key throughtout
eventThreadServices.UnregisterObject(this);
}
return Color::TRANSPARENT; // GL default
}
+void Renderer::SetRenderCallback(RenderCallback* callback)
+{
+ Dali::Internal::SceneGraph::SetRenderCallbackMessage(GetEventThreadServices(),
+ GetRendererSceneObject(),
+ callback);
+}
+
} // namespace Internal
} // namespace Dali