X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fimage-atlas-manager.cpp;h=577a433b4442b0f3c17461bbb0dcc196fae533b6;hp=1f634e1d201e5f369183d4f79af3e94a41a1a609;hb=48000ec3ab1ca2d1f8001d192112e32357bb1dfc;hpb=2ca1c3856ce848a94f54444f1014a820e91ee207 diff --git a/dali-toolkit/internal/visuals/image-atlas-manager.cpp b/dali-toolkit/internal/visuals/image-atlas-manager.cpp index 1f634e1..577a433 100644 --- a/dali-toolkit/internal/visuals/image-atlas-manager.cpp +++ b/dali-toolkit/internal/visuals/image-atlas-manager.cpp @@ -21,6 +21,9 @@ // EXTERNAL HEADER #include +// INTERNAL HEADERS +#include + namespace Dali { namespace Toolkit @@ -43,8 +46,25 @@ ImageAtlasManager::~ImageAtlasManager() { } +bool ImageAtlasManager::CheckAtlasAvailable(const VisualUrl& url, const ImageDimensions& size) const +{ + ImageDimensions dimensions = size; + ImageDimensions zero; + if(size == zero) + { + dimensions = Dali::GetClosestImageSize(url.GetUrl()); + } + + // big image, atlasing is not applied + if(static_cast(dimensions.GetWidth()) * static_cast(dimensions.GetHeight()) > MAX_ITEM_AREA || dimensions.GetWidth() > DEFAULT_ATLAS_SIZE || dimensions.GetHeight() > DEFAULT_ATLAS_SIZE) + { + return false; + } + return true; +} + TextureSet ImageAtlasManager::Add(Vector4& textureRect, - const std::string& url, + const VisualUrl& url, ImageDimensions& size, FittingMode::Type fittingMode, bool orientationCorrection, @@ -54,7 +74,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, ImageDimensions zero; if(size == zero) { - dimensions = Dali::GetClosestImageSize(url); + dimensions = Dali::GetClosestImageSize(url.GetUrl()); } // big image, atlasing is not applied @@ -67,7 +87,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, unsigned int i = 0; for(AtlasContainer::iterator iter = mAtlasList.begin(); iter != mAtlasList.end(); ++iter) { - if((*iter).Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver)) + if(GetImplementation(*iter).Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver)) { return mTextureSetList[i]; } @@ -75,7 +95,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, } CreateNewAtlas(); - mAtlasList.back().Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver); + GetImplementation(mAtlasList.back()).Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver); return mTextureSetList.back(); }