From: Eunki, Hong Date: Wed, 24 Jul 2024 12:29:06 +0000 (+0900) Subject: Reduce convert from std::string to VisualUrl X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F80%2F315080%2F3;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Reduce convert from std::string to VisualUrl Whenever we create new VisualUrl from raw-string, it might calculate the hash, or protocol check one more time. To avoid this thing, let's make we use VisualUrl where we can use it. Note : Since ImageUrl can only use std::string itself instead of VisualUrl, we should make some API to remove external textures by std::string. Change-Id: I6888f60e6060aae79d7d11dbc7cf0aa4004d4266 Signed-off-by: Eunki, Hong --- diff --git a/dali-toolkit/devel-api/image-loader/texture-manager.cpp b/dali-toolkit/devel-api/image-loader/texture-manager.cpp index ace107e..5169135 100644 --- a/dali-toolkit/devel-api/image-loader/texture-manager.cpp +++ b/dali-toolkit/devel-api/image-loader/texture-manager.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -44,7 +44,7 @@ TextureSet RemoveTexture(const std::string& textureUrl) { auto visualFactory = Toolkit::VisualFactory::Get(); auto& textureMgr = GetImplementation(visualFactory).GetTextureManager(); - return textureMgr.RemoveExternalTexture(textureUrl); + return textureMgr.RemoveExternalTextureByUrl(textureUrl); } } // namespace TextureManager diff --git a/dali-toolkit/internal/image-loader/image-url-impl.cpp b/dali-toolkit/internal/image-loader/image-url-impl.cpp index 31dc6fc..b453a82 100644 --- a/dali-toolkit/internal/image-loader/image-url-impl.cpp +++ b/dali-toolkit/internal/image-loader/image-url-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -56,11 +56,11 @@ ImageUrl::~ImageUrl() auto& textureManager = GetImplementation(visualFactory).GetTextureManager(); if(VisualUrl::TEXTURE == VisualUrl::GetProtocolType(mUrl)) { - textureManager.RemoveExternalTexture(mUrl); + textureManager.RemoveExternalTextureByUrl(mUrl); } else if(VisualUrl::BUFFER == VisualUrl::GetProtocolType(mUrl)) { - textureManager.RemoveEncodedImageBuffer(mUrl); + textureManager.RemoveEncodedImageBufferByUrl(mUrl); } } } diff --git a/dali-toolkit/internal/texture-manager/texture-async-loading-helper.cpp b/dali-toolkit/internal/texture-manager/texture-async-loading-helper.cpp index 972b919..84a13cb 100644 --- a/dali-toolkit/internal/texture-manager/texture-async-loading-helper.cpp +++ b/dali-toolkit/internal/texture-manager/texture-async-loading-helper.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023 Samsung Electronics Co., Ltd. + * Copyright (c) 2024 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. @@ -66,7 +66,7 @@ void TextureAsyncLoadingHelper::Load(const TextureManager::TextureId LoadingTaskPtr loadingTask; if(DALI_UNLIKELY(url.IsBufferResource())) { - loadingTask = new LoadingTask(++mLoadTaskId, mTextureManager.GetEncodedImageBuffer(url.GetUrl()), desiredSize, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad, MakeCallback(this, &TextureAsyncLoadingHelper::AsyncLoadComplete)); + loadingTask = new LoadingTask(++mLoadTaskId, mTextureManager.GetEncodedImageBuffer(url), desiredSize, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad, MakeCallback(this, &TextureAsyncLoadingHelper::AsyncLoadComplete)); } else { diff --git a/dali-toolkit/internal/texture-manager/texture-manager-impl.h b/dali-toolkit/internal/texture-manager/texture-manager-impl.h index f460893..979839c 100644 --- a/dali-toolkit/internal/texture-manager/texture-manager-impl.h +++ b/dali-toolkit/internal/texture-manager/texture-manager-impl.h @@ -261,20 +261,36 @@ public: /** * @copydoc TextureCacheManager::RemoveExternalTexture */ - inline TextureSet RemoveExternalTexture(const std::string& url) + inline TextureSet RemoveExternalTexture(const VisualUrl& url) { return mTextureCacheManager.RemoveExternalTexture(url); } /** + * @copydoc TextureCacheManager::RemoveExternalTexture + */ + inline TextureSet RemoveExternalTextureByUrl(const std::string& url) + { + return RemoveExternalTexture(url); + } + + /** * @copydoc TextureCacheManager::RemoveEncodedImageBuffer */ - inline EncodedImageBuffer RemoveEncodedImageBuffer(const std::string& url) + inline EncodedImageBuffer RemoveEncodedImageBuffer(const VisualUrl& url) { return mTextureCacheManager.RemoveEncodedImageBuffer(url); } /** + * @copydoc TextureCacheManager::RemoveEncodedImageBuffer + */ + inline EncodedImageBuffer RemoveEncodedImageBufferByUrl(const std::string& url) + { + return RemoveEncodedImageBuffer(url); + } + + /** * @copydoc TextureCacheManager::UseExternalResource */ inline void UseExternalResource(const VisualUrl& url) @@ -285,7 +301,7 @@ public: /** * @copydoc TextureCacheManager::GetEncodedImageBuffer */ - inline EncodedImageBuffer GetEncodedImageBuffer(const std::string& url) + inline EncodedImageBuffer GetEncodedImageBuffer(const VisualUrl& url) { return mTextureCacheManager.GetEncodedImageBuffer(url); } diff --git a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp index ce8ee70..cb36843 100644 --- a/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp +++ b/dali-toolkit/internal/visuals/animated-vector-image/animated-vector-image-visual.cpp @@ -120,7 +120,7 @@ AnimatedVectorImageVisual::~AnimatedVectorImageVisual() if(mImageUrl.IsBufferResource()) { TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.RemoveEncodedImageBuffer(mImageUrl.GetUrl()); + textureManager.RemoveEncodedImageBuffer(mImageUrl); } if(mEventCallback) @@ -433,9 +433,9 @@ void AnimatedVectorImageVisual::OnInitialize(void) // EncodedImageBuffer. // Reference count will be decreased at destructor of the visual. TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.UseExternalResource(mImageUrl.GetUrl()); + textureManager.UseExternalResource(mImageUrl); - encodedImageBuffer = textureManager.GetEncodedImageBuffer(mImageUrl.GetUrl()); + encodedImageBuffer = textureManager.GetEncodedImageBuffer(mImageUrl); } mVectorAnimationTask->KeepRasterizedBuffer(mEnableFrameCache); diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index c8c7375..2bbf20e 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -220,12 +220,12 @@ ImageVisual::~ImageVisual() if(mImageUrl.GetProtocolType() == VisualUrl::TEXTURE) { TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.RemoveExternalTexture(mImageUrl.GetUrl()); + textureManager.RemoveExternalTexture(mImageUrl); } else if(mImageUrl.IsBufferResource()) { TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.RemoveEncodedImageBuffer(mImageUrl.GetUrl()); + textureManager.RemoveEncodedImageBuffer(mImageUrl); } } @@ -605,7 +605,7 @@ void ImageVisual::OnInitialize() if(mImageUrl.IsValid() && (mImageUrl.IsBufferResource() || mImageUrl.GetProtocolType() == VisualUrl::TEXTURE)) { TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.UseExternalResource(mImageUrl.GetUrl()); + textureManager.UseExternalResource(mImageUrl); } // Generate geometry and shader. Note that we should check AddOn when generate geometry, due to LoadPolicy::IMMEDIATE case diff --git a/dali-toolkit/internal/visuals/svg/svg-loader.cpp b/dali-toolkit/internal/visuals/svg/svg-loader.cpp index 4a3ea1c..12d9596 100644 --- a/dali-toolkit/internal/visuals/svg/svg-loader.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-loader.cpp @@ -564,7 +564,7 @@ void SvgLoader::RemoveLoad(SvgLoader::SvgLoadId loadId) if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && mFactoryCache)) { auto& textureManager = mFactoryCache->GetTextureManager(); - textureManager.RemoveEncodedImageBuffer(loadInfo.mImageUrl.GetUrl()); + textureManager.RemoveEncodedImageBuffer(loadInfo.mImageUrl); } } @@ -666,7 +666,7 @@ void SvgLoader::LoadRequest(SvgLoader::SvgLoadInfo& loadInfo, SvgLoaderObserver* if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && mFactoryCache)) { auto& textureManager = mFactoryCache->GetTextureManager(); - encodedImageBuffer = textureManager.GetEncodedImageBuffer(loadInfo.mImageUrl.GetUrl()); + encodedImageBuffer = textureManager.GetEncodedImageBuffer(loadInfo.mImageUrl); } } @@ -686,7 +686,7 @@ void SvgLoader::LoadSynchronously(SvgLoader::SvgLoadInfo& loadInfo, SvgLoaderObs if(DALI_LIKELY(Dali::Adaptor::IsAvailable() && mFactoryCache)) { auto& textureManager = mFactoryCache->GetTextureManager(); - encodedImageBuffer = textureManager.GetEncodedImageBuffer(loadInfo.mImageUrl.GetUrl()); + encodedImageBuffer = textureManager.GetEncodedImageBuffer(loadInfo.mImageUrl); } } diff --git a/dali-toolkit/internal/visuals/svg/svg-visual.cpp b/dali-toolkit/internal/visuals/svg/svg-visual.cpp index 919cd52..4597727 100644 --- a/dali-toolkit/internal/visuals/svg/svg-visual.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-visual.cpp @@ -101,7 +101,7 @@ SvgVisual::~SvgVisual() if(mImageUrl.IsBufferResource()) { TextureManager& textureManager = mFactoryCache.GetTextureManager(); - textureManager.RemoveEncodedImageBuffer(mImageUrl.GetUrl()); + textureManager.RemoveEncodedImageBuffer(mImageUrl); } } }