(Visual) Do not seperate shader by default transform usage 31/323731/1
authorEunki, Hong <eunkiki.hong@samsung.com>
Wed, 7 May 2025 01:05:37 +0000 (10:05 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Wed, 7 May 2025 01:08:15 +0000 (10:08 +0900)
We ignore the shared UBO at core side only if we call `RegisterVisualTransformUniform()`.
So we don't seperate shader by the UBO registered statements anymore.

Change-Id: Ie5abb93c84d61793bdb0d7863c912549fc594154
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
23 files changed:
dali-toolkit/internal/visuals/animated-gradient/animated-gradient-visual.cpp
dali-toolkit/internal/visuals/animated-image/animated-image-visual.cpp
dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp
dali-toolkit/internal/visuals/arc/arc-visual.cpp
dali-toolkit/internal/visuals/border/border-visual.cpp
dali-toolkit/internal/visuals/color/color-visual-shader-factory.cpp
dali-toolkit/internal/visuals/color/color-visual-shader-factory.h
dali-toolkit/internal/visuals/color/color-visual.cpp
dali-toolkit/internal/visuals/gradient/gradient-visual.cpp
dali-toolkit/internal/visuals/image/image-visual-shader-factory.cpp
dali-toolkit/internal/visuals/image/image-visual-shader-feature-builder.cpp
dali-toolkit/internal/visuals/image/image-visual-shader-feature-builder.h
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/mesh/mesh-visual.cpp
dali-toolkit/internal/visuals/mesh/mesh-visual.h
dali-toolkit/internal/visuals/npatch/npatch-visual.cpp
dali-toolkit/internal/visuals/primitive/primitive-visual.cpp
dali-toolkit/internal/visuals/primitive/primitive-visual.h
dali-toolkit/internal/visuals/svg/svg-visual.cpp
dali-toolkit/internal/visuals/text/text-visual-shader-factory.cpp
dali-toolkit/internal/visuals/visual-base-impl.cpp
dali-toolkit/internal/visuals/visual-factory-cache.cpp
dali-toolkit/internal/visuals/visual-factory-cache.h

index 2b6a69b692be8875d9e546b1614619d75b5edb43..683a9ba5f9c6d2de3a043d06917f202e21139921 100644 (file)
@@ -464,9 +464,6 @@ void AnimatedGradientVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -609,7 +606,7 @@ Shader AnimatedGradientVisual::GetOrCreateShader()
 
   VisualFactoryCache::ShaderType shaderType = GetShaderType(mGradientType, mUnitType, mSpreadType);
 
-  shader = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+  shader = mFactoryCache.GetShader(shaderType);
   if(!shader)
   {
     std::string tagUnit;
@@ -666,7 +663,7 @@ Shader AnimatedGradientVisual::GetOrCreateShader()
     vert = "#define " + tagUnit + "\n" + SHADER_ANIMATED_GRADIENT_VISUAL_SHADER_VERT.data();
     frag = "#define " + tagGrad + "\n" + "#define " + tagSpread + "\n" + SHADER_ANIMATED_GRADIENT_VISUAL_SHADER_FRAG.data();
 
-    shader = mFactoryCache.GenerateAndSaveShader(shaderType, vert, frag, mImpl->mTransformMapUsingDefault);
+    shader = mFactoryCache.GenerateAndSaveShader(shaderType, vert, frag);
   }
   return shader;
 }
index c27c5a348a836fd962923f97b5094f9a9fb1bd0f..e1148cabb1713d43db83dec4272e161d9e236db0 100644 (file)
@@ -1034,9 +1034,6 @@ void AnimatedImageVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -1080,8 +1077,7 @@ Shader AnimatedImageVisual::GenerateShader() const
         .ApplyDefaultTextureWrapMode(defaultWrapMode)
         .EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
         .EnableBorderline(IsBorderlineRequired())
-        .EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering)
-        .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+        .EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering));
   }
   return shader;
 }
index 8ce304b62b72f3fa62e0743a6398040bffa4c0cd..d4ced58aec2a4a2cb293d0ab48e0dca705d2f816 100644 (file)
@@ -563,9 +563,6 @@ void AnimatedVectorImageVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 
   if(IsOnScene())
@@ -949,8 +946,7 @@ Shader AnimatedVectorImageVisual::GenerateShader() const
       ImageVisualShaderFeature::FeatureBuilder()
         .EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
         .EnableBorderline(IsBorderlineRequired())
-        .SetTextureForFragmentShaderCheck(mUseNativeImage ? mImpl->mRenderer.GetTextures().GetTexture(0) : Dali::Texture())
-        .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+        .SetTextureForFragmentShaderCheck(mUseNativeImage ? mImpl->mRenderer.GetTextures().GetTexture(0) : Dali::Texture()));
   }
   return shader;
 }
index 02b05d3e150310e3a316ab29e9727d7a6f406c48..cbd1ccca7361439ad0e7d4e2dc38ba6f1b33e037 100644 (file)
@@ -201,18 +201,18 @@ void ArcVisual::OnInitialize()
   Shader shader;
   if(mCapType == DevelArcVisual::Cap::BUTT)
   {
-    shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, mImpl->mTransformMapUsingDefault);
+    shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER);
     if(!shader)
     {
-      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_BUTT_CAP_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_BUTT_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_BUTT_CAP_SHADER_FRAG.data());
     }
   }
   else
   {
-    shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, mImpl->mTransformMapUsingDefault);
+    shader = mFactoryCache.GetShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER);
     if(!shader)
     {
-      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_ROUND_CAP_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::ARC_ROUND_CAP_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_ARC_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_ARC_VISUAL_ROUND_CAP_SHADER_FRAG.data());
     }
   }
 
index 87b9245d4170c5047fa934494b8a3b7c77819691..7cf35601f8a9095fb8f61d2d9b67bfd7fb49f3a3 100644 (file)
@@ -167,9 +167,6 @@ void BorderVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -195,18 +192,18 @@ Shader BorderVisual::GetBorderShader()
   Shader shader;
   if(mAntiAliasing)
   {
-    shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, mImpl->mTransformMapUsingDefault);
+    shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING);
     if(!shader)
     {
-      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER_ANTI_ALIASING, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_ANTI_ALIASING_SHADER_FRAG.data());
     }
   }
   else
   {
-    shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER, mImpl->mTransformMapUsingDefault);
+    shader = mFactoryCache.GetShader(VisualFactoryCache::BORDER_SHADER);
     if(!shader)
     {
-      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_FRAG.data(), mImpl->mTransformMapUsingDefault);
+      shader = mFactoryCache.GenerateAndSaveShader(VisualFactoryCache::BORDER_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_BORDER_VISUAL_SHADER_FRAG.data());
     }
   }
 
index 394aa21fcb5ce3657381dbe630955dbb073aeace..1c2e6ce65cefc85a2d53ec759a8fafe522bc3323 100644 (file)
@@ -94,8 +94,7 @@ FeatureBuilder::FeatureBuilder()
 : mColorRoundCorner(RoundedCorner::DISABLED),
   mColorBorderline(Borderline::DISABLED),
   mColorBlur(Blur::DISABLED),
-  mColorCutout(Cutout::DISABLED),
-  mUseDefaultTransform(true)
+  mColorCutout(Cutout::DISABLED)
 {
 }
 
@@ -123,12 +122,6 @@ FeatureBuilder& FeatureBuilder::EnableCutout(bool enableCutout)
   return *this;
 }
 
-FeatureBuilder& FeatureBuilder::UseDefaultTransform(bool useDefaultTransform)
-{
-  mUseDefaultTransform = useDefaultTransform;
-  return *this;
-}
-
 VisualFactoryCache::ShaderType FeatureBuilder::GetShaderType() const
 {
   VisualFactoryCache::ShaderType shaderType     = VisualFactoryCache::COLOR_SHADER;
@@ -214,11 +207,6 @@ void FeatureBuilder::GetFragmentShaderPrefixList(std::string& fragmentShaderPref
   }
 }
 
-bool FeatureBuilder::IsDefaultTransformUsed() const
-{
-  return mUseDefaultTransform;
-}
-
 } // namespace ColorVisualShaderFeature
 
 ColorVisualShaderFactory::ColorVisualShaderFactory()
