X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-impl.cpp;h=dcc997b36178943b305541755ae8012bb649ffbc;hb=df5ffd24e0610a77e53c5e6206ca5c9a761b8f65;hp=4afade970e7625644d8d06acd33f676a6ab6d996;hpb=aefe38ba476a1f7899b10fcb1481bde3b5ba906a;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index 4afade9..dcc997b 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include @@ -59,6 +60,10 @@ namespace Internal namespace { +#if defined(DEBUG_ENABLED) +Debug::Filter* gLogFilter = Debug::Filter::New( Debug::NoLogging, false, "LOG_CONTROL_VISUALS"); +#endif + BaseHandle Create() { BaseHandle handle = Toolkit::VisualFactory::Get(); @@ -161,6 +166,11 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property visualPtr = AnimatedImageVisual::New( GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap ); break; } + case VisualUrl::JSON: + { + visualPtr = AnimatedVectorImageVisual::New( GetFactoryCache(), GetImageVisualShaderFactory(), imageUrl, propertyMap ); + break; + } case VisualUrl::REGULAR_IMAGE: { visualPtr = ImageVisual::New( GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, propertyMap ); @@ -254,11 +264,36 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property 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; + } } + DALI_LOG_INFO( gLogFilter, Debug::Concise, "VisualFactory::CreateVisual( VisualType:%s %s%s)\n", + Scripting::GetEnumerationName( visualType, + VISUAL_TYPE_TABLE, + VISUAL_TYPE_TABLE_COUNT ), + ( visualType == Toolkit::DevelVisual::IMAGE ) ? "url:" : "", + ( visualType == Toolkit::DevelVisual::IMAGE ) ? + ( ([&] (){ + // Return URL if present in PropertyMap else return "not found message" + Property::Value* imageURLValue = propertyMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME ); + return ( imageURLValue ) ? imageURLValue->Get().c_str() : "url not found in PropertyMap"; + })() + ) + : "" ); + if( !visualPtr ) { - DALI_LOG_ERROR( "Renderer type unknown\n" ); + DALI_LOG_ERROR( "VisualType unknown\n" ); } if( mDebugEnabled && visualType != Toolkit::DevelVisual::WIREFRAME ) @@ -321,6 +356,11 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const std::string& url, Image visualPtr = AnimatedImageVisual::New( GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl ); break; } + case VisualUrl::JSON: + { + visualPtr = AnimatedVectorImageVisual::New( GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl ); + break; + } case VisualUrl::REGULAR_IMAGE: { visualPtr = ImageVisual::New(GetFactoryCache(), GetImageVisualShaderFactory(), visualUrl, size );