X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Fimage-atlas-impl.cpp;h=d1674990a1b13dae58ccc2633a3934e55210cc53;hp=d784d3e2586cc9b559fe6dfc3eb6c9a1d621cf60;hb=8b474798c4b5a53412ed526f6279d4d27b440fc9;hpb=8e7cfd0c114bf778287cc6e67d0f42f3c866e205 diff --git a/dali-toolkit/internal/image-loader/image-atlas-impl.cpp b/dali-toolkit/internal/image-loader/image-atlas-impl.cpp index d784d3e..d167499 100644 --- a/dali-toolkit/internal/image-loader/image-atlas-impl.cpp +++ b/dali-toolkit/internal/image-loader/image-atlas-impl.cpp @@ -21,8 +21,7 @@ // EXTERNAL INCLUDES #include #include -#include -#include +#include #include namespace Dali @@ -127,7 +126,7 @@ float ImageAtlas::GetOccupancyRate() const void ImageAtlas::SetBrokenImage( const std::string& brokenImageUrl ) { - mBrokenImageSize = ResourceImage::GetImageSize( brokenImageUrl ); + mBrokenImageSize = Dali::GetClosestImageSize( brokenImageUrl ); if(mBrokenImageSize.GetWidth() > 0 && mBrokenImageSize.GetHeight() > 0 ) // check the url is valid { mBrokenImageUrl = brokenImageUrl; @@ -145,7 +144,7 @@ bool ImageAtlas::Upload( Vector4& textureRect, ImageDimensions zero; if( size == zero ) // image size not provided { - dimensions = ResourceImage::GetImageSize( url ); + dimensions = Dali::GetClosestImageSize( url ); if( dimensions == zero ) // Fail to read the image & broken image file exists { if( !mBrokenImageUrl.empty() ) @@ -164,7 +163,7 @@ bool ImageAtlas::Upload( Vector4& textureRect, unsigned int packPositionY = 0; if( mPacker.Pack( dimensions.GetWidth(), dimensions.GetHeight(), packPositionX, packPositionY ) ) { - unsigned short loadId = mAsyncLoader.Load( url, size, fittingMode, SamplingMode::BOX_THEN_LINEAR, orientationCorrection ); + unsigned short loadId = mAsyncLoader.Load( url, size, fittingMode, SamplingMode::BOX_THEN_LINEAR, orientationCorrection); mLoadingTaskInfoContainer.PushBack( new LoadingTaskInfo( loadId, packPositionX, packPositionY, dimensions.GetWidth(), dimensions.GetHeight(), atlasUploadObserver ) ); // apply the half pixel correction textureRect.x = ( static_cast( packPositionX ) +0.5f ) / mWidth; // left @@ -262,10 +261,9 @@ void ImageAtlas::UploadToAtlas( uint32_t id, PixelData pixelData ) void ImageAtlas::UploadBrokenImage( const Rect& area ) { - BitmapLoader loader = BitmapLoader::New(mBrokenImageUrl, ImageDimensions( area.width, area.height ) ); - loader.Load(); - SizeType loadedWidth = loader.GetPixelData().GetWidth(); - SizeType loadedHeight = loader.GetPixelData().GetHeight(); + Devel::PixelBuffer brokenBuffer = LoadImageFromFile( mBrokenImageUrl, ImageDimensions( area.width, area.height ) ); + SizeType loadedWidth = brokenBuffer.GetWidth(); + SizeType loadedHeight = brokenBuffer.GetHeight(); bool needBackgroundClear = false; SizeType packX = area.x; @@ -285,16 +283,18 @@ void ImageAtlas::UploadBrokenImage( const Rect& area ) if( needBackgroundClear ) { SizeType size = area.width * area.height * Pixel::GetBytesPerPixel( mPixelFormat ); - PixelBuffer* buffer = new PixelBuffer [size]; - PixelData background = PixelData::New( buffer, size, area.width, area.height, mPixelFormat, PixelData::DELETE_ARRAY ); + Devel::PixelBuffer background = Devel::PixelBuffer::New( area.width, area.height, mPixelFormat ); + unsigned char* buffer = background.GetBuffer(); for( SizeType idx = 0; idx < size; idx++ ) { buffer[idx] = 0x00; } - mAtlas.Upload( background, 0u, 0u, area.x, area.y, area.width, area.height ); + PixelData pixelData = Devel::PixelBuffer::Convert( background ); + mAtlas.Upload( pixelData, 0u, 0u, area.x, area.y, area.width, area.height ); } - mAtlas.Upload( loader.GetPixelData(), 0u, 0u, packX, packY, loadedWidth, loadedHeight ); + PixelData brokenPixelData = Devel::PixelBuffer::Convert( brokenBuffer ); + mAtlas.Upload( brokenPixelData, 0u, 0u, packX, packY, loadedWidth, loadedHeight ); } } // namespace Internal