From: tscholb Date: Thu, 15 Dec 2022 06:11:53 +0000 (+0900) Subject: Fix issue using broken image X-Git-Tag: dali_2.2.7~21^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=ee5e2e68f8ac6b7af51f2388eaea096e8723073f Fix issue using broken image when GetNaturalSize() is called after the image is already loaded, we can't get proper broken image because mPlacementActor is null. Change-Id: I9394c4447b46ee442056266e4be7f6c220a3ce4d --- diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index 2fcf2a9..0669ed5 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -525,6 +525,11 @@ void ImageVisual::GetNaturalSize(Vector2& naturalSize) { imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); } + else + { + imageSize = mPlacementActorSize; + } + mFactoryCache.UpdateBrokenImageRenderer(mImpl->mRenderer, imageSize); Texture brokenImage = mImpl->mRenderer.GetTextures().GetTexture(0); naturalSize.x = brokenImage.GetWidth(); @@ -757,8 +762,10 @@ void ImageVisual::DoSetOnScene(Actor& actor) Vector2 imageSize = Vector2::ZERO; if(actor) { - imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); + imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); + mPlacementActorSize = imageSize; } + mFactoryCache.UpdateBrokenImageRenderer(mImpl->mRenderer, imageSize); actor.AddRenderer(mImpl->mRenderer); mPlacementActor.Reset(); @@ -905,8 +912,14 @@ void ImageVisual::LoadComplete(bool loadingSuccess, TextureInformation textureIn Vector2 imageSize = Vector2::ZERO; if(actor) { - imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); + imageSize = actor.GetProperty(Actor::Property::SIZE).Get(); + mPlacementActorSize = imageSize; } + else + { + imageSize = mPlacementActorSize; + } + mFactoryCache.UpdateBrokenImageRenderer(mImpl->mRenderer, imageSize); textureInformation.textureSet = mImpl->mRenderer.GetTextures(); } diff --git a/dali-toolkit/internal/visuals/image/image-visual.h b/dali-toolkit/internal/visuals/image/image-visual.h index 307ab19..4712f39 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.h +++ b/dali-toolkit/internal/visuals/image/image-visual.h @@ -332,6 +332,7 @@ private: TextureManager::TextureId mTextureId; TextureSet mTextures; Vector2 mTextureSize; + Vector2 mPlacementActorSize; ImageVisualShaderFactory& mImageVisualShaderFactory;