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=d3a28d0bd545991f6865c07aea8b23c5085a930f;hp=d0c2308b107be4803d4edc47eb0a8141e2eb2cf7;hb=50f57942b550284ab30d72eb974c2c5e1458f61e;hpb=99e2ea03e6d6059f5803d700932df1ff1c848cd3 diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.h b/dali-toolkit/internal/visuals/visual-factory-impl.h index d0c2308..d3a28d0 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) 2015 Samsung Electronics Co., Ltd. + * Copyright (c) 2016 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. @@ -23,6 +23,7 @@ // INTERNAL INCLUDES #include #include +#include namespace Dali { @@ -36,9 +37,6 @@ namespace Internal class VisualFactoryCache; typedef IntrusivePtr VisualFactoryCachePtr; -class ImageAtlasManager; -typedef IntrusivePtr ImageAtlasManagerPtr; - /** * @copydoc Toolkit::VisualFactory */ @@ -46,19 +44,6 @@ class VisualFactory : public BaseObject { public: - enum RendererType - { - COLOR, - BORDER, - GRADIENT, - IMAGE, - N_PATCH, - SVG, - MESH, - PRIMITIVE, - UNDEFINED - }; - /** * @brief Constructor * @@ -81,12 +66,6 @@ public: */ Toolkit::Visual::Base CreateVisual( const std::string& image, ImageDimensions size ); -public: - /** - * @brief Returns an image to be used when a renderer has failed to correctly render - */ - static Image GetBrokenRendererImage(); - protected: /** @@ -97,19 +76,6 @@ protected: private: /** - * Get the visual type from the property map. - * - * @param[in] propertyMap The map contains the properties of the visual - * @return The rendererType - */ - RendererType GetRendererType( const Property::Map& propertyMap ); - - /** - * Prepare the atlas manager - */ - void CreateAtlasManager(); - - /** * Undefined copy constructor. */ VisualFactory(const VisualFactory&); @@ -122,10 +88,51 @@ private: private: VisualFactoryCachePtr mFactoryCache; - ImageAtlasManagerPtr mAtlasManager; bool mDebugEnabled; }; +/** + * @brief Template to allow discard old visual, get new one and set it on stage if possible + * + * @tparam ParameterType0 The type of first argument passed to the CreateVisual() + * @tparam ParameterType1 The type of second argument passed to the CreateVisual() + * @SINCE_1_0.39 + * @param[in] actor Actor for which the visual will be replaced + * @param[in,out] visual The visual to be replaced + * @param[in] param0 First template based argument passed to the visual factory + * @param[in] param1 Second template based argument passed to the visual factory + */ +template< class ParameterType0, class ParameterType1 > +void InitializeVisual( Actor& actor, Toolkit::Visual::Base& visual, ParameterType0& param0, ParameterType1& param1 ) +{ + visual.RemoveAndReset( actor ); + visual = Toolkit::VisualFactory::Get().CreateVisual( param0, param1 ); + if( visual && actor && actor.OnStage() ) + { + Toolkit::GetImplementation(visual).SetOnStage(actor); + } +} + +/** + * @brief Template to allow discard old visual, get new one and set it on stage if possible + * + * @tparam ParameterType The type of argument passed to the CreateVisual() + * @SINCE_1_0.39 + * @param[in] actor Actor for which the visual will be replaced + * @param[in,out] visual The visual to be replaced + * @param[in] param Template based argument passed to the visual factory + */ +template< class ParameterType > +void InitializeVisual( Actor& actor, Toolkit::Visual::Base& visual, ParameterType& param ) +{ + visual.RemoveAndReset( actor ); + visual = Toolkit::VisualFactory::Get().CreateVisual( param ); + if( visual && actor && actor.OnStage() ) + { + Toolkit::GetImplementation(visual).SetOnStage(actor); + } +} + } // namespace Internal inline const Internal::VisualFactory& GetImplementation(const Toolkit::VisualFactory& factory)