X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fgaussian-blur-view%2Fgaussian-blur-view-impl.h;h=31fac622ec0d836e1aa48f455fc52a0df98bb964;hp=9b6d56445b82793ed6719e80221bcc4f7fbd8b13;hb=9ddd5fea6278d06b8874988498c7c4c6508750ba;hpb=e84f2b4052f5a042c6a08d02b87e771bac5ddf44 diff --git a/dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.h b/dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.h index 9b6d564..31fac62 100644 --- a/dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.h +++ b/dali-toolkit/internal/controls/gaussian-blur-view/gaussian-blur-view-impl.h @@ -1,8 +1,8 @@ -#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) 2021 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,32 +19,29 @@ */ // EXTERNAL INCLUDES -#include +#include #include +#include // INTERNAL INCLUDES +#include #include -#include #include namespace Dali { - namespace Toolkit { - class GaussianBlurView; namespace Internal { - /** * GaussianBlurView implementation class */ class GaussianBlurView : public Control { public: - /** * @copydoc Dali::Toolkit::GaussianBlurView::GaussianBlurView */ @@ -53,9 +50,7 @@ public: /** * @copydoc Dali::Toolkit::GaussianBlurView::GaussianBlurView */ - GaussianBlurView(const unsigned int numSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat, - const float downsampleWidthScale, const float downsampleHeightScale, - bool blurUserImage); + GaussianBlurView(const unsigned int numSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat, const float downsampleWidthScale, const float downsampleHeightScale, bool blurUserImage); /** * @copydoc Dali::Toolkit::GaussianBlurView::~GaussianBlurView @@ -66,60 +61,57 @@ public: * @copydoc Dali::Toolkit::GaussianBlurView::New */ static Dali::Toolkit::GaussianBlurView New(); - static Dali::Toolkit::GaussianBlurView New( const unsigned int numSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat, - const float downsampleWidthScale, const float downsampleHeightScale, - bool blurUserImage); - - void Add(Actor child); - void Remove(Actor child); + static Dali::Toolkit::GaussianBlurView New(const unsigned int numSamples, const float blurBellCurveWidth, const Pixel::Format renderTargetPixelFormat, const float downsampleWidthScale, const float downsampleHeightScale, bool blurUserImage); 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; + Property::Index GetBlurStrengthPropertyIndex() const + { + return mBlurStrengthPropertyIndex; + } + FrameBuffer GetBlurredRenderTarget() const; /// @copydoc Dali::Toolkit::GaussianBlurView::SetBackgroundColor(const Vector4&) - void SetBackgroundColor( const Vector4& color ); + void SetBackgroundColor(const Vector4& color); /// @copydoc Dali::Toolkit::GaussianBlurView::GetBackgroundColor Vector4 GetBackgroundColor() const; - void AllocateResources(); - void CreateRenderTasks(); - void RemoveRenderTasks(); + void AllocateResources(); + void CreateRenderTasks(); + void RemoveRenderTasks(); Dali::Toolkit::GaussianBlurView::GaussianBlurViewSignal& FinishedSignal(); private: - - virtual void OnInitialize(); - virtual void OnSizeSet(const Vector3& targetSize); + void OnInitialize() override; + void OnSizeSet(const Vector3& targetSize) override; /** * @copydoc Control::OnChildAdd() */ - virtual void OnChildAdd( Actor& child ); + void OnChildAdd(Actor& child) override; /** * @copydoc Control::OnChildRemove() */ - virtual void OnChildRemove( Actor& child ); + void OnChildRemove(Actor& child) override; - void SetBlurBellCurveWidth(float blurBellCurveWidth); - float CalcGaussianWeight(float x); - void SetShaderConstants(); - std::string GetSampleOffsetsPropertyName( unsigned int index ) const; - std::string GetSampleWeightsPropertyName( unsigned int index ) const; + void SetBlurBellCurveWidth(float blurBellCurveWidth); + float CalcGaussianWeight(float x); + void SetShaderConstants(); + std::string GetSampleOffsetsPropertyName(unsigned int index) const; + std::string GetSampleWeightsPropertyName(unsigned int index) const; void OnRenderTaskFinished(Dali::RenderTask& renderTask); ///////////////////////////////////////////////////////////// - unsigned int mNumSamples; // number of blur samples in each of horiz/vert directions - float mBlurBellCurveWidth; // constant used when calculating the gaussian weights - Pixel::Format mPixelFormat; // pixel format used by render targets + unsigned int mNumSamples; // number of blur samples in each of horiz/vert directions + float mBlurBellCurveWidth; // constant used when calculating the gaussian weights + Pixel::Format mPixelFormat; // pixel format used by render targets ///////////////////////////////////////////////////////////// // downsampling is used for the separated blur passes to get increased blur with the same number of samples and also to make rendering quicker @@ -130,11 +122,11 @@ private: ///////////////////////////////////////////////////////////// // if this is set to true, we blur a user supplied image rather than rendering and blurring children - bool mBlurUserImage:1; + bool mBlurUserImage : 1; ///////////////////////////////////////////////////////////// // if this is set to true, set the render tasks to refresh once - bool mRenderOnce:1; + bool mRenderOnce : 1; ///////////////////////////////////////////////////////////// // background fill color @@ -158,28 +150,28 @@ private: ///////////////////////////////////////////////////////////// // for rendering all user added children to offscreen target - FrameBufferImage mRenderTargetForRenderingChildren; - RenderTask mRenderChildrenTask; + FrameBuffer mRenderTargetForRenderingChildren; + RenderTask mRenderChildrenTask; ///////////////////////////////////////////////////////////// // for rendering separated blur passes to offscreen targets - FrameBufferImage mRenderTarget1; - FrameBufferImage mRenderTarget2; + FrameBuffer mRenderTarget1; + FrameBuffer mRenderTarget2; - Toolkit::ImageView mImageActorHorizBlur; - Toolkit::ImageView mImageActorVertBlur; + Actor mHorizBlurActor; + Actor mVertBlurActor; RenderTask mHorizBlurTask; RenderTask mVertBlurTask; ///////////////////////////////////////////////////////////// // for compositing blur and children renders to offscreen target - Toolkit::ImageView mImageActorComposite; + Actor mCompositingActor; RenderTask mCompositeTask; ///////////////////////////////////////////////////////////// // for holding blurred result - Toolkit::ImageView mTargetActor; + Actor mTargetActor; ///////////////////////////////////////////////////////////// // for animating fade in / out of blur, hiding internal implementation but allowing user to set via GaussianBlurView interface @@ -187,42 +179,40 @@ private: ///////////////////////////////////////////////////////////// // 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: + bool mActivated : 1; +private: // Undefined copy constructor. - GaussianBlurView( const GaussianBlurView& ); + GaussianBlurView(const GaussianBlurView&); // Undefined assignment operator. - GaussianBlurView& operator=( const GaussianBlurView& ); + GaussianBlurView& operator=(const GaussianBlurView&); }; } // namespace Internal - // Helpers for public-api forwarding methods -inline Toolkit::Internal::GaussianBlurView& GetImpl( Toolkit::GaussianBlurView& obj ) +inline Toolkit::Internal::GaussianBlurView& GetImpl(Toolkit::GaussianBlurView& obj) { DALI_ASSERT_ALWAYS(obj); Dali::RefObject& handle = obj.GetImplementation(); return static_cast(handle); } -inline const Toolkit::Internal::GaussianBlurView& GetImpl( const Toolkit::GaussianBlurView& obj ) +inline const Toolkit::Internal::GaussianBlurView& GetImpl(const Toolkit::GaussianBlurView& obj) { DALI_ASSERT_ALWAYS(obj); const Dali::RefObject& handle = obj.GetImplementation(); return static_cast(handle); } - } // namespace Toolkit } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H__ +#endif // DALI_TOOLKIT_INTERNAL_GAUSSIAN_BLUR_EFFECT_H