X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fimage-atlas-manager.cpp;h=25fff3985a8fcb2e66ddf4fc0956382a2d6c1c37;hb=a6e73b84ce0442ad28197c3ef2ed1b48fa682508;hp=577a433b4442b0f3c17461bbb0dcc196fae533b6;hpb=48000ec3ab1ca2d1f8001d192112e32357bb1dfc;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/image-atlas-manager.cpp b/dali-toolkit/internal/visuals/image-atlas-manager.cpp index 577a433..25fff39 100644 --- a/dali-toolkit/internal/visuals/image-atlas-manager.cpp +++ b/dali-toolkit/internal/visuals/image-atlas-manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -84,7 +84,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, } size = dimensions; - unsigned int i = 0; + uint32_t i = 0; for(AtlasContainer::iterator iter = mAtlasList.begin(); iter != mAtlasList.end(); ++iter) { if(GetImplementation(*iter).Upload(textureRect, url, size, fittingMode, orientationCorrection, atlasUploadObserver)) @@ -99,6 +99,34 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, return mTextureSetList.back(); } +TextureSet ImageAtlasManager::Add(Vector4& textureRect, + const EncodedImageBuffer& encodedImageBuffer, + const ImageDimensions& size, + FittingMode::Type fittingMode, + bool orientationCorrection, + AtlasUploadObserver* atlasUploadObserver) +{ + // big image, atlasing is not applied + if(static_cast(size.GetWidth()) * static_cast(size.GetHeight()) > MAX_ITEM_AREA || size.GetWidth() > DEFAULT_ATLAS_SIZE || size.GetHeight() > DEFAULT_ATLAS_SIZE) + { + return TextureSet(); + } + + uint32_t i = 0; + for(AtlasContainer::iterator iter = mAtlasList.begin(); iter != mAtlasList.end(); ++iter) + { + if(GetImplementation(*iter).Upload(textureRect, encodedImageBuffer, size, fittingMode, orientationCorrection, atlasUploadObserver)) + { + return mTextureSetList[i]; + } + i++; + } + + CreateNewAtlas(); + GetImplementation(mAtlasList.back()).Upload(textureRect, encodedImageBuffer, size, fittingMode, orientationCorrection, atlasUploadObserver); + return mTextureSetList.back(); +} + TextureSet ImageAtlasManager::Add(Vector4& textureRect, PixelData pixelData) { @@ -108,7 +136,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, return TextureSet(); } - unsigned int i = 0; + uint32_t i = 0; for(AtlasContainer::iterator iter = mAtlasList.begin(); iter != mAtlasList.end(); ++iter) { if((*iter).Upload(textureRect, pixelData)) @@ -125,7 +153,7 @@ TextureSet ImageAtlasManager::Add(Vector4& textureRect, void ImageAtlasManager::Remove(TextureSet textureSet, const Vector4& textureRect) { - unsigned int i = 0; + uint32_t i = 0; for(TextureSetContainer::iterator iter = mTextureSetList.begin(); iter != mTextureSetList.end(); ++iter) { if((*iter) == textureSet)