// EXTERNAL INCLUDES
#include <dali/public-api/actors/layer.h>
-#include <dali/public-api/actors/image-actor.h>
#include <dali/public-api/actors/camera-actor.h>
-#include <dali/public-api/common/intrusive-ptr.h>
-#include <dali/public-api/math/vector2.h>
-#include <dali/public-api/object/ref-object.h>
#include <dali/public-api/render-tasks/render-task.h>
+#include <dali-toolkit/public-api/controls/image-view/image-view.h>
+#include <dali/public-api/signals/connection-tracker.h>
namespace Dali
{
/**
* @brief A helper class for clipping actors using a FrameBufferImage.
*/
-class Clipper : public RefObject
+class Clipper : public RefObject, public ConnectionTracker
{
public:
/**
* @brief Children added to this actor will be clipped with the specified region.
*
- * @note This is done by rendering to a FrameBufferImage which must then be displayed; see also GetImageActor().
+ * @note This is done by rendering to a FrameBufferImage which must then be displayed; see also GetImageView().
* @return The root actor.
*/
Actor GetRootActor() const;
/**
* @brief This actor will display the resulting FrameBufferImage.
*
- * @return The image actor.
+ * @return The image view.
*/
- ImageActor GetImageActor() const;
+ Actor GetImageView() const;
/**
* @brief Refresh the contents of the FrameBufferImage.
void Initialize( const Vector2& size );
/**
+ * The renderer is not created until the clipper actor is set on stage, only by then the blend function could be set.
+ *
+ * @param[in] actor The actor connected to stage.
+ */
+ void OnStageConnect( Dali::Actor actor );
+
+ /**
* Construct a new Clipper.
*/
Clipper();
Layer mOffscreenRootActor;
CameraActor mOffscreenCameraActor;
- ImageActor mImageActor;
+ ImageView mImageView;
RenderTask mRenderTask;
Vector2 mCurrentOffscreenSize;
};