Dali::RenderTask RenderTaskList::CreateTask() { RenderTask* taskImpl = RenderTask::New( mIsSystemLevel ); Dali::RenderTask newTask( taskImpl ); mTasks.push_back( newTask ); if ( mSceneObject ) { SceneGraph::RenderTask* sceneObject = taskImpl->CreateSceneObject(); DALI_ASSERT_DEBUG( NULL != sceneObject ); // Pass ownership to SceneGraph::RenderTaskList AddTaskMessage( mEventToUpdate, *mSceneObject, *sceneObject ); } // Set the default source & camera actors taskImpl->SetSourceActor( &mDefaults.GetDefaultRootActor() ); taskImpl->SetCameraActor( &mDefaults.GetDefaultCameraActor() ); return newTask; }
void BubbleEmitter::SetBackground( Image bgImage, const Vector3& hsvDelta ) { mBackgroundImage = bgImage; mHSVDelta = hsvDelta; ImageActor sourceActor = ImageActor::New( bgImage ); sourceActor.SetSize( mMovementArea ); sourceActor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add( sourceActor ); ShaderEffect colorAdjuster = CreateColorAdjuster( hsvDelta, true /*ignore alpha to make bubble color always*/ ); sourceActor.SetShaderEffect( colorAdjuster ); RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.CreateTask(); task.SetRefreshRate( RenderTask::REFRESH_ONCE ); task.SetSourceActor( sourceActor ); task.SetExclusive(true); task.SetCameraActor(mCameraActor); task.GetCameraActor().SetInvertYAxis(true); task.SetTargetFrameBuffer( mEffectImage ); task.FinishedSignal().Connect(this, &BubbleEmitter::OnRenderFinished); mRenderTaskRunning = true; }