#include <dali-toolkit/internal/visuals/svg/svg-visual.h>
#include <dali-toolkit/internal/visuals/image-atlas-manager.h>
-namespace
-{
-const char * const BROKEN_VISUAL_IMAGE_URL( DALI_IMAGE_DIR "broken.png");
-}
-
namespace Dali
{
namespace Internal
{
-VisualFactoryCache::VisualFactoryCache()
-: mSvgRasterizeThread( NULL )
+VisualFactoryCache::VisualFactoryCache( bool preMultiplyOnLoad )
+: mSvgRasterizeThread( NULL ),
+ mVectorAnimationThread(),
+ mBrokenImageUrl(""),
+ mPreMultiplyOnLoad( preMultiplyOnLoad )
{
}
if( !mAtlasManager )
{
mAtlasManager = new ImageAtlasManager();
- mAtlasManager->SetBrokenImage( BROKEN_VISUAL_IMAGE_URL );
+ mAtlasManager->SetBrokenImage( mBrokenImageUrl );
}
return mAtlasManager;
}
+TextureManager& VisualFactoryCache::GetTextureManager()
+{
+ return mTextureManager;
+}
+
NPatchLoader& VisualFactoryCache::GetNPatchLoader()
{
return mNPatchLoader;
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() )
{
- task->GetSvgVisual()->ApplyRasterizedImage( task->GetPixelData() );
+ task->GetSvgVisual()->ApplyRasterizedImage( task->GetParsedImage(), task->GetPixelData() );
}
}
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