// EXTERNAL HEADER
#include <dali/devel-api/adaptor-framework/image-loading.h>
+// INTERNAL HEADERS
+#include <dali-toolkit/internal/image-loader/image-atlas-impl.h>
+
namespace Dali
{
namespace Toolkit
{
}
+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<uint32_t>(dimensions.GetWidth()) * static_cast<uint32_t>(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,
ImageDimensions zero;
if(size == zero)
{
- dimensions = Dali::GetClosestImageSize(url);
+ dimensions = Dali::GetClosestImageSize(url.GetUrl());
}
// big image, atlasing is not applied
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];
}
}
CreateNewAtlas();
- mAtlasList.back().Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver);
+ GetImplementation(mAtlasList.back()).Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver);
return mTextureSetList.back();
}