X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Feffects-view%2Feffects-view-impl.h;h=bf6569d6c77391bde54461bd9060a1313820ce06;hb=278493dcbeb50938256b776d84c41ae4665d9a29;hp=497cdbe5f771dfa2bde1e43d53dfd557b1a0e47d;hpb=306d2f61a1b64179e801fa8a0bb2bd7b4e9dd682;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git 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 497cdbe..bf6569d 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.h +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.h @@ -20,15 +20,14 @@ // EXTERNAL INCLUDES #include -#include #include #include -#include // INTERNAL INCLUDES +#include #include -#include #include +#include namespace Dali { @@ -80,12 +79,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,54 +88,85 @@ 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(); /** - * @copydoc Toolkit::Control::OnControlSizeSet( const Vector3& targetSize ) + * @copydoc CustomActorImpl::OnSizeSet( const Vector3& targetSize ) + */ + virtual void OnSizeSet( const Vector3& targetSize ); + + /** + * @copydoc Toolkit::Internal::Control::OnStageConnection */ - virtual void OnControlSizeSet( const Vector3& targetSize ); + 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 Enable(); + + /** + * Disable the effect when the control is set off stage */ - void OnStageDisconnection(); + void Disable(); /** * Setup image filters @@ -188,21 +212,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; + Toolkit::ControlRenderer mRendererForChildren; 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; + Actor mChildrenRoot; // for creating a subtree for all user added child actors ///////////////////////////////////////////////////////////// // background fill color @@ -212,40 +229,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; - - CameraActor mCameraForSpread; - ///////////////////////////////////////////////////////////// // post blur image FrameBufferImage mImagePostFilter; - ImageActor mActorPostFilter; + Toolkit::ControlRenderer mRendererPostFilter; + + Vector mFilters; ///////////////////////////////////////////////////////////// - // final image - FrameBufferImage mImageForResult; - Actor mActorForResult; - RenderTask mRenderTaskForResult; + // 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; - 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