X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Fimage-url-impl.cpp;h=52ba6c43c68888ef012d7b80f7cc663e3ebd06dc;hp=055738f315612486bdabfac143ebd86ecc5e9ff1;hb=cc7137614f4136f571ccecc22ad1b72c01f16156;hpb=f4b327350bf7873847f8f08bb27d11361f60f759 diff --git a/dali-toolkit/internal/image-loader/image-url-impl.cpp b/dali-toolkit/internal/image-loader/image-url-impl.cpp index 055738f..52ba6c4 100644 --- a/dali-toolkit/internal/image-loader/image-url-impl.cpp +++ b/dali-toolkit/internal/image-loader/image-url-impl.cpp @@ -16,9 +16,14 @@ */ // CLASS HEADER -#include #include +// INTERNAL INCLUDES +#include +#include +#include +#include + namespace Dali { namespace Toolkit @@ -26,14 +31,39 @@ namespace Toolkit namespace Internal { ImageUrl::ImageUrl(Texture& texture) -: mUrl("") { mUrl = Dali::Toolkit::TextureManager::AddTexture(texture); } +ImageUrl::ImageUrl(const EncodedImageBuffer& encodedImageBuffer) +: mUrl("") +{ + auto visualFactory = Dali::Toolkit::VisualFactory::Get(); + if(visualFactory) + { + auto& textureManager = GetImplementation(visualFactory).GetTextureManager(); + mUrl = textureManager.AddExternalEncodedImageBuffer(encodedImageBuffer); + } +} + ImageUrl::~ImageUrl() { - Dali::Toolkit::TextureManager::RemoveTexture(mUrl); + if(mUrl.size() > 0) + { + auto visualFactory = Dali::Toolkit::VisualFactory::Get(); + if(visualFactory) + { + auto& textureManager = GetImplementation(visualFactory).GetTextureManager(); + if(VisualUrl::TEXTURE == VisualUrl::GetProtocolType(mUrl)) + { + textureManager.RemoveExternalTexture(mUrl); + } + else if(VisualUrl::BUFFER == VisualUrl::GetProtocolType(mUrl)) + { + textureManager.RemoveExternalEncodedImageBuffer(mUrl); + } + } + } } ImageUrlPtr ImageUrl::New(Texture& texture) @@ -42,6 +72,12 @@ ImageUrlPtr ImageUrl::New(Texture& texture) return imageUrlPtr; } +ImageUrlPtr ImageUrl::New(const EncodedImageBuffer& encodedImageBuffer) +{ + ImageUrlPtr imageUrlPtr = new ImageUrl(encodedImageBuffer); + return imageUrlPtr; +} + const std::string& ImageUrl::GetUrl() const { return mUrl;