From 4f98fe0d409455fef7c091c6803ca7256dd55664 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Mon, 20 Mar 2023 13:59:52 +0900 Subject: [PATCH 1/1] Remove svg task Change-Id: I802d0070707a36aa7997d2d100ceceeb1b5c101b --- dali-toolkit/internal/visuals/svg/svg-visual.cpp | 29 ++++++++++++++++++++---- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/dali-toolkit/internal/visuals/svg/svg-visual.cpp b/dali-toolkit/internal/visuals/svg/svg-visual.cpp index 733141a..265c2fe 100644 --- a/dali-toolkit/internal/visuals/svg/svg-visual.cpp +++ b/dali-toolkit/internal/visuals/svg/svg-visual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -81,6 +81,17 @@ SvgVisual::SvgVisual(VisualFactoryCache& factoryCache, ImageVisualShaderFactory& SvgVisual::~SvgVisual() { + if(Stage::IsInstalled()) + { + if(mLoadingTask) + { + Dali::AsyncTaskManager::Get().RemoveTask(mLoadingTask); + } + if(mRasterizingTask) + { + Dali::AsyncTaskManager::Get().RemoveTask(mRasterizingTask); + } + } } void SvgVisual::OnInitialize() @@ -98,6 +109,7 @@ void SvgVisual::OnInitialize() if(IsSynchronousLoadingRequired() && mImageUrl.IsLocalResource()) { mLoadingTask->Process(); + mLoadingTask.Reset(); // We don't need it now } else { @@ -219,10 +231,16 @@ void SvgVisual::DoSetOnScene(Actor& actor) void SvgVisual::DoSetOffScene(Actor& actor) { // Remove loading & rasterizing task - Dali::AsyncTaskManager::Get().RemoveTask(mLoadingTask); - Dali::AsyncTaskManager::Get().RemoveTask(mRasterizingTask); - mLoadingTask.Reset(); - mRasterizingTask.Reset(); + if(mLoadingTask) + { + Dali::AsyncTaskManager::Get().RemoveTask(mLoadingTask); + mLoadingTask.Reset(); + } + if(mRasterizingTask) + { + Dali::AsyncTaskManager::Get().RemoveTask(mRasterizingTask); + mRasterizingTask.Reset(); + } actor.RemoveRenderer(mImpl->mRenderer); mPlacementActor.Reset(); @@ -301,6 +319,7 @@ void SvgVisual::AddRasterizationTask(const Vector2& size) { mRasterizingTask->Process(); ApplyRasterizedImage(mRasterizingTask); + mRasterizingTask.Reset(); // We don't need it now } else { -- 2.7.4