X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffilters%2Fimage-filter.cpp;h=1d786d6411f38c8be63af2cf43846b29d47c50e7;hp=80e69c267d52c88092678f83e10b013c56d03090;hb=0e1683ef848d1d877e26633609fa95e0d2ab36b5;hpb=306d2f61a1b64179e801fa8a0bb2bd7b4e9dd682 diff --git a/dali-toolkit/internal/filters/image-filter.cpp b/dali-toolkit/internal/filters/image-filter.cpp index 80e69c2..1d786d6 100644 --- a/dali-toolkit/internal/filters/image-filter.cpp +++ b/dali-toolkit/internal/filters/image-filter.cpp @@ -31,15 +31,14 @@ namespace Internal namespace { - +const float ARBITRARY_FIELD_OF_VIEW = Math::PI / 4.0f; } // namespace ImageFilter::ImageFilter() : mBackgroundColor( Vector4( 1.0f, 1.0f, 1.0f, 0.0f ) ), mTargetSize( Vector2::ZERO ), mPixelFormat( Pixel::RGBA8888 ), - mRefreshOnDemand( false ), - mDebugRender( false ) + mRefreshOnDemand( false ) { } @@ -52,14 +51,14 @@ void ImageFilter::SetRefreshOnDemand( bool onDemand ) mRefreshOnDemand = onDemand; } -void ImageFilter::SetInputImage( Image image ) +void ImageFilter::SetInputTexture( Texture texture ) { - mInputImage = image; + mInputTexture = texture; } -void ImageFilter::SetOutputImage( FrameBufferImage image ) +void ImageFilter::SetOutputFrameBuffer( FrameBuffer frameBuffer ) { - mOutputImage = image; + mOutputFrameBuffer = frameBuffer; } void ImageFilter::SetSize( const Vector2& size ) @@ -116,11 +115,28 @@ void ImageFilter::SetBackgroundColor( const Vector4& color ) mBackgroundColor = color; } -void ImageFilter::RenderDebug( bool flag ) +void ImageFilter::SetupCamera() { - mDebugRender = flag; + if( !mCameraActor ) + { + // create a camera for the render task, corresponding to its render target size + mCameraActor = CameraActor::New(mTargetSize); + mCameraActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mCameraActor.SetInvertYAxis( true ); + mRootActor.Add( mCameraActor ); + } + else + { + // place the camera for the render task, corresponding to its render target size + mCameraActor.SetFieldOfView(ARBITRARY_FIELD_OF_VIEW); + mCameraActor.SetNearClippingPlane(1.0f); + mCameraActor.SetAspectRatio(mTargetSize.width / mTargetSize.height); + mCameraActor.SetType(Dali::Camera::FREE_LOOK); // camera orientation based solely on actor + mCameraActor.SetProperty( Actor::Property::POSITION, Vector3( 0.0f, 0.0f, ( (mTargetSize.height * 0.5f) / tanf(ARBITRARY_FIELD_OF_VIEW * 0.5f) ) ) ); + } } + } // namespace Internal } // namespace Toolkit