X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fanimated-image%2Frolling-image-cache.cpp;h=b7b45ffb2317277d80b909198c4029a81e2e11c5;hb=15db27e5f16067b87796438187ba7298cc8acc1e;hp=62599e50fd5871db449dd15aac8f6c65c88518c8;hpb=c20463e1d4a77117810c67adfec49bcdfab5efde;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/animated-image/rolling-image-cache.cpp b/dali-toolkit/internal/visuals/animated-image/rolling-image-cache.cpp index 62599e5..b7b45ff 100644 --- a/dali-toolkit/internal/visuals/animated-image/rolling-image-cache.cpp +++ b/dali-toolkit/internal/visuals/animated-image/rolling-image-cache.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -70,10 +70,13 @@ RollingImageCache::RollingImageCache( RollingImageCache::~RollingImageCache() { - while( !mQueue.IsEmpty() ) + if( mTextureManagerAlive ) { - ImageFrame imageFrame = mQueue.PopFront(); - mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId ); + while( !mQueue.IsEmpty() ) + { + ImageFrame imageFrame = mQueue.PopFront(); + mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId, this ); + } } } @@ -94,7 +97,7 @@ TextureSet RollingImageCache::NextFrame() TextureSet textureSet; ImageFrame imageFrame = mQueue.PopFront(); - mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId ); + mTextureManager.Remove( mImageUrls[ imageFrame.mUrlIndex ].mTextureId, this ); mImageUrls[ imageFrame.mUrlIndex ].mTextureId = TextureManager::INVALID_TEXTURE_ID; if( IsFrontReady() == true ) @@ -148,14 +151,17 @@ void RollingImageCache::LoadBatch() AtlasUploadObserver* atlasObserver = nullptr; ImageAtlasManagerPtr imageAtlasManager = nullptr; Vector4 textureRect; + Dali::ImageDimensions textureRectSize; + auto preMultiply = TextureManager::MultiplyOnLoad::LOAD_WITHOUT_MULTIPLY; mTextureManager.LoadTexture( url, ImageDimensions(), FittingMode::SCALE_TO_FILL, SamplingMode::BOX_THEN_LINEAR, maskInfo, - synchronousLoading, mImageUrls[ imageFrame.mUrlIndex ].mTextureId, textureRect, + synchronousLoading, mImageUrls[ imageFrame.mUrlIndex ].mTextureId, textureRect, textureRectSize, atlasingStatus, loadingStatus, Dali::WrapMode::Type::DEFAULT, Dali::WrapMode::Type::DEFAULT, this, - atlasObserver, imageAtlasManager, ENABLE_ORIENTATION_CORRECTION, TextureManager::ReloadPolicy::CACHED ); + atlasObserver, imageAtlasManager, ENABLE_ORIENTATION_CORRECTION, TextureManager::ReloadPolicy::CACHED, + preMultiply ); mRequestingLoad = false; } @@ -200,7 +206,8 @@ void RollingImageCache::UploadComplete( int32_t textureId, TextureSet textureSet, bool useAtlasing, - const Vector4& atlasRect ) + const Vector4& atlasRect, + bool preMultiplied ) { DALI_LOG_INFO(gAnimImgLogFilter,Debug::Concise,"AnimatedImageVisual::UploadComplete(textureId:%d) start\n", textureId); LOG_CACHE; @@ -224,6 +231,17 @@ void RollingImageCache::UploadComplete( LOG_CACHE; } +void RollingImageCache::LoadComplete( + bool loadSuccess, + Devel::PixelBuffer pixelBuffer, + const VisualUrl& url, + bool preMultiplied ) +{ + // LoadComplete is called if this TextureUploadObserver requested to load + // an image that will be returned as a type of PixelBuffer by using a method + // TextureManager::LoadPixelBuffer. +} + } //namespace Internal } //namespace Toolkit } //namespace Dali