X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-factory-cache.cpp;h=3852361ed76390e1df2ae988c25de52ee70e25a8;hp=d9a566df8948be6549103aa7cd0c87a266c0cd68;hb=2b0beeb59996e7b52649eab32c9c5a964a894f08;hpb=05316fdb6779dced99b135c06326ddaeea1fc2ee diff --git a/dali-toolkit/internal/visuals/visual-factory-cache.cpp b/dali-toolkit/internal/visuals/visual-factory-cache.cpp index d9a566d..3852361 100644 --- a/dali-toolkit/internal/visuals/visual-factory-cache.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-cache.cpp @@ -26,6 +26,7 @@ #include #include + namespace { const char * const BROKEN_VISUAL_IMAGE_URL( DALI_IMAGE_DIR "broken.png"); @@ -40,8 +41,11 @@ namespace Toolkit namespace Internal { -VisualFactoryCache::VisualFactoryCache() -: mSvgRasterizeThread( NULL ) +VisualFactoryCache::VisualFactoryCache( bool preMultiplyOnLoad ) +: mSvgRasterizeThread( NULL ), + mVectorAnimationThread(), + mBrokenImageUrl(""), + mPreMultiplyOnLoad( preMultiplyOnLoad ) { } @@ -106,7 +110,7 @@ ImageAtlasManagerPtr VisualFactoryCache::GetAtlasManager() if( !mAtlasManager ) { mAtlasManager = new ImageAtlasManager(); - mAtlasManager->SetBrokenImage( BROKEN_VISUAL_IMAGE_URL ); + mAtlasManager->SetBrokenImage( mBrokenImageUrl ); } return mAtlasManager; @@ -132,6 +136,16 @@ SvgRasterizeThread* VisualFactoryCache::GetSVGRasterizationThread() return mSvgRasterizeThread; } +VectorAnimationThread& VisualFactoryCache::GetVectorAnimationThread() +{ + if( !mVectorAnimationThread ) + { + mVectorAnimationThread = std::unique_ptr< VectorAnimationThread >( new VectorAnimationThread() ); + mVectorAnimationThread->Start(); + } + return *mVectorAnimationThread; +} + void VisualFactoryCache::ApplyRasterizedSVGToSampler() { while( RasterizingTaskPtr task = mSvgRasterizeThread->NextCompletedTask() ) @@ -211,7 +225,30 @@ Geometry VisualFactoryCache::CreateGridGeometry( Uint16Pair gridSize ) Image VisualFactoryCache::GetBrokenVisualImage() { - return ResourceImage::New( BROKEN_VISUAL_IMAGE_URL ); + return ResourceImage::New( mBrokenImageUrl ); +} + +void VisualFactoryCache::SetPreMultiplyOnLoad( bool preMultiply ) +{ + mPreMultiplyOnLoad = preMultiply; +} + +bool VisualFactoryCache::GetPreMultiplyOnLoad() +{ + return mPreMultiplyOnLoad; +} + +void VisualFactoryCache::SetBrokenImageUrl(const std::string& brokenImageUrl) +{ + mBrokenImageUrl = brokenImageUrl; + + if( !mAtlasManager ) + { + mAtlasManager = new ImageAtlasManager(); + } + + mAtlasManager->SetBrokenImage( mBrokenImageUrl ); + mTextureManager.SetBrokenImageUrl( mBrokenImageUrl ); } } // namespace Internal