@@ -233,7 +221,7 @@ Shader ColorVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
 {
   Shader                         shader;
   VisualFactoryCache::ShaderType shaderType = featureBuilder.GetShaderType();
-  shader                                    = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+  shader                                    = factoryCache.GetShader(shaderType);
 
   if(!shader)
   {
@@ -245,7 +233,7 @@ Shader ColorVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
     std::string vertexShader   = std::string(Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_COLOR_VISUAL_SHADER_VERT.data());
     std::string fragmentShader = std::string(Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_COLOR_VISUAL_SHADER_FRAG.data());
 
-    shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, featureBuilder.IsDefaultTransformUsed());
+    shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
   }
   return shader;
 }
index 7f14287a17cd4de1c299d185e57f84204c9580fc..81b56f46f89100d8533a0874c6518685462ad6a0 100644 (file)
@@ -90,20 +90,16 @@ public:
   FeatureBuilder& EnableBorderLine(bool enableBorderLine);
   FeatureBuilder& EnableBlur(bool enableBlur);
   FeatureBuilder& EnableCutout(bool enableCutout);
-  FeatureBuilder& UseDefaultTransform(bool useDefaultTransform);
 
   VisualFactoryCache::ShaderType GetShaderType() const;
   void                           GetVertexShaderPrefixList(std::string& vertexShaderPrefixList) const;
   void                           GetFragmentShaderPrefixList(std::string& fragmentShaderPrefixList) const;
 
-  bool IsDefaultTransformUsed() const;
-
 private:
   RoundedCorner::Type mColorRoundCorner : 3; ///< Whether use rounded corner, or not. default as RoundedCorner::DISABLED
   Borderline::Type    mColorBorderline : 2;  ///< Whether use border line, or not. default as Borderline::DISABLED
   Blur::Type          mColorBlur : 2;        ///< Whether use blur, or not. default as Blur::DISABLED
   Cutout::Type        mColorCutout : 2;      ///< Whether use cutout, or not. default as Cutout::DISABLED
-  bool                mUseDefaultTransform : 1;
 };
 } // namespace ColorVisualShaderFeature
 
index ac8419e437f513abc7c2df5f63cb74afa5957067..75997326b699b9e67dfb9dda50c17c5d984a8f6f 100644 (file)
@@ -210,9 +210,6 @@ void ColorVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -261,8 +258,7 @@ Shader ColorVisual::GenerateShader() const
       .EnableBlur(IsBlurRequired())
       .EnableBorderLine(IsBorderlineRequired())
       .EnableRoundCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
-      .EnableCutout(IsCutoutRequired())
-      .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+      .EnableCutout(IsCutoutRequired()));
 
   return shader;
 }
index 4a646e7e3b25d7a2b4e4466bb4a415e3f37618b0..1be5d9f1953d36069de3e74768fd3e9d707184b2 100644 (file)
@@ -186,9 +186,6 @@ void GradientVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -426,7 +423,7 @@ Shader GradientVisual::GenerateShader() const
   DALI_ASSERT_DEBUG(shaderTypeFlag < SHADER_TYPE_TABLE_COUNT && "Invalid gradient shader type generated!");
 
   VisualFactoryCache::ShaderType shaderType = SHADER_TYPE_TABLE[shaderTypeFlag];
-  Shader                         shader     = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+  Shader                         shader     = mFactoryCache.GetShader(shaderType);
   if(!shader)
   {
     std::string vertexShaderPrefixList;
@@ -457,8 +454,7 @@ Shader GradientVisual::GenerateShader() const
 
     shader = mFactoryCache.GenerateAndSaveShader(shaderType,
                                                  Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_VERT.data(),
-                                                 Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_FRAG.data(),
-                                                 mImpl->mTransformMapUsingDefault);
+                                                 Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_GRADIENT_VISUAL_SHADER_FRAG.data());
   }
 
   return shader;
index 499481de6745c1ff3d05a849b7dfc0972df4c7b1..fc28ac83737547b8b762e95db094110c81db9eef 100644 (file)
@@ -96,7 +96,7 @@ Shader ImageVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
     shaderType = static_cast<VisualFactoryCache::ShaderType>(static_cast<int>(shaderType) + NATIVE_SHADER_TYPE_OFFSET);
   }
 
