Register PixelArea property only if required. 95/298495/3
authorEunki, Hong <eunkiki.hong@samsung.com>
Fri, 8 Sep 2023 00:01:15 +0000 (09:01 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Mon, 11 Sep 2023 00:32:39 +0000 (09:32 +0900)
Since we were try to register uPixelArea property for every image-visual,
The Shader try to send PropertResetter very frequencly.

Since we only need to register that property only 1 time +
We can control pixel area by Renderer,
Let we register uPixelArea property only 1 times for creation.

And also, there was some useless uPixelArea usage on text-visual.
Let we just remove it.

Change-Id: Ib784e0088243f2a70f8556ae0dc9fa7c957b5aa2
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali-toolkit/internal/graphics/shaders/text-visual-shader.vert
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/text/text-visual.cpp

index 6e90fe9..68503a9 100644 (file)
@@ -1,7 +1,6 @@
 INPUT mediump vec2 aPosition;
 uniform highp mat4 uMvpMatrix;
 uniform highp vec3 uSize;
-uniform mediump vec4 pixelArea;
 
 OUTPUT mediump vec2 vTexCoord;
 
@@ -21,6 +20,6 @@ vec4 ComputeVertexPosition()
 
 void main()
 {
+  vTexCoord = aPosition + vec2(0.5);
   gl_Position = uMvpMatrix * ComputeVertexPosition();
-  vTexCoord = pixelArea.xy+pixelArea.zw*(aPosition + vec2(0.5) );
 }
index 5b2aff8..49635e4 100644 (file)
@@ -1012,8 +1012,8 @@ void ImageVisual::FastLoadComplete(FastTrackLoadingTaskPtr task)
   }
   else
   {
-    resourceStatus    = Toolkit::Visual::ResourceStatus::FAILED;
-    mLoadState        = TextureManager::LoadState::LOAD_FAILED;
+    resourceStatus = Toolkit::Visual::ResourceStatus::FAILED;
+    mLoadState     = TextureManager::LoadState::LOAD_FAILED;
 
     // Change renderer as broken.
     ShowBrokenImage();
@@ -1214,7 +1214,6 @@ Shader ImageVisual::GenerateShader() const
 {
   Shader shader;
 
-  bool       usesWholeTexture  = true;
   const bool useStandardShader = !mImpl->mCustomShader;
   const bool useNativeImage    = (mTextures && DevelTexture::IsNative(mTextures.GetTexture(0)));
 
@@ -1235,6 +1234,7 @@ Shader ImageVisual::GenerateShader() const
   }
   else
   {
+    bool             usesWholeTexture = true;
     std::string_view vertexShaderView;
     std::string_view fragmentShaderView;
 
@@ -1278,11 +1278,11 @@ Shader ImageVisual::GenerateShader() const
     {
       shader = Shader::New(vertexShaderView, fragmentShaderView, mImpl->mCustomShader->mHints);
     }
-  }
 
-  if(usesWholeTexture)
-  {
-    shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
+    if(usesWholeTexture)
+    {
+      shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
+    }
   }
 
   return shader;
index eda8a57..b7bdbfb 100644 (file)
@@ -55,8 +55,6 @@ DALI_INIT_TRACE_FILTER(gTraceFilter, DALI_TRACE_TEXT_PERFORMANCE_MARKER, false);
 
 const int CUSTOM_PROPERTY_COUNT(5); // anim,premul,size,offset,multicol
 
-const Vector4 FULL_TEXTURE_RECT(0.f, 0.f, 1.f, 1.f);
-
 /**
  * Return Property index for the given string key
  * param[in] stringKey the string index key
@@ -848,7 +846,6 @@ Shader TextVisual::GetTextShader(VisualFactoryCache& factoryCache, const TextVis
   mTextShaderFeatureCache = featureBuilder;
 
   Shader shader = mTextVisualShaderFactory.GetShader(factoryCache, mTextShaderFeatureCache);
-  shader.RegisterProperty(PIXEL_AREA_UNIFORM_NAME, FULL_TEXTURE_RECT);
   return shader;
 }