X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Feffects-view%2Feffects-view-impl.h;h=54527d325da727d97516b609c6cb9b19339f5b13;hp=a39a1f74fd6336eb05a6b1ffba21926e1aebff79;hb=b694e7e2ae624e206e1548b1a863c554eb9cd4d7;hpb=c3f7ea6cb0c0b75c2276193aff88b5c7a679a2d5 diff --git a/dali-toolkit/internal/controls/effects-view/effects-view-impl.h b/dali-toolkit/internal/controls/effects-view/effects-view-impl.h index a39a1f7..54527d3 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.h +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.h @@ -1,8 +1,8 @@ -#ifndef __DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H__ -#define __DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H__ +#ifndef DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H +#define DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2019 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. @@ -20,15 +20,13 @@ // EXTERNAL INCLUDES #include -#include #include #include -#include // INTERNAL INCLUDES -#include #include -#include +#include +#include namespace Dali { @@ -80,12 +78,6 @@ public: /// @copydoc Dali::Toolkit::EffectsView::GetType Toolkit::EffectsView::EffectType GetType() const; - /// @copydoc Dali::Toolkit::EffectsView::Enable - void Enable(); - - /// @copydoc Dali::Toolkit::EffectsView::Disable - void Disable(); - /// @copydoc Dali::Toolkit::EffectsView::Refresh void Refresh(); @@ -95,40 +87,46 @@ public: /// @copydoc Dali::Toolkit::EffectsView::SetPixelFormat void SetPixelFormat( Pixel::Format pixelFormat ); - /// @copydoc Dali::Toolkit::EffectsView::SetOutputImage - void SetOutputImage( FrameBufferImage image ); - - /// @copydoc Dali::Toolkit::EffectsView::GetOutputImage - FrameBufferImage GetOutputImage(); - - /// @copydoc Dali::Toolkit::EffectsView::GetEffectSizePropertyIndex - Property::Index GetEffectSizePropertyIndex() const; - - /// @copydoc Dali::Toolkit::EffectsView::GetEffectStrengthPropertyIndex - Property::Index GetEffectStrengthPropertyIndex() const; - - /// @copydoc Dali::Toolkit::EffectsView::GetEffectOffsetPropertyIndex - Property::Index GetEffectOffsetPropertyIndex() const; - - /// @copydoc Dali::Toolkit::EffectsView::GetEffectColorPropertyIndex - Property::Index GetEffectColorPropertyIndex() const; - /// @copydoc Dali::Toolkit::EffectsView::SetBackgroundColor(const Vector4&) void SetBackgroundColor( const Vector4& color ); /// @copydoc Dali::Toolkit::GaussianBlurView::GetBackgroundColor Vector4 GetBackgroundColor() const; -private: /** - * Register and setup indices for EffectsView properties + * Set the effect size which decides the size of filter kernel. + * @param[in] effectSize The effect size. */ - void SetupProperties(); + void SetEffectSize( int effectSize ); + + /** + * Get the effect size. + * @return The effect size. + */ + int GetEffectSize(); + + // Properties + /** + * Called when a property of an object of this type is set. + * @param[in] object The object whose property is set. + * @param[in] index The property index. + * @param[in] value The new property value. + */ + static void SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ); + + + /** + * Called to retrieve a property of an object of this type. + * @param[in] object The object whose property is to be retrieved. + * @param[in] index The property index. + * @return The current value of the property. + */ + static Property::Value GetProperty( BaseObject* object, Property::Index propertyIndex ); private: // From Control /** - * @copydoc Toolkit::Control::OnInitialize() + * @copydoc Toolkit::Internal::Control::OnInitialize() */ virtual void OnInitialize(); @@ -137,12 +135,37 @@ private: // From Control */ virtual void OnSizeSet( const Vector3& targetSize ); + /** + * @copydoc Toolkit::Internal::Control::OnStageConnection + */ + virtual void OnStageConnection( int depth ); + + /** + * @copydoc Toolkit::Internal::Control::OnStageDisconnection + */ + virtual void OnStageDisconnection(); + + /** + * @copydoc Toolkit::Internal::Control::OnChildAdd + */ + virtual void OnChildAdd( Actor& child ); + + /** + * @copydoc Toolkit::Internal::Control::OnChildRemove + */ + virtual void OnChildRemove( Actor& child ); + private: /** - * Callback received when the control is disconnected from the stage. + * Enable the effect when the control is set on stage */ - void OnStageDisconnection(); + void Enable(); + + /** + * Disable the effect when the control is set off stage + */ + void Disable(); /** * Setup image filters @@ -188,21 +211,14 @@ private: EffectsView& operator = ( const EffectsView& ); private: // attributes/properties - Toolkit::EffectsView::EffectType mEffectType; ///////////////////////////////////////////////////////////// // for rendering all user added children to offscreen target - FrameBufferImage mImageForChildren; - ImageActor mActorForChildren; - RenderTask mRenderTaskForChildren; - CameraActor mCameraForChildren; - - ///////////////////////////////////////////////////////////// - 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 - float mSpread; + FrameBufferImage mImageForChildren; + Toolkit::Visual::Base mVisualForChildren; + RenderTask mRenderTaskForChildren; + CameraActor mCameraForChildren; + Actor mChildrenRoot; // for creating a subtree for all user added child actors ///////////////////////////////////////////////////////////// // background fill color @@ -212,40 +228,23 @@ private: // attributes/properties // for checking if we need to reallocate render targets Vector2 mTargetSize; Vector2 mLastSize; - - bool mRefreshOnDemand; - - ///////////////////////////////////////////////////////////// - // horizontal spread objects - FrameBufferImage mImageForHorzSpread; - ImageActor mActorForHorzSpread; - RenderTask mRenderTaskForHorzSpread; - ///////////////////////////////////////////////////////////// - // vertical spread objects - FrameBufferImage mImageForVertSpread; - ImageActor mActorForVertSpread; - RenderTask mRenderTaskForVertSpread; + // post blur image + FrameBufferImage mImagePostFilter; + Toolkit::Visual::Base mVisualPostFilter; - CameraActor mCameraForSpread; + Vector mFilters; ///////////////////////////////////////////////////////////// - // post blur image - FrameBufferImage mImagePostFilter; - ImageActor mActorPostFilter; + // downsampling is used for the separated blur passes to get increased blur with the same number of samples and also to make rendering quicker + int mEffectSize; ///////////////////////////////////////////////////////////// - // final image - FrameBufferImage mImageForResult; - Actor mActorForResult; - RenderTask mRenderTaskForResult; - - Property::Index mEffectSizePropertyIndex; - Property::Index mEffectStrengthPropertyIndex; - Property::Index mEffectOffsetPropertyIndex; - Property::Index mEffectColorPropertyIndex; + Toolkit::EffectsView::EffectType mEffectType; + Pixel::Format mPixelFormat; ///< pixel format used by render targets - std::vector mFilters; + bool mEnabled:1; + bool mRefreshOnDemand:1; }; // class EffectsView } // namespace Internal @@ -275,5 +274,4 @@ inline const Toolkit::Internal::EffectsView& GetImpl( const Toolkit::EffectsView } // namespace Dali -#endif // __DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H__ - +#endif // DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H