-  shader = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+  shader = factoryCache.GetShader(shaderType);
   if(shader)
   {
     return shader;
@@ -135,7 +135,7 @@ Shader ImageVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
       if(mFragmentShaderNeedChange == ImageVisualShaderFeature::ChangeFragmentShader::DONT_CHANGE)
       {
         shaderType = static_cast<VisualFactoryCache::ShaderType>(static_cast<int>(shaderType) - NATIVE_SHADER_TYPE_OFFSET);
-        shader     = factoryCache.GetShader(shaderType, featureBuilder.IsDefaultTransformUsed());
+        shader     = factoryCache.GetShader(shaderType);
       }
     }
   }
@@ -145,7 +145,7 @@ Shader ImageVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, con
     return shader;
   }
 
-  shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, featureBuilder.IsDefaultTransformUsed());
+  shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
 
   shader.ReserveCustomProperties(CUSTOM_PROPERTY_COUNT +
                                  ((featureBuilder.IsEnabledAlphaMaskingOnRendering() ? 1 : 0)));
index 8f16104900de29b6249c6caeb45365a9a9b29658..2ea9c58a23b3188d6441384e7205d2d1b341d47f 100644 (file)
@@ -77,7 +77,6 @@ FeatureBuilder::FeatureBuilder()
   mBorderline(Borderline::DISABLED),
   mAlphaMaskingOnRendering(AlphaMaskingOnRendering::DISABLED),
   mColorConversion(ColorConversion::DONT_NEED),
-  mUseDefaultTransform(true),
   mTexture()
 {
 }
@@ -124,12 +123,6 @@ FeatureBuilder& FeatureBuilder::EnableYuvToRgb(bool enableYuvToRgb, bool enableU
   return *this;
 }
 
-FeatureBuilder& FeatureBuilder::UseDefaultTransform(bool useDefaultTransform)
-{
-  mUseDefaultTransform = useDefaultTransform;
-  return *this;
-}
-
 VisualFactoryCache::ShaderType FeatureBuilder::GetShaderType() const
 {
   VisualFactoryCache::ShaderType shaderType = VisualFactoryCache::IMAGE_SHADER;
@@ -261,11 +254,6 @@ bool FeatureBuilder::IsEnabledAlphaMaskingOnRendering() const
   return mAlphaMaskingOnRendering == AlphaMaskingOnRendering::ENABLED;
 }
 
-bool FeatureBuilder::IsDefaultTransformUsed() const
-{
-  return mUseDefaultTransform;
-}
-
 } // namespace ImageVisualShaderFeature
 
 } // namespace Internal
index 60bf42d267c414779a4b489a0164caf418ee4a23..0fe9654c66c0f1a9bdc69911e95c79f123ff0592 100644 (file)
@@ -144,8 +144,6 @@ public:
 
   FeatureBuilder& EnableYuvToRgb(bool enableYuvToRgb, bool enableUnifiedYuvAndRgb = false);
 
-  FeatureBuilder& UseDefaultTransform(bool useDefaultTransform);
-
   VisualFactoryCache::ShaderType GetShaderType() const;
 
   ChangeFragmentShader::Type NeedToChangeFragmentShader() const;
@@ -156,7 +154,6 @@ public:
   Dali::Texture GetTexture() const;
 
   bool IsEnabledAlphaMaskingOnRendering() const;
-  bool IsDefaultTransformUsed() const;
 
 private:
   TextureAtlas::Type            mTextureAtlas : 2;            ///< Whether use texture with atlas, or not. default as TextureAtlas::DISABLED
@@ -165,8 +162,8 @@ private:
   Borderline::Type              mBorderline : 2;              ///< Whether use borderline, or not. default as Borderline::DISABLED
   AlphaMaskingOnRendering::Type mAlphaMaskingOnRendering : 2; ///< Whether use runtime alpha masking, or not. default as AlphaMaskingOnRendering::DISABLED
   ColorConversion::Type         mColorConversion : 2;         ///< Whether the color format conversion is needed or not
