-#ifndef __DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H__
-#define __DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H__
+#ifndef DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H
+#define DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H
/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
// EXTERNAL INCLUDES
#include <sstream>
#include <cmath>
+#include <dali/public-api/object/property-map.h>
// INTERNAL INCLUDES
#include <dali-toolkit/public-api/controls/control-impl.h>
-#include <dali-toolkit/public-api/controls/gaussian-blur-view/gaussian-blur-view.h>
+#include <dali-toolkit/devel-api/controls/gaussian-blur-view/gaussian-blur-view.h>
+#include <dali-toolkit/public-api/controls/image-view/image-view.h>
namespace Dali
{
const float downsampleWidthScale, const float downsampleHeightScale,
bool blurUserImage);
- void Add(Actor child);
- void Remove(Actor child);
-
void Activate();
void ActivateOnce();
void Deactivate();
- void SetUserImageAndOutputRenderTarget(Image inputImage, FrameBufferImage outputRenderTarget);
+ void SetUserImageAndOutputRenderTarget(Texture inputImage, FrameBuffer outputRenderTarget);
Property::Index GetBlurStrengthPropertyIndex() const {return mBlurStrengthPropertyIndex;}
- FrameBufferImage GetBlurredRenderTarget() const;
+ FrameBuffer GetBlurredRenderTarget() const;
/// @copydoc Dali::Toolkit::GaussianBlurView::SetBackgroundColor(const Vector4&)
void SetBackgroundColor( const Vector4& color );
private:
- virtual void OnInitialize();
- virtual void OnControlSizeSet(const Vector3& targetSize);
- virtual void OnStageDisconnection();
+ void OnInitialize() override;
+ void OnSizeSet(const Vector3& targetSize) override;
+
+ /**
+ * @copydoc Control::OnChildAdd()
+ */
+ void OnChildAdd( Actor& child ) override;
- virtual void OnControlStageConnection();
+ /**
+ * @copydoc Control::OnChildRemove()
+ */
+ void OnChildRemove( Actor& child ) override;
void SetBlurBellCurveWidth(float blurBellCurveWidth);
float CalcGaussianWeight(float x);
/////////////////////////////////////////////////////////////
// for creating a subtree for all user added child actors, so that we can have them exclusive to the mRenderChildrenTask and our other actors exclusive to our other tasks
Actor mChildrenRoot;
+ // for creating a subtree for the internal actors
+ Actor mInternalRoot;
/////////////////////////////////////////////////////////////
// for mapping offscreen renders to render target sizes
/////////////////////////////////////////////////////////////
// for rendering all user added children to offscreen target
- FrameBufferImage mRenderTargetForRenderingChildren;
+ FrameBuffer mRenderTargetForRenderingChildren;
RenderTask mRenderChildrenTask;
/////////////////////////////////////////////////////////////
// for rendering separated blur passes to offscreen targets
- FrameBufferImage mRenderTarget1;
- FrameBufferImage mRenderTarget2;
+ FrameBuffer mRenderTarget1;
+ FrameBuffer mRenderTarget2;
- ShaderEffect mHorizBlurShader;
- ShaderEffect mVertBlurShader;
-
- ImageActor mImageActorHorizBlur;
- ImageActor mImageActorVertBlur;
+ Actor mHorizBlurActor;
+ Actor mVertBlurActor;
RenderTask mHorizBlurTask;
RenderTask mVertBlurTask;
/////////////////////////////////////////////////////////////
// for compositing blur and children renders to offscreen target
- ImageActor mImageActorComposite;
+ Actor mCompositingActor;
RenderTask mCompositeTask;
/////////////////////////////////////////////////////////////
// for holding blurred result
- ImageActor mTargetActor;
+ Actor mTargetActor;
/////////////////////////////////////////////////////////////
// for animating fade in / out of blur, hiding internal implementation but allowing user to set via GaussianBlurView interface
/////////////////////////////////////////////////////////////
// User can specify image to blur and output target, so we can use GaussianBlurView for arbitrary blur processes
- Image mUserInputImage;
- FrameBufferImage mUserOutputRenderTarget;
+ Texture mUserInputImage;
+ FrameBuffer mUserOutputRenderTarget;
Dali::Toolkit::GaussianBlurView::GaussianBlurViewSignal mFinishedSignal; ///< Signal emitted when blur has completed.
+
+ bool mActivated:1;
private:
// Undefined copy constructor.
} // namespace Dali
-#endif // __DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H__
+#endif // DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H