*/
// EXTERNAL INCLUDES
+#include <dali/public-api/common/vector-wrapper.h>
#include <dali/public-api/object/base-object.h>
-#include <dali/integration-api/shader-precompiler.h>
// INTERNAL INCLUDES
#include <dali-toolkit/devel-api/visual-factory/visual-base.h>
bool GetPreMultiplyOnLoad() const;
/**
- * @copydoc Toolkit::VisualFactory::UsePreCompiledShader()
+ * @copydoc Toolkit::VisualFactory::DiscardVisual()
*/
- void UsePreCompiledShader();
+ void DiscardVisual(Toolkit::Visual::Base visual);
/**
* @return the reference to texture manager
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();
*/
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;
std::unique_ptr<ImageVisualShaderFactory> mImageVisualShaderFactory;
std::unique_ptr<TextVisualShaderFactory> mTextVisualShaderFactory;
SlotDelegate<VisualFactory> mSlotDelegate;
- bool mDebugEnabled : 1;
- bool mPreMultiplyOnLoad : 1; ///< Local store for this flag
- bool mPrecompiledShaderRequested{false};
+ CallbackBase* mIdleCallback;
+
+ using DiscardedVisualContainer = std::vector<Toolkit::Visual::Base>;
+ DiscardedVisualContainer mDiscardedVisuals{};
+
+ bool mDebugEnabled : 1;
+ bool mPreMultiplyOnLoad : 1; ///< Local store for this flag
};
/**