X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.h;h=c0b95b484f6432a488f969f6800001850bb6f430;hb=c8e1f7fad89a4deb15fa64e46a47b589f13db0db;hp=1e5ac93a723a5ba3eeff0e8ffa5c31e2f48728ad;hpb=5442793ffe3a14421ccf4f984e99500665a0848f;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.h b/dali-toolkit/internal/visuals/visual-factory-impl.h index 1e5ac93..c0b95b4 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.h +++ b/dali-toolkit/internal/visuals/visual-factory-impl.h @@ -18,6 +18,7 @@ */ // EXTERNAL INCLUDES +#include #include // INTERNAL INCLUDES @@ -85,6 +86,11 @@ public: bool GetPreMultiplyOnLoad() const; /** + * @copydoc Toolkit::VisualFactory::DiscardVisual() + */ + void DiscardVisual(Toolkit::Visual::Base visual); + + /** * @return the reference to texture manager */ Internal::TextureManager& GetTextureManager(); @@ -117,6 +123,16 @@ private: */ TextVisualShaderFactory& GetTextVisualShaderFactory(); + /** + * @brief Callbacks called for clear discarded visuals. + */ + void OnDiscardCallback(); + + /** + * @brief Register idle callback for discard visuals if need. + */ + void RegisterDiscardCallback(); + VisualFactory(const VisualFactory&) = delete; VisualFactory& operator=(const VisualFactory& rhs) = delete; @@ -126,8 +142,13 @@ private: std::unique_ptr mImageVisualShaderFactory; std::unique_ptr mTextVisualShaderFactory; SlotDelegate mSlotDelegate; - bool mDebugEnabled : 1; - bool mPreMultiplyOnLoad : 1; ///< Local store for this flag + CallbackBase* mIdleCallback; + + using DiscardedVisualContainer = std::vector; + DiscardedVisualContainer mDiscardedVisuals{}; + + bool mDebugEnabled : 1; + bool mPreMultiplyOnLoad : 1; ///< Local store for this flag }; /**