X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.h;h=4a4ab4c978ae32edbdc536daa05604b86c1ae968;hp=1e5ac93a723a5ba3eeff0e8ffa5c31e2f48728ad;hb=HEAD;hpb=3c430316e4c4d252d8822315acf61b1d49245917 diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.h b/dali-toolkit/internal/visuals/visual-factory-impl.h index 1e5ac93..76bacf9 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.h +++ b/dali-toolkit/internal/visuals/visual-factory-impl.h @@ -18,7 +18,9 @@ */ // EXTERNAL INCLUDES +#include #include +#include // INTERNAL INCLUDES #include @@ -85,6 +87,16 @@ public: bool GetPreMultiplyOnLoad() const; /** + * @copydoc Toolkit::VisualFactory::DiscardVisual() + */ + void DiscardVisual(Toolkit::Visual::Base visual); + + /** + * @copydoc Toolkit::VisualFactory::UsePreCompiledShader() + */ + void UsePreCompiledShader(); + + /** * @return the reference to texture manager */ Internal::TextureManager& GetTextureManager(); @@ -103,6 +115,12 @@ private: void SetBrokenImageUrl(Toolkit::StyleManager& styleManager); /** + * @brief Get the default shader source. + * @param[in] shaders shaderList for precompile + */ + void GetPreCompiledShader(RawShaderData& shaders); + + /** * Get the factory cache, creating it if necessary. */ Internal::VisualFactoryCache& GetFactoryCache(); @@ -117,6 +135,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 +154,12 @@ private: std::unique_ptr mImageVisualShaderFactory; std::unique_ptr mTextVisualShaderFactory; SlotDelegate mSlotDelegate; + CallbackBase* mIdleCallback; + using DiscardedVisualContainer = std::vector; + DiscardedVisualContainer mDiscardedVisuals{}; bool mDebugEnabled : 1; bool mPreMultiplyOnLoad : 1; ///< Local store for this flag + bool mPrecompiledShaderRequested : 1; }; /**