#include <dali-toolkit/internal/text/clipping/text-clipper.h>
// EXTERNAL INCLUDES
-#include <algorithm>
#include <dali/public-api/common/stage.h>
#include <dali/public-api/render-tasks/render-task-list.h>
-#include <dali/integration-api/debug.h>
+#include <dali/devel-api/rendering/renderer.h>
namespace
{
return mOffscreenRootActor;
}
-ImageActor Clipper::GetImageActor() const
+Actor Clipper::GetImageActor() const
{
return mImageActor;
}
FrameBufferImage frameBufferImage = FrameBufferImage::New( offscreenSize.width,
offscreenSize.height,
Pixel::RGBA8888 );
+
+ mOffscreenRootActor.SetSize( size );
+
+ mImageActor.SetSize( offscreenSize );
mImageActor.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;
}
// Create a root actor and an image actor for offscreen rendering.
mOffscreenRootActor = Layer::New();
mOffscreenRootActor.SetColorMode( USE_OWN_COLOR );
- mOffscreenRootActor.SetPositionInheritanceMode( DONT_INHERIT_POSITION );
- mOffscreenRootActor.SetInheritRotation( false );
+ mOffscreenRootActor.SetInheritPosition( false );
mOffscreenRootActor.SetInheritScale( false );
mOffscreenRootActor.SetDepthTestDisabled( true );
mOffscreenRootActor.SetSize( offscreenSize );
- mImageActor = ImageActor::New();
+ mImageActor = ImageView::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 );
Pixel::RGBA8888 );
mImageActor.SetImage( frameBufferImage );
mRenderTask.SetTargetFrameBuffer( frameBufferImage );
+ mImageActor.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 = mImageActor.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()
{
}