From 28df020d7e67b113b8ed40986dea9d7307bf8f86 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Wed, 14 May 2025 14:37:25 +0900 Subject: [PATCH] [Tizen] Create new gradient visual only if required Change-Id: Ic3a859b106ffe03ae3167c20d88188e6457680e1 Signed-off-by: Eunki, Hong --- .../visuals/gradient/gradient-visual.cpp | 51 ++++++++++--------- 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp index 6156c8ce06..da1d1a661d 100644 --- a/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp +++ b/dali-toolkit/internal/visuals/gradient/gradient-visual.cpp @@ -171,32 +171,35 @@ GradientVisual::~GradientVisual() void GradientVisual::DoSetProperties(const Property::Map& propertyMap) { - Toolkit::GradientVisual::Units::Type gradientUnits = Toolkit::GradientVisual::Units::OBJECT_BOUNDING_BOX; - - Property::Value* unitsValue = propertyMap.Find(Toolkit::GradientVisual::Property::UNITS, UNITS_NAME); - if(unitsValue) + if(!mGradient) { - Scripting::GetEnumerationProperty(*unitsValue, UNITS_TABLE, UNITS_TABLE_COUNT, gradientUnits); - } + Toolkit::GradientVisual::Units::Type gradientUnits = Toolkit::GradientVisual::Units::OBJECT_BOUNDING_BOX; - mGradientType = Type::LINEAR; - if(propertyMap.Find(Toolkit::GradientVisual::Property::RADIUS, RADIUS_NAME)) - { - mGradientType = Type::RADIAL; - } - else if(propertyMap.Find(Toolkit::GradientVisual::Property::START_ANGLE, CONIC_START_ANGLE_NAME)) - { - mGradientType = Type::CONIC; - } + Property::Value* unitsValue = propertyMap.Find(Toolkit::GradientVisual::Property::UNITS, UNITS_NAME); + if(unitsValue) + { + Scripting::GetEnumerationProperty(*unitsValue, UNITS_TABLE, UNITS_TABLE_COUNT, gradientUnits); + } - if(NewGradient(mGradientType, propertyMap)) - { - mGradient->SetGradientUnits(gradientUnits); - mGradientTransform = mGradient->GetAlignmentTransform(); - } - else - { - DALI_LOG_ERROR("Fail to provide valid properties to create a GradientVisual object\n"); + mGradientType = Type::LINEAR; + if(propertyMap.Find(Toolkit::GradientVisual::Property::RADIUS, RADIUS_NAME)) + { + mGradientType = Type::RADIAL; + } + else if(propertyMap.Find(Toolkit::GradientVisual::Property::START_ANGLE, CONIC_START_ANGLE_NAME)) + { + mGradientType = Type::CONIC; + } + + if(NewGradient(mGradientType, propertyMap)) + { + mGradient->SetGradientUnits(gradientUnits); + mGradientTransform = mGradient->GetAlignmentTransform(); + } + else + { + DALI_LOG_ERROR("Fail to provide valid properties to create a GradientVisual object\n"); + } } } @@ -367,7 +370,7 @@ bool GradientVisual::NewGradient(Type gradientType, const Property::Map& propert } else // if(gradientType == Type::CONIC) { - Property::Value* centerValue = propertyMap.Find(Toolkit::GradientVisual::Property::CENTER, CENTER_NAME); + Property::Value* centerValue = propertyMap.Find(Toolkit::GradientVisual::Property::CENTER, CENTER_NAME); Property::Value* startAngleValue = propertyMap.Find(Toolkit::GradientVisual::Property::START_ANGLE, CONIC_START_ANGLE_NAME); Vector2 center; float startAngle; -- 2.34.1