-  bool                          mUseDefaultTransform : 1;
-  Dali::Texture                 mTexture; ///< Texture to check whether we need to change fragment shader or not
+
+  Dali::Texture mTexture; ///< Texture to check whether we need to change fragment shader or not
 };
 
 } // namespace ImageVisualShaderFeature
index 9b768a9c21f6b722da65103eaf430f98789e5508..23b93b4d8ecb7361752c1ee5417feb0a16a62bb4 100644 (file)
@@ -1102,9 +1102,6 @@ void ImageVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 
   if(mUseSynchronousSizing)
@@ -1415,8 +1412,7 @@ Shader ImageVisual::GenerateShader() const
         .EnableBorderline(IsBorderlineRequired())
         .SetTextureForFragmentShaderCheck(useNativeImage ? mNativeTexture : Dali::Texture())
         .EnableAlphaMaskingOnRendering(requiredAlphaMaskingOnRendering)
-        .EnableYuvToRgb(mNeedYuvToRgb, mNeedUnifiedYuvAndRgb)
-        .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+        .EnableYuvToRgb(mNeedYuvToRgb, mNeedUnifiedYuvAndRgb));
   }
   else
   {
index dd2201c22faba5b70a3748d03d6a8435046970d7..bf100635aacd79e5e398ff02ec967f27dcc88aec 100644 (file)
@@ -239,25 +239,6 @@ void MeshVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
-  }
-}
-
-void MeshVisual::UpdateShader()
-{
-  if(mImpl->mRenderer)
-  {
-    if(!mImpl->mTransformMapUsingDefault)
-    {
-      // Unregister default uniform blocks if transform changed.
-      if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mShader)
-      {
-        mFactoryCache.GetDefaultUniformBlock().DisconnectFromShader(mShader);
-      }
-      mImpl->mRenderer.RegisterVisualTransformUniform();
-    }
   }
 }
 
@@ -323,10 +304,7 @@ void MeshVisual::OnInitialize()
   }
 
   mImpl->mRenderer = VisualRenderer::New(mGeometry, mShader);
-  if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mImpl->mTransformMapUsingDefault)
-  {
-    mFactoryCache.GetDefaultUniformBlock().ConnectToShader(mShader);
-  }
+  mImpl->mRenderer.RegisterVisualTransformUniform();
   mImpl->mRenderer.SetTextures(mTextureSet);
   mImpl->mRenderer.SetProperty(Renderer::Property::DEPTH_WRITE_MODE, DepthWriteMode::ON);
   mImpl->mRenderer.SetProperty(Renderer::Property::DEPTH_TEST_MODE, DepthTestMode::ON);
index 8158ca9e0724955e6a33a29edee3b7eff3a026c6..098978a3d66dedce5ec7b145302dea3cd8c008b3 100644 (file)
@@ -108,11 +108,6 @@ protected:
    */
   void OnSetTransform() override;
 
