X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Fasync-image-loader-impl.cpp;h=1b764cbdb9639fe8b27484db9dcb9c2169212826;hp=06065b79262b424c97e158d296437dce966db0e1;hb=8b474798c4b5a53412ed526f6279d4d27b440fc9;hpb=7386b0e7cc501917168284f388353dab660db58f diff --git a/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp b/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp index 06065b7..1b764cb 100644 --- a/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp +++ b/dali-toolkit/internal/image-loader/async-image-loader-impl.cpp @@ -19,7 +19,6 @@ #include "async-image-loader-impl.h" // EXTERNAL INCLUDES -#include #include namespace Dali @@ -50,21 +49,19 @@ IntrusivePtr AsyncImageLoader::New() return internal; } -uint32_t AsyncImageLoader::Load( const std::string& url, +uint32_t AsyncImageLoader::Load( const VisualUrl& url, ImageDimensions dimensions, FittingMode::Type fittingMode, SamplingMode::Type samplingMode, - bool orientationCorrection ) + bool orientationCorrection, + DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad) { if( !mIsLoadThreadStarted ) { mLoadThread.Start(); mIsLoadThreadStarted = true; } - - BitmapLoader loader = BitmapLoader::New( url, dimensions, fittingMode, samplingMode, orientationCorrection ); - - mLoadThread.AddTask( new LoadingTask( ++mLoadTaskId, loader ) ); + mLoadThread.AddTask( new LoadingTask( ++mLoadTaskId, url, dimensions, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad ) ); return mLoadTaskId; } @@ -74,6 +71,11 @@ Toolkit::AsyncImageLoader::ImageLoadedSignalType& AsyncImageLoader::ImageLoadedS return mLoadedSignal; } +Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType& AsyncImageLoader::PixelBufferLoadedSignal() +{ + return mPixelBufferLoadedSignal; +} + bool AsyncImageLoader::Cancel( uint32_t loadingTaskId ) { return mLoadThread.CancelTask( loadingTaskId ); @@ -86,9 +88,22 @@ void AsyncImageLoader::CancelAll() void AsyncImageLoader::ProcessLoadedImage() { - while( LoadingTask *next = mLoadThread.NextCompletedTask() ) + while( LoadingTask *next = mLoadThread.NextCompletedTask() ) { - mLoadedSignal.Emit( next->id, next->loader.GetPixelData() ); + if( mPixelBufferLoadedSignal.GetConnectionCount() > 0 ) + { + mPixelBufferLoadedSignal.Emit( next->id, next->pixelBuffer ); + } + else if( mLoadedSignal.GetConnectionCount() > 0 ) + { + PixelData pixelData; + if( next->pixelBuffer ) + { + pixelData = Devel::PixelBuffer::Convert( next->pixelBuffer ); + } + mLoadedSignal.Emit( next->id, pixelData ); + } + delete next; } }