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=616b8d04a9ea4743dd3ebe1564043d91e79274be;hb=HEAD;hpb=c93f6281a8bafc5b7ba5f0dcdad0eb675b8e3436 diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.h b/dali-toolkit/internal/visuals/visual-factory-impl.h index 616b8d0..76bacf9 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.h +++ b/dali-toolkit/internal/visuals/visual-factory-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_VISUAL_FACTORY_IMPL_H /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -18,10 +18,11 @@ */ // EXTERNAL INCLUDES +#include #include +#include // INTERNAL INCLUDES -#include #include #include #include @@ -86,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(); @@ -104,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(); @@ -118,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; @@ -127,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; }; /**