-  /**
-   * @copydoc Visual::Base::UpdateShader
-   */
-  void UpdateShader() override;
-
 private:
   /**
    * @brief Provide an empty geometry for the visual to use.
index 68a65d87bebe7c1ae8b308d871733a58f8742b46..44fdcb251095660275bd0014614e623deb459cce 100644 (file)
@@ -275,9 +275,6 @@ void NPatchVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 }
 
@@ -467,10 +464,10 @@ Shader NPatchVisual::CreateShader()
     if(DALI_LIKELY((xStretchCount == 1 && yStretchCount == 1) ||
                    (xStretchCount == 0 && yStretchCount == 0)))
     {
-      shader = mFactoryCache.GetShader(shaderType, mImpl->mTransformMapUsingDefault);
+      shader = mFactoryCache.GetShader(shaderType);
       if(DALI_UNLIKELY(!shader))
       {
-        shader = mFactoryCache.GenerateAndSaveShader(shaderType, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, fragmentShader, mImpl->mTransformMapUsingDefault);
+        shader = mFactoryCache.GenerateAndSaveShader(shaderType, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, fragmentShader);
       }
     }
     else if(xStretchCount > 0 || yStretchCount > 0)
index 51da673d6e6175531af65ebbd0cbc1863f921dd4..57e6552bcdaf7fbf193daa0de22969a9002c9fe6 100644 (file)
@@ -365,25 +365,6 @@ void PrimitiveVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
-  }
-}
-
-void PrimitiveVisual::UpdateShader()
-{
-  if(mImpl->mRenderer)
-  {
-    if(!mImpl->mTransformMapUsingDefault)
-    {
-      // Unregister default uniform blocks if transform changed.
-      if(DALI_LIKELY(Dali::Adaptor::IsAvailable()) && mShader)
-      {
-        mFactoryCache.GetDefaultUniformBlock().DisconnectFromShader(mShader);
-      }
-      mImpl->mRenderer.RegisterVisualTransformUniform();
-    }
   }
 }
 
@@ -400,10 +381,7 @@ void PrimitiveVisual::OnInitialize()
   }
 
   mImpl->mRenderer = VisualRenderer::New(mGeometry, mShader);
-  if(mImpl->mTransformMapUsingDefault)
-  {
-    mFactoryCache.GetDefaultUniformBlock().ConnectToShader(mShader);
-  }
+  mImpl->mRenderer.RegisterVisualTransformUniform();
   mImpl->mRenderer.SetProperty(Renderer::Property::FACE_CULLING_MODE, FaceCullingMode::BACK);
   mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
 }
index e50d3132527f4e37af5f9bfa4b7bfae332049ba8..e56d8d7d277e767afe843e980e65cf15c6367fcf 100644 (file)
@@ -155,11 +155,6 @@ protected:
    */
   void OnSetTransform() override;
 
-  /**
-   * @copydoc Visual::Base::UpdateShader
-   */
-  void UpdateShader() override;
-
 private:
   //Simple struct to store the position and normal of a single vertex.
   struct Vertex
index 59136b83a48dbe1ea48a73c9a9d1d33bdc4af72a..e74b8e4ab7c910b4bde373e940080c1daab5bcd7 100644 (file)
@@ -497,9 +497,6 @@ void SvgVisual::OnSetTransform()
   if(mImpl->mRenderer && mImpl->mTransformMapChanged)
   {
     mImpl->SetTransformUniforms(mImpl->mRenderer, Direction::LEFT_TO_RIGHT);
-
-    // TODO : We many need to less call it.
-    UpdateShader();
   }
 
   if(IsOnScene() && !mLoadFailed)
@@ -547,8 +544,7 @@ Shader SvgVisual::GenerateShader() const
       ImageVisualShaderFeature::FeatureBuilder()
         .EnableTextureAtlas(mImpl->mFlags & Visual::Base::Impl::IS_ATLASING_APPLIED)
         .EnableRoundedCorner(IsRoundedCornerRequired(), IsSquircleCornerRequired())
