From 5c756df3b9feed019532b32cd02f0cedb05689c7 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Fri, 8 Sep 2023 09:01:15 +0900 Subject: [PATCH] Register PixelArea property only if required. 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 --- .../internal/graphics/shaders/text-visual-shader.vert | 3 +-- dali-toolkit/internal/visuals/image/image-visual.cpp | 14 +++++++------- dali-toolkit/internal/visuals/text/text-visual.cpp | 3 --- 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert b/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert index 6e90fe9..68503a9 100644 --- a/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert +++ b/dali-toolkit/internal/graphics/shaders/text-visual-shader.vert @@ -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) ); } diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index 5b2aff8..49635e4 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -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; diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index eda8a57..b7bdbfb 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -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; } -- 2.7.4