X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fimage-visual-shader-factory.h;h=cf1c25ba645ffd44e2f189844037f48510be902c;hb=76aa6cd0e01c3690b9cfc40c3b9974be274d449c;hp=6d38fbd4bfb11bce379e6247ab65fbe51470ab96;hpb=b05a852e155e887cb0e9e1018205c57bfbbfa334;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/image-visual-shader-factory.h b/dali-toolkit/internal/visuals/image-visual-shader-factory.h index 6d38fbd..cf1c25b 100644 --- a/dali-toolkit/internal/visuals/image-visual-shader-factory.h +++ b/dali-toolkit/internal/visuals/image-visual-shader-factory.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_IMAGE_VISUAL_SHADER_FACTORY_H /* - * Copyright (c) 2018 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. @@ -21,14 +21,13 @@ // INTERNAL INCLUDES #include +#include #include namespace Dali { - namespace Toolkit { - namespace Internal { @@ -38,9 +37,6 @@ namespace Internal class ImageVisualShaderFactory { public: - -public: - /** * @brief Constructor */ @@ -52,28 +48,26 @@ public: ~ImageVisualShaderFactory(); /** - * Get the standard image rendering shader. + * @brief Get the standard image rendering shader. * @param[in] factoryCache A pointer pointing to the VisualFactoryCache object - * @param[in] atlasing Whether texture atlasing is applied. - * @param[in] defaultTextureWrapping Whether the default texture wrap mode is applied. - * @param[in] roundedCorner Whether the rounded corder is applied. + * @param[in] featureBuilder Collection of current image shader's features + * @return The standard image rendering shader with features. */ - Shader GetShader( VisualFactoryCache& factoryCache, bool atlasing, bool defaultTextureWrapping, bool roundedCorner ); + Shader GetShader(VisualFactoryCache& factoryCache, ImageVisualShaderFeatureBuilder& featureBuilder); /** - * Request the default vertex shader source. + * @brief Request the default vertex shader source. * @return The default vertex shader source. */ std::string_view GetVertexShaderSource(); /** - * Request the default fragment shader source. + * @brief Request the default fragment shader source. * @return The default fragment shader source. */ std::string_view GetFragmentShaderSource(); protected: - /** * Undefined copy constructor. */ @@ -85,6 +79,18 @@ protected: ImageVisualShaderFactory& operator=(const ImageVisualShaderFactory& rhs); private: + /** + * @brief Cached information whether native image should change fragment shader. + * Default it is ChangeFragmentShader::UNDECIDED. + * If we have any chance to check native image source apply fragment shader, + * this vaule will be changed one of these : ChangeFragmentShader::DONT_CHANGE or ChangeFragmentShader::NEED_CHANGE + * + * After result cached, this value will not be changed. + * + * If value is DONT_CHANGE, ImageVisualShaderFactory::GetShader never call ApplyNativeFragmentShader. + * Else, ImageVisualShaderFactory::GetShader will call ApplyNativeFragmentShader if native image source texture come. + */ + ImageVisualShaderFeature::ChangeFragmentShader::Type mFragmentShaderNeedChange : 3; }; } // namespace Internal