From ff4a3d03472a60aba7cd8ffe111e5fcd9527d967 Mon Sep 17 00:00:00 2001 From: "Eunki, Hong" Date: Thu, 1 Jul 2021 16:13:07 +0900 Subject: [PATCH] Reduce the number of conversion between std::string <-> VisaulUrl at interal Change-Id: I602e070cd948e17edec3b25b1de52b9f49e08ea7 Signed-off-by: Eunki, Hong --- dali-toolkit/internal/image-loader/image-atlas-impl.cpp | 9 ++++++--- dali-toolkit/internal/image-loader/image-atlas-impl.h | 3 ++- dali-toolkit/internal/visuals/image-atlas-manager.cpp | 11 +++++++---- dali-toolkit/internal/visuals/image-atlas-manager.h | 3 ++- dali-toolkit/internal/visuals/npatch-data.cpp | 4 ++-- dali-toolkit/internal/visuals/npatch-data.h | 7 ++++--- dali-toolkit/internal/visuals/npatch-loader.cpp | 6 +++--- dali-toolkit/internal/visuals/npatch-loader.h | 3 ++- dali-toolkit/internal/visuals/npatch/npatch-visual.cpp | 2 +- dali-toolkit/internal/visuals/texture-manager-impl.cpp | 7 ++++--- 10 files changed, 33 insertions(+), 22 deletions(-) diff --git a/dali-toolkit/internal/image-loader/image-atlas-impl.cpp b/dali-toolkit/internal/image-loader/image-atlas-impl.cpp index 8c4dba6..31c3351 100644 --- a/dali-toolkit/internal/image-loader/image-atlas-impl.cpp +++ b/dali-toolkit/internal/image-loader/image-atlas-impl.cpp @@ -24,6 +24,9 @@ #include #include +// INTERNAL HEADERS +#include + namespace Dali { namespace Toolkit @@ -130,7 +133,7 @@ void ImageAtlas::SetBrokenImage(const std::string& brokenImageUrl) } bool ImageAtlas::Upload(Vector4& textureRect, - const std::string& url, + const VisualUrl& url, ImageDimensions size, FittingMode::Type fittingMode, bool orientationCorrection, @@ -140,7 +143,7 @@ bool ImageAtlas::Upload(Vector4& textureRect, ImageDimensions zero; if(size == zero) // image size not provided { - dimensions = Dali::GetClosestImageSize(url); + dimensions = Dali::GetClosestImageSize(url.GetUrl()); if(dimensions == zero) // Fail to read the image & broken image file exists { if(!mBrokenImageUrl.empty()) @@ -159,7 +162,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 = GetImplementation(mAsyncLoader).Load(url, size, fittingMode, SamplingMode::BOX_THEN_LINEAR, orientationCorrection, DevelAsyncImageLoader::PreMultiplyOnLoad::OFF); 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 diff --git a/dali-toolkit/internal/image-loader/image-atlas-impl.h b/dali-toolkit/internal/image-loader/image-atlas-impl.h index 49dd3ef..eab1551 100644 --- a/dali-toolkit/internal/image-loader/image-atlas-impl.h +++ b/dali-toolkit/internal/image-loader/image-atlas-impl.h @@ -27,6 +27,7 @@ #include #include #include +#include namespace Dali { @@ -78,7 +79,7 @@ public: * @copydoc Toolkit::ImageAtlas::Upload( Vector4&, const std::string&, ImageDimensions,FittingMode::Type, bool ) */ bool Upload(Vector4& textureRect, - const std::string& url, + const VisualUrl& url, ImageDimensions size, FittingMode::Type fittingMode, bool orientationCorrection, diff --git a/dali-toolkit/internal/visuals/image-atlas-manager.cpp b/dali-toolkit/internal/visuals/image-atlas-manager.cpp index 1f634e1..a8de5a8 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 @@ -44,7 +47,7 @@ ImageAtlasManager::~ImageAtlasManager() } TextureSet ImageAtlasManager::Add(Vector4& textureRect, - const std::string& url, + const VisualUrl& url, ImageDimensions& size, FittingMode::Type fittingMode, bool orientationCorrection, @@ -54,7 +57,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 +70,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 +78,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(); } diff --git a/dali-toolkit/internal/visuals/image-atlas-manager.h b/dali-toolkit/internal/visuals/image-atlas-manager.h index 3c2f52c..b8f5a11 100644 --- a/dali-toolkit/internal/visuals/image-atlas-manager.h +++ b/dali-toolkit/internal/visuals/image-atlas-manager.h @@ -25,6 +25,7 @@ // INTERNAL INCLUDES #include +#include namespace Dali { @@ -67,7 +68,7 @@ public: * @return The texture set containing the image. */ TextureSet Add(Vector4& textureRect, - const std::string& url, + const VisualUrl& url, ImageDimensions& size, FittingMode::Type fittingMode = FittingMode::DEFAULT, bool orientationCorrection = true, diff --git a/dali-toolkit/internal/visuals/npatch-data.cpp b/dali-toolkit/internal/visuals/npatch-data.cpp index 45cb99f..cb144b8 100644 --- a/dali-toolkit/internal/visuals/npatch-data.cpp +++ b/dali-toolkit/internal/visuals/npatch-data.cpp @@ -85,12 +85,12 @@ uint32_t NPatchData::GetObserverCount() const return mObserverList.Count(); } -void NPatchData::SetUrl(const std::string url) +void NPatchData::SetUrl(const VisualUrl& url) { mUrl = url; } -std::string NPatchData::GetUrl() const +VisualUrl NPatchData::GetUrl() const { return mUrl; } diff --git a/dali-toolkit/internal/visuals/npatch-data.h b/dali-toolkit/internal/visuals/npatch-data.h index a807d39..7a052c4 100644 --- a/dali-toolkit/internal/visuals/npatch-data.h +++ b/dali-toolkit/internal/visuals/npatch-data.h @@ -25,6 +25,7 @@ // INTERNAL INCLUDES #include #include +#include namespace Dali { @@ -100,14 +101,14 @@ public: * * @param [in] url NPatch image url */ - void SetUrl(const std::string url); + void SetUrl(const VisualUrl& url); /** * @brief Retrieve the image url. * * @return Return the image url. */ - std::string GetUrl() const; + VisualUrl GetUrl() const; /** * @brief Set texture set on the cache data @@ -274,7 +275,7 @@ private: NPatchDataId mId; ObserverListType mObserverList; ///< Container used to store all observer clients of this Texture - std::string mUrl; ///< Url of the N-Patch + VisualUrl mUrl; ///< Url of the N-Patch TextureSet mTextureSet; ///< Texture containing the cropped image NPatchUtility::StretchRanges mStretchPixelsX; ///< X stretch pixels NPatchUtility::StretchRanges mStretchPixelsY; ///< Y stretch pixels diff --git a/dali-toolkit/internal/visuals/npatch-loader.cpp b/dali-toolkit/internal/visuals/npatch-loader.cpp index a7734da..5f8ddff 100644 --- a/dali-toolkit/internal/visuals/npatch-loader.cpp +++ b/dali-toolkit/internal/visuals/npatch-loader.cpp @@ -52,9 +52,9 @@ NPatchData::NPatchDataId NPatchLoader::GenerateUniqueNPatchDataId() return mCurrentNPatchDataId++; } -std::size_t NPatchLoader::Load(TextureManager& textureManager, TextureUploadObserver* textureObserver, const std::string& url, const Rect& border, bool& preMultiplyOnLoad, bool synchronousLoading) +std::size_t NPatchLoader::Load(TextureManager& textureManager, TextureUploadObserver* textureObserver, const VisualUrl& url, const Rect& border, bool& preMultiplyOnLoad, bool synchronousLoading) { - std::size_t hash = CalculateHash(url); + std::size_t hash = CalculateHash(url.GetUrl()); OwnerContainer::SizeType index = UNINITIALIZED_ID; const OwnerContainer::SizeType count = mCache.Count(); @@ -63,7 +63,7 @@ std::size_t NPatchLoader::Load(TextureManager& textureManager, TextureUploadObse if(mCache[index]->GetHash() == hash) { // hash match, check url as well in case of hash collision - if(mCache[index]->GetUrl() == url) + if(mCache[index]->GetUrl().GetUrl() == url.GetUrl()) { // Use cached data if(mCache[index]->GetBorder() == border) diff --git a/dali-toolkit/internal/visuals/npatch-loader.h b/dali-toolkit/internal/visuals/npatch-loader.h index 50c24d3..dd7f022 100644 --- a/dali-toolkit/internal/visuals/npatch-loader.h +++ b/dali-toolkit/internal/visuals/npatch-loader.h @@ -27,6 +27,7 @@ #include #include #include +#include namespace Dali { @@ -68,7 +69,7 @@ public: * @param [in] synchronousLoading True if the image will be loaded in synchronous time. * @return id of the texture. */ - std::size_t Load(TextureManager& textureManager, TextureUploadObserver* textureObserver, const std::string& url, const Rect& border, bool& preMultiplyOnLoad, bool synchronousLoading); + std::size_t Load(TextureManager& textureManager, TextureUploadObserver* textureObserver, const VisualUrl& url, const Rect& border, bool& preMultiplyOnLoad, bool synchronousLoading); /** * @brief Set loaded PixelBuffer and its information diff --git a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp index bbee1d4..6ef02cc 100644 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -156,7 +156,7 @@ void NPatchVisual::LoadImages() if(mId == NPatchData::INVALID_NPATCH_DATA_ID && mImageUrl.IsLocalResource()) { bool preMultiplyOnLoad = IsPreMultipliedAlphaEnabled() && !mImpl->mCustomShader ? true : false; - mId = mLoader.Load(textureManager, this, mImageUrl.GetUrl(), mBorder, preMultiplyOnLoad, synchronousLoading); + mId = mLoader.Load(textureManager, this, mImageUrl, mBorder, preMultiplyOnLoad, synchronousLoading); const NPatchData* data; if(mLoader.GetNPatchData(mId, data) && data->GetLoadingState() == NPatchData::LoadingState::LOAD_COMPLETE) diff --git a/dali-toolkit/internal/visuals/texture-manager-impl.cpp b/dali-toolkit/internal/visuals/texture-manager-impl.cpp index a449997..f9ccacc 100644 --- a/dali-toolkit/internal/visuals/texture-manager-impl.cpp +++ b/dali-toolkit/internal/visuals/texture-manager-impl.cpp @@ -30,6 +30,7 @@ #include // INTERNAL HEADERS +#include #include #include #include @@ -1243,7 +1244,7 @@ void TextureManager::AsyncLoadingHelper::LoadAnimatedImage(TextureId uint32_t frameIndex) { mLoadingInfoContainer.push_back(AsyncLoadingInfo(textureId)); - auto id = DevelAsyncImageLoader::LoadAnimatedImage(mLoader, animatedImageLoading, frameIndex); + auto id = GetImplementation(mLoader).LoadAnimatedImage(animatedImageLoading, frameIndex); mLoadingInfoContainer.back().loadId = id; } @@ -1256,7 +1257,7 @@ void TextureManager::AsyncLoadingHelper::Load(TextureId DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad) { mLoadingInfoContainer.push_back(AsyncLoadingInfo(textureId)); - auto id = DevelAsyncImageLoader::Load(mLoader, url.GetUrl(), desiredSize, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad); + auto id = GetImplementation(mLoader).Load(url, desiredSize, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad); mLoadingInfoContainer.back().loadId = id; } @@ -1268,7 +1269,7 @@ void TextureManager::AsyncLoadingHelper::ApplyMask(TextureId DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad) { mLoadingInfoContainer.push_back(AsyncLoadingInfo(textureId)); - auto id = DevelAsyncImageLoader::ApplyMask(mLoader, pixelBuffer, maskPixelBuffer, contentScale, cropToMask, preMultiplyOnLoad); + auto id = GetImplementation(mLoader).ApplyMask(pixelBuffer, maskPixelBuffer, contentScale, cropToMask, preMultiplyOnLoad); mLoadingInfoContainer.back().loadId = id; } -- 2.7.4