-        .EnableBorderline(IsBorderlineRequired())
-        .UseDefaultTransform(mImpl->mTransformMapUsingDefault));
+        .EnableBorderline(IsBorderlineRequired()));
   }
   else
   {
index e0b5a1af4475b8f5bd8881316806f03567b657b1..d4964d1aeff705087311d6ad3a865b182f7346be 100644 (file)
@@ -167,7 +167,7 @@ Shader TextVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, cons
 {
   Shader                         shader;
   VisualFactoryCache::ShaderType shaderType = featureBuilder.GetShaderType();
-  shader                                    = factoryCache.GetShader(shaderType, false);
+  shader                                    = factoryCache.GetShader(shaderType);
 
   if(!shader)
   {
@@ -179,7 +179,7 @@ Shader TextVisualShaderFactory::GetShader(VisualFactoryCache& factoryCache, cons
     std::string vertexShader   = std::string(Dali::Shader::GetVertexShaderPrefix() + vertexShaderPrefixList + SHADER_TEXT_VISUAL_SHADER_VERT.data());
     std::string fragmentShader = std::string(Dali::Shader::GetFragmentShaderPrefix() + fragmentShaderPrefixList + SHADER_TEXT_VISUAL_SHADER_FRAG.data());
 
-    shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader, false);
+    shader = factoryCache.GenerateAndSaveShader(shaderType, vertexShader, fragmentShader);
   }
   return shader;
 }
index 59a91113e2eafd0cdc7dd7ea9c91fbeff9ac971e..d61c1e46e560eef43100ab8c1d2645e80cbf279b 100644 (file)
@@ -247,7 +247,7 @@ void Visual::Base::SetProperties(const Property::Map& propertyMap)
             // Unusual case. SetProperty called after OnInitialize().
             // Assume that DoAction call UPDATE_PROPERTY.
             mImpl->mTransformMapChanged |= !map.Empty();
-            if(mImpl->mTransformMapChanged)
+            if(mImpl->mTransformMapChanged && mImpl->mTransformMapUsingDefault)
             {
               mImpl->mTransformMapUsingDefault = false;
               mImpl->mRenderer.RegisterVisualTransformUniform();
@@ -537,7 +537,7 @@ void Visual::Base::SetTransformAndSize(const Property::Map& transform, Size cont
 {
   mImpl->mControlSize = controlSize;
   mImpl->mTransformMapChanged |= !transform.Empty();
-  if(mImpl->mTransformMapChanged)
+  if(mImpl->mTransformMapChanged && mImpl->mTransformMapUsingDefault)
   {
     mImpl->mTransformMapUsingDefault = false;
     mImpl->mRenderer.RegisterVisualTransformUniform();
@@ -1406,22 +1406,22 @@ Dali::Property Visual::Base::GetPropertyObject(Dali::Property::Key key)
     case Toolkit::Visual::Transform::Property::OFFSET:
     {
       // Need to change visual transform is not default anymore.
-      mImpl->mTransformMapUsingDefault = false;
-      mImpl->mRenderer.RegisterVisualTransformUniform();
-
-      // Change shader
-      UpdateShader();
+      if(mImpl->mTransformMapUsingDefault)
+      {
+        mImpl->mTransformMapUsingDefault = false;
+        mImpl->mRenderer.RegisterVisualTransformUniform();
+      }
 
       return Dali::Property(mImpl->mRenderer, VisualRenderer::Property::TRANSFORM_OFFSET);
     }
     case Toolkit::Visual::Transform::Property::SIZE:
     {
       // Need to change visual transform is not default anymore.
-      mImpl->mTransformMapUsingDefault = false;
-      mImpl->mRenderer.RegisterVisualTransformUniform();
-
-      // Change shader
-      UpdateShader();
+      if(mImpl->mTransformMapUsingDefault)
+      {
+        mImpl->mTransformMapUsingDefault = false;
+        mImpl->mRenderer.RegisterVisualTransformUniform();
+      }
 
       return Dali::Property(mImpl->mRenderer, VisualRenderer::Property::TRANSFORM_SIZE);
     }
index 751aa67212b6e620b3d93e0880bd5bfaf6b11798..ea780185d756473eee5f9b1d7524e44099fa120a 100644 (file)
@@ -90,35 +90,21 @@ void VisualFactoryCache::SaveGeometry(GeometryType type, Geometry geometry)
   mGeometry[type] = geometry;
 }
 
-Shader VisualFactoryCache::GetShader(ShaderType type, bool useDefaultUniforms)
+Shader VisualFactoryCache::GetShader(ShaderType type)
 {
-  if(useDefaultUniforms)
-  {
-    return mDefaultShader[type];
-  }
   return mShader[type];
 }
 
-Shader VisualFactoryCache::GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader, bool useDefaultUniforms)
+Shader VisualFactoryCache::GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader)
 {
-  Shader shader;
   std::string shaderName = Scripting::GetLinearEnumerationName<ShaderType>(type, VISUAL_SHADER_TYPE_TABLE, VISUAL_SHADER_TYPE_TABLE_COUNT);
 
   // If the shader name is empty, it means that the shader is not generated internally. So, there is need to support file caching. Otherwise, it is defined externally. So, it needs not to support file caching.
-  Shader::Hint::Value shaderHints = shaderName.empty()? Shader::Hint::NONE : Shader::Hint::FILE_CACHE_SUPPORT;
+  Shader::Hint::Value shaderHints = shaderName.empty() ? Shader::Hint::NONE : Shader::Hint::FILE_CACHE_SUPPORT;
 
-  if(useDefaultUniforms)
-  {
-    shader               = Integration::ShaderNewWithUniformBlock(vertexShader, fragmentShader, shaderHints, shaderName, {GetDefaultUniformBlock()});
-    mDefaultShader[type] = shader;
-  }
-  else
-  {
-    shader = Shader::New(vertexShader, fragmentShader, shaderHints, shaderName);
-    mShader[type] = shader;
-  }
+  mShader[type] = Integration::ShaderNewWithUniformBlock(vertexShader, fragmentShader, shaderHints, shaderName, {GetDefaultUniformBlock()});
 
-  return shader;
+  return mShader[type];
 }
 
 Geometry VisualFactoryCache::CreateQuadGeometry()
@@ -380,11 +366,11 @@ Shader VisualFactoryCache::GetNPatchShader(int index)
 
   if(DALI_LIKELY((xStretchCount == 0 && yStretchCount == 0) || (xStretchCount == 1 && yStretchCount == 1)))
   {
-    shader = GetShader(VisualFactoryCache::NINE_PATCH_SHADER, false);
+    shader = GetShader(VisualFactoryCache::NINE_PATCH_SHADER);
     if(DALI_UNLIKELY(!shader))
     {
       // Only cache vanilla 9 patch shaders
-      shader = GenerateAndSaveShader(VisualFactoryCache::NINE_PATCH_SHADER, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, SHADER_NPATCH_VISUAL_SHADER_FRAG, false);
+      shader = GenerateAndSaveShader(VisualFactoryCache::NINE_PATCH_SHADER, SHADER_NPATCH_VISUAL_3X3_SHADER_VERT, SHADER_NPATCH_VISUAL_SHADER_FRAG);
     }
   }
   else if(xStretchCount > 0 || yStretchCount > 0)
@@ -491,10 +477,10 @@ void VisualFactoryCache::UpdateBrokenImageRenderer(VisualRenderer& renderer, con
     if(!rendererIsImage)
     {
       Geometry geometry = GetGeometry(QUAD_GEOMETRY);
-      Shader   shader   = GetShader(IMAGE_SHADER, false);
+      Shader   shader   = GetShader(IMAGE_SHADER);
       if(!shader)
       {
-        shader = GenerateAndSaveShader(IMAGE_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_FRAG.data(), false);
+        shader = GenerateAndSaveShader(IMAGE_SHADER, Dali::Shader::GetVertexShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_VERT.data(), Dali::Shader::GetFragmentShaderPrefix() + SHADER_IMAGE_VISUAL_SHADER_FRAG.data());
         shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
         shader.RegisterProperty(PREMULTIPLIED_ALPHA, ALPHA_VALUE_PREMULTIPLIED);
       }
index 7763dc1ac50778e91b4fa545617ec0fc0857cfc2..116d5e44f6519e15caf1bfd3e45aeedd7ee876c6 100644 (file)
@@ -223,17 +223,16 @@ public:
    * Request shader of the given type.
    * @return The shader of the required type if it exist in the cache. Otherwise, an empty handle is returned.
    */
-  Shader GetShader(ShaderType type, bool useDefaultUniforms = false);
+  Shader GetShader(ShaderType type);
 
   /**
    * Generate and cache the shader of the give type. The name of shader will be installed to shader.
    * @param[in] type The shder type.
    * @param[in] vertexShader The vertex shader code.
    * @param[in] fragmentShader The fragment shader code.
-   * @param[in] useDefaultUniforms Whether to use default uniforms or not.
    * @return The shader created by given vertex and fragment shader code.
    */
-  Shader GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader, bool useDefaultUniforms = false);
+  Shader GenerateAndSaveShader(ShaderType type, std::string_view vertexShader, std::string_view fragmentShader);
 
   /*
    * Greate the quad geometry.
@@ -411,7 +410,6 @@ private:
 
   Geometry mGeometry[GEOMETRY_TYPE_MAX];
   Shader   mShader[SHADER_TYPE_MAX];
-  Shader   mDefaultShader[SHADER_TYPE_MAX];
 
   bool mLoadYuvPlanes; ///< A global flag to specify if the image should be loaded as yuv planes