X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fclipping%2Ftext-clipper.cpp;h=11a8fc908e6646726ef75d6f827ce7f426700bfe;hb=d00a250741411c386d988e7ac34525cf94a1918e;hp=b2478e440fd2f42c0428956d45e33671bd6f7ed8;hpb=3e17d9f63dedb5d669409301f8d9a3d8c393f979;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/clipping/text-clipper.cpp b/dali-toolkit/internal/text/clipping/text-clipper.cpp index b2478e4..11a8fc9 100644 --- a/dali-toolkit/internal/text/clipping/text-clipper.cpp +++ b/dali-toolkit/internal/text/clipping/text-clipper.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. @@ -19,10 +19,9 @@ #include // EXTERNAL INCLUDES -#include #include #include -#include +#include namespace { @@ -57,9 +56,9 @@ Actor Clipper::GetRootActor() const return mOffscreenRootActor; } -ImageActor Clipper::GetImageActor() const +Actor Clipper::GetImageView() const { - return mImageActor; + return mImageView; } void Clipper::Refresh( const Vector2& size ) @@ -78,11 +77,14 @@ void Clipper::Refresh( const Vector2& size ) FrameBufferImage frameBufferImage = FrameBufferImage::New( offscreenSize.width, offscreenSize.height, Pixel::RGBA8888 ); - mImageActor.SetSize( offscreenSize ); - mImageActor.SetImage( frameBufferImage ); + + mOffscreenRootActor.SetSize( size ); + + mImageView.SetSize( offscreenSize ); + mImageView.SetImage( frameBufferImage ); mRenderTask.SetTargetFrameBuffer( frameBufferImage ); - // Stores current size to avoid create new Dali resources if text changes. + // Stores current sizPe to avoid create new Dali resources if text changes. mCurrentOffscreenSize = offscreenSize; } @@ -94,20 +96,18 @@ void Clipper::Initialize( const Vector2& size ) const Size offscreenSize( std::min( MAX_OFFSCREEN_RENDERING_SIZE, size.width ), std::min( MAX_OFFSCREEN_RENDERING_SIZE, size.height ) ); - // Create a root actor and an image actor for offscreen rendering. + // Create a root actor and an image view for offscreen rendering. mOffscreenRootActor = Layer::New(); mOffscreenRootActor.SetColorMode( USE_OWN_COLOR ); - mOffscreenRootActor.SetPositionInheritanceMode( DONT_INHERIT_POSITION ); + mOffscreenRootActor.SetInheritPosition( false ); mOffscreenRootActor.SetInheritScale( false ); mOffscreenRootActor.SetDepthTestDisabled( true ); mOffscreenRootActor.SetSize( offscreenSize ); - mImageActor = ImageActor::New(); - mImageActor.SetParentOrigin( ParentOrigin::CENTER ); - mImageActor.SetBlendFunc( BlendingFactor::ONE, BlendingFactor::ONE_MINUS_SRC_ALPHA, - BlendingFactor::ONE, BlendingFactor::ONE ); - mImageActor.SetScale( Vector3( 1.0f, -1.0f, 1.0f ) ); - mImageActor.SetSize( offscreenSize ); + mImageView = ImageView::New(); + mImageView.SetParentOrigin( ParentOrigin::CENTER ); + mImageView.SetScale( Vector3( 1.0f, -1.0f, 1.0f ) ); + mImageView.SetSize( offscreenSize ); // Creates a new camera actor. mOffscreenCameraActor = CameraActor::New(); @@ -127,13 +127,23 @@ void Clipper::Initialize( const Vector2& size ) FrameBufferImage frameBufferImage = FrameBufferImage::New( offscreenSize.width, offscreenSize.height, Pixel::RGBA8888 ); - mImageActor.SetImage( frameBufferImage ); + mImageView.SetImage( frameBufferImage ); mRenderTask.SetTargetFrameBuffer( frameBufferImage ); + mImageView.OnStageSignal().Connect(this, &Clipper::OnStageConnect); // Stores current size to avoid create new Dali resources if text changes. mCurrentOffscreenSize = offscreenSize; } +void Clipper::OnStageConnect( Dali::Actor actor ) +{ + Renderer renderer = mImageView.GetRendererAt(0); + renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_RGB, BlendFactor::ONE ); + renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_RGB, BlendFactor::ONE_MINUS_SRC_ALPHA ); + renderer.SetProperty( Renderer::Property::BLEND_FACTOR_SRC_ALPHA, BlendFactor::ONE ); + renderer.SetProperty( Renderer::Property::BLEND_FACTOR_DEST_ALPHA, BlendFactor::ONE ); +} + Clipper::Clipper() { } @@ -143,7 +153,7 @@ Clipper::~Clipper() if( Stage::IsInstalled() ) { UnparentAndReset( mOffscreenRootActor ); - UnparentAndReset( mImageActor ); + UnparentAndReset( mImageView ); Stage::GetCurrent().GetRenderTaskList().RemoveTask( mRenderTask ); }