X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Fdevel-api%2Fvisual-factory%2Fvisual-factory.h;h=1b7d9b53d6a8be4cd791d6be292762d6995612bf;hb=c8e1f7fad89a4deb15fa64e46a47b589f13db0db;hp=636147ddd1604ac8d9c9ff12daaab1ecec70afe0;hpb=11ed6421771d05113ae1a6510167d8c2557ac20e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/devel-api/visual-factory/visual-factory.h b/dali-toolkit/devel-api/visual-factory/visual-factory.h index 636147d..1b7d9b5 100644 --- a/dali-toolkit/devel-api/visual-factory/visual-factory.h +++ b/dali-toolkit/devel-api/visual-factory/visual-factory.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_VISUAL_FACTORY_H /* - * Copyright (c) 2016 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. @@ -19,8 +19,8 @@ */ // EXTERNAL INCLUDES -#include #include +#include #include // INTERNAL INCLUDES @@ -29,11 +29,10 @@ namespace Dali { class Image; -class Vector4; +struct Vector4; namespace Toolkit { - namespace Internal DALI_INTERNAL { class VisualFactory; @@ -51,10 +50,9 @@ class VisualFactory; * | visualType | INTEGER or STRING | * | shader | MAP | */ -class DALI_IMPORT_API VisualFactory : public BaseHandle +class DALI_TOOLKIT_API VisualFactory : public BaseHandle { public: - /** * @brief Create or retrieve VisualFactory singleton. * @@ -81,7 +79,7 @@ public: * * @param[in] handle A reference to the copied handle. */ - VisualFactory( const VisualFactory& handle ); + VisualFactory(const VisualFactory& handle); /** * @brief This assignment operator is required for (smart) pointer semantics. @@ -89,7 +87,7 @@ public: * @param [in] handle A reference to the copied handle. * @return A reference to this. */ - VisualFactory& operator=( const VisualFactory& handle ); + VisualFactory& operator=(const VisualFactory& handle); /** * @brief Request the visual @@ -98,74 +96,47 @@ public: * The content of the map determines the type of visual that will be returned. * @return The handle to the created visual */ - Visual::Base CreateVisual( const Property::Map& propertyMap ); + Visual::Base CreateVisual(const Property::Map& propertyMap); /** - * @brief Request the visual to render the image. + * @brief Request the visual to render the given resource at the url. * - * @param[in] image The image to be rendered. + * @param[in] url The URL to the resource to be rendered. + * @param[in] size The width and height to fit the loaded image to. * @return The pointer pointing to the visual */ - Visual::Base CreateVisual( const Image& image ); + Visual::Base CreateVisual(const std::string& url, ImageDimensions size); /** - * @brief Request the visual to render the given resource at the url. + * @brief Enable or disable premultiplying alpha in images and image visuals. * - * @param[in] url The URL to the resource to be rendered. - * @param[in] size The width and height to fit the loaded image to. - * @return The pointer pointing to the visual + * The default is to enable pre-multiplication on load. + * + * Applications that have assets with pre-multiplied alpha already applied should turn this option off. + * + * @param[in] preMultiply True if loaded images for image visuals should have alpha multiplied into the color + * channels. */ - Visual::Base CreateVisual( const std::string& url, ImageDimensions size ); + void SetPreMultiplyOnLoad(bool preMultiply); -private: + /** + * @brief Get the setting for automatically pre-multiplying image visual images on load. + * + * @return True if loaded images have pre-multiplied alpha applied on load, false otherwise. + */ + bool GetPreMultiplyOnLoad() const; - explicit DALI_INTERNAL VisualFactory(Internal::VisualFactory *impl); + /** + * @brief Discard visual base. It will keep reference of visual until idle callback called. + * + * @param[in] visual Discarded visual base. + */ + void DiscardVisual(Visual::Base visual); +private: + explicit DALI_INTERNAL VisualFactory(Internal::VisualFactory* impl); }; - -/** - * @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, Visual::Base& visual, ParameterType0& param0, ParameterType1& param1 ) -{ - visual.RemoveAndReset( actor ); - visual = Toolkit::VisualFactory::Get().CreateVisual( param0, param1 ); - if( visual && actor && actor.OnStage() ) - { - 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, Visual::Base& visual, ParameterType& param ) -{ - visual.RemoveAndReset( actor ); - visual = Toolkit::VisualFactory::Get().CreateVisual( param ); - if( visual && actor && actor.OnStage() ) - { - visual.SetOnStage( actor ); - } -} - } // namespace Toolkit } // namespace Dali