[Tizen] Revert "Support multiple window rendering"
[platform/core/uifw/dali-core.git] / dali / internal / event / render-tasks / render-task-impl.cpp
index aeec93f..14bc16b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -32,6 +32,7 @@
 #include <dali/internal/event/common/projection.h>
 #include <dali/internal/event/images/frame-buffer-image-impl.h>
 #include <dali/internal/update/nodes/node.h>
+#include <dali/internal/event/render-tasks/render-task-list-impl.h>
 #include <dali/internal/update/render-tasks/scene-graph-render-task.h>
 
 #if defined(DEBUG_ENABLED)
@@ -70,17 +71,14 @@ SignalConnectorType signalConnector1( mType, SIGNAL_FINISHED, &RenderTask::DoCon
 
 } // Unnamed namespace
 
-RenderTaskPtr RenderTask::New( Actor* sourceActor, CameraActor* cameraActor, RenderTaskList& renderTaskList )
+RenderTaskPtr RenderTask::New( Actor* sourceActor, CameraActor* cameraActor, SceneGraph::RenderTaskList& parentSceneObject )
 {
   // create scene object first so it's guaranteed to exist for the event side
   auto sceneObject = SceneGraph::RenderTask::New();
-
+  OwnerPointer< SceneGraph::RenderTask > transferOwnership( sceneObject );
   // pass the pointer to base for message passing
-  RenderTaskPtr task( new RenderTask( sceneObject, renderTaskList ) );
-
+  RenderTaskPtr task( new RenderTask( sceneObject ) );
   // transfer scene object ownership to update manager
-  const SceneGraph::RenderTaskList& parentSceneObject = renderTaskList.GetSceneObject();
-  OwnerPointer< SceneGraph::RenderTask > transferOwnership( sceneObject );
   AddTaskMessage( task->GetEventThreadServices(), parentSceneObject, transferOwnership );
 
   // Set the default source & camera actors
@@ -102,9 +100,12 @@ void RenderTask::SetSourceActor( Actor* actor )
   {
     SetSourceNodeMessage( GetEventThreadServices(), GetRenderTaskSceneObject(), nullptr );
   }
-
   // set the actor on exclusive container for hit testing
-  mRenderTaskList.SetExclusive( this, mExclusive );
+  const Stage* stage = Stage::GetCurrent();
+  if ( stage )
+  {
+    stage->GetRenderTaskList().SetExclusive( this, mExclusive );
+  }
 }
 
 Actor* RenderTask::GetSourceActor() const
@@ -118,7 +119,11 @@ void RenderTask::SetExclusive( bool exclusive )
   {
     mExclusive = exclusive;
 
-    mRenderTaskList.SetExclusive( this, exclusive );
+    const Stage* stage = Stage::GetCurrent();
+    if ( stage )
+    {
+      stage->GetRenderTaskList().SetExclusive( this, exclusive );
+    }
 
     // scene object is being used in a separate thread; queue a message to set the value
     SetExclusiveMessage( GetEventThreadServices(), GetRenderTaskSceneObject(), mExclusive );
@@ -151,9 +156,6 @@ void RenderTask::SetCameraActor( CameraActor* cameraActor )
   {
     SetCameraMessage( GetEventThreadServices(), GetRenderTaskSceneObject(), nullptr, nullptr );
   }
-
-  // set the actor on exclusive container for hit testing
-  mRenderTaskList.SetExclusive( this, mExclusive );
 }
 
 CameraActor* RenderTask::GetCameraActor() const
@@ -519,6 +521,7 @@ Property::Value RenderTask::GetDefaultProperty(Property::Index index) const
 
   switch ( index )
   {
+
     case Dali::RenderTask::Property::VIEWPORT_POSITION:
     {
       value = mViewportPosition;
@@ -556,6 +559,7 @@ Property::Value RenderTask::GetDefaultPropertyCurrentValue( Property::Index inde
 
   switch ( index )
   {
+
     case Dali::RenderTask::Property::VIEWPORT_POSITION:
     {
       value = GetCurrentViewportPosition();
@@ -743,12 +747,11 @@ bool RenderTask::DoConnectSignal( BaseObject* object, ConnectionTrackerInterface
   return connected;
 }
 
-RenderTask::RenderTask( const SceneGraph::RenderTask* sceneObject, RenderTaskList& renderTaskList )
+RenderTask::RenderTask( const SceneGraph::RenderTask* sceneObject )
 : Object( sceneObject ),
   mSourceActor( nullptr ),
   mCameraActor( nullptr ),
   mInputMappingActor(),
-  mRenderTaskList( renderTaskList ),
   mClearColor( Dali::RenderTask::DEFAULT_CLEAR_COLOR ),
   mViewportPosition( Vector2::ZERO ),
   mViewportSize( Vector2::ZERO ),