/*
- * 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.
#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)
} // 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
{
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
{
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 );
{
SetCameraMessage( GetEventThreadServices(), GetRenderTaskSceneObject(), nullptr, nullptr );
}
-
- // set the actor on exclusive container for hit testing
- mRenderTaskList.SetExclusive( this, mExclusive );
}
CameraActor* RenderTask::GetCameraActor() const
switch ( index )
{
+
case Dali::RenderTask::Property::VIEWPORT_POSITION:
{
value = mViewportPosition;
switch ( index )
{
+
case Dali::RenderTask::Property::VIEWPORT_POSITION:
{
value = GetCurrentViewportPosition();
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 ),