X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-resolve-url.h;h=2c1c45b7ee6286d231a08981a14145d66d88564a;hb=6b6c1a325a1a66f17225e712f3b94054a771e7c8;hp=1d3ffe3bfdab05f10426286109a8f973e38570ce;hpb=99f2a4758a1830accbcd79f4bc6b5c0ca836e2fe;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/visual-factory-resolve-url.h b/dali-toolkit/internal/visuals/visual-factory-resolve-url.h index 1d3ffe3..2c1c45b 100644 --- a/dali-toolkit/internal/visuals/visual-factory-resolve-url.h +++ b/dali-toolkit/internal/visuals/visual-factory-resolve-url.h @@ -37,7 +37,8 @@ namespace UrlType { REGULAR_IMAGE, N_PATCH, - SVG + SVG, + GIF }; } @@ -55,7 +56,9 @@ inline UrlType::Type ResolveUrlType( const std::string& url ) // parsing from the end for better chance of early outs enum { SUFFIX, HASH, HASH_DOT } state = SUFFIX; char SVG[ 4 ] = { 'g', 'v', 's', '.' }; + char GIF[ 4 ] = { 'f', 'i', 'g', '.' }; unsigned int svgScore = 0; + unsigned int gifScore = 0; int index = count; while( --index >= 0 ) { @@ -69,6 +72,14 @@ inline UrlType::Type ResolveUrlType( const std::string& url ) return UrlType::SVG; } } + if( ( offsetFromEnd < sizeof(GIF) )&&( tolower( currentChar ) == GIF[ offsetFromEnd ] ) ) + { + // early out if GIF + if( ++gifScore == sizeof(GIF) ) + { + return UrlType::GIF; + } + } switch( state ) { case SUFFIX: