+ visualPtr = TextVisual::New(GetFactoryCache(), propertyMap);
+ break;
+ }
+
+ case Toolkit::Visual::N_PATCH:
+ {
+ Property::Value* imageURLValue = propertyMap.Find(Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME);
+ std::string imageUrl;
+ if(imageURLValue && imageURLValue->Get(imageUrl))
+ {
+ visualPtr = NPatchVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap);
+ }
+ break;
+ }
+
+ case Toolkit::Visual::SVG:
+ {
+ Property::Value* imageURLValue = propertyMap.Find(Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME);
+ std::string imageUrl;
+ if(imageURLValue && imageURLValue->Get(imageUrl))
+ {
+ visualPtr = SvgVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap);
+ }
+ break;
+ }
+
+ case Toolkit::Visual::ANIMATED_IMAGE:
+ {
+ Property::Value* imageURLValue = propertyMap.Find(Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME);
+ std::string imageUrl;
+ if(imageURLValue)
+ {
+ if(imageURLValue->Get(imageUrl))
+ {
+ visualPtr = AnimatedImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap);
+ }
+ else
+ {
+ Property::Array* array = imageURLValue->GetArray();
+ if(array)
+ {
+ visualPtr = AnimatedImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), *array, propertyMap);
+ }
+ }
+ }
+ break;
+ }
+
+ case Toolkit::DevelVisual::ANIMATED_GRADIENT:
+ {
+ visualPtr = AnimatedGradientVisual::New(GetFactoryCache(), propertyMap);
+ break;
+ }
+
+ case Toolkit::DevelVisual::ANIMATED_VECTOR_IMAGE:
+ {
+ Property::Value* imageURLValue = propertyMap.Find(Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME);
+ std::string imageUrl;
+ if(imageURLValue && imageURLValue->Get(imageUrl))
+ {
+ visualPtr = AnimatedVectorImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap);
+ }
+ break;
+ }
+
+ case Toolkit::DevelVisual::ARC:
+ {
+ visualPtr = ArcVisual::New(GetFactoryCache(), propertyMap);