X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Frender-tasks%2Frender-task-impl.cpp;h=f80167ddffcebabdec4a9ef106709e01c1f8a164;hb=ef69dab91f1e3d7f0b7cb345933ef22046bf70a8;hp=196719f77008ecfec9e45fa6129e75f7f62a9256;hpb=f609671db03f3ffc068e6b835e12d176c4ebc3a8;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/render-tasks/render-task-impl.cpp b/dali/internal/event/render-tasks/render-task-impl.cpp index 196719f..f80167d 100644 --- a/dali/internal/event/render-tasks/render-task-impl.cpp +++ b/dali/internal/event/render-tasks/render-task-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -130,6 +130,14 @@ bool RenderTask::GetInputEnabled() const void RenderTask::SetCameraActor( CameraActor* cameraActor ) { + if( cameraActor ) + { + mCameraConnector.mCamera = cameraActor->GetCamera(); + } + else + { + mCameraConnector.mCamera = NULL; + } mCameraConnector.SetActor( cameraActor ); } @@ -175,6 +183,25 @@ void RenderTask::SetTargetFrameBuffer( Dali::FrameBufferImage image ) } } +void RenderTask::SetFrameBuffer( Dali::FrameBuffer frameBuffer ) +{ + if( frameBuffer ) + { + mFrameBuffer = Internal::FrameBufferPtr( &GetImplementation( frameBuffer ) ); + SetFrameBufferMessage( GetEventThreadServices(), *mSceneObject, mFrameBuffer->GetRenderObject() ); + } + else + { + mFrameBuffer.Reset(); + SetFrameBufferMessage( GetEventThreadServices(), *mSceneObject, NULL ); + } +} + +FrameBuffer* RenderTask::GetFrameBuffer() const +{ + return mFrameBuffer.Get(); +} + Dali::FrameBufferImage RenderTask::GetTargetFrameBuffer() const { return mFrameBufferImage; @@ -441,7 +468,7 @@ bool RenderTask::WorldToViewport(const Vector3 &position, float& viewportX, floa CameraActor* cam = GetCameraActor(); Vector4 pos(position); - pos.w = 1.0; + pos.w = 1.f; Vector4 viewportPosition; @@ -806,7 +833,8 @@ RenderTask::~RenderTask() RenderTask::Connector::Connector( Type type, RenderTask& renderTask ) : mType( type ), mRenderTask( renderTask ), - mActor( NULL ) + mActor( NULL ), + mCamera( NULL ) { } @@ -857,6 +885,7 @@ void RenderTask::Connector::ObjectDestroyed( Object& object ) } mActor = NULL; + mCamera = NULL; // only meaningful for the camera connector but no simple way to distinguish UpdateRenderTask(); } @@ -887,7 +916,7 @@ void RenderTask::Connector::UpdateRenderTask() } else if( CAMERA_CONNECTOR == mType ) { - SetCameraNodeMessage( mRenderTask.GetEventThreadServices(), *(mRenderTask.mSceneObject), node ); + SetCameraMessage( mRenderTask.GetEventThreadServices(), *(mRenderTask.mSceneObject), node, mCamera ); } } }