+ if(imageURLValue->Get(imageUrl))
+ {
+ if(!imageUrl.empty())
+ {
+ VisualUrl visualUrl(imageUrl);
+
+ switch(visualUrl.GetType())
+ {
+ case VisualUrl::N_PATCH:
+ {
+ visualPtr = NPatchVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap);
+ break;
+ }
+ case VisualUrl::TVG:
+ case VisualUrl::SVG:
+ {
+ visualPtr = SvgVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap);
+ break;
+ }
+ case VisualUrl::JSON:
+ {
+ visualPtr = AnimatedVectorImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap);
+ break;
+ }
+ case VisualUrl::GIF:
+ case VisualUrl::WEBP:
+ {
+ if(visualType == Toolkit::DevelVisual::ANIMATED_IMAGE || !(creationOptions & Toolkit::VisualFactory::CreationOptions::IMAGE_VISUAL_LOAD_STATIC_IMAGES_ONLY))
+ {
+ visualPtr = AnimatedImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap);
+ break;
+ }
+ DALI_FALLTHROUGH;
+ }
+ case VisualUrl::REGULAR_IMAGE:
+ {
+ visualPtr = ImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap);
+ break;
+ }
+ }
+ }
+ }
+ else
+ {
+ Property::Array* array = imageURLValue->GetArray();
+ if(array && array->Count() > 0)
+ {
+ visualPtr = AnimatedImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), *array, propertyMap);
+ }
+ }