From f185a7d115d8771d7c93b4f7e9007ba366b8db56 Mon Sep 17 00:00:00 2001 From: Heeyong Song Date: Tue, 12 Feb 2019 16:52:46 +0900 Subject: [PATCH] Fix ImageVisual to work Action::RELOAD Change-Id: Iece581af9dcade430593b09de9ea3dad990d1f9c --- .../internal/visuals/image/image-visual.cpp | 46 +++++++++++----------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/dali-toolkit/internal/visuals/image/image-visual.cpp b/dali-toolkit/internal/visuals/image/image-visual.cpp index bbef5e4..fad510b 100644 --- a/dali-toolkit/internal/visuals/image/image-visual.cpp +++ b/dali-toolkit/internal/visuals/image/image-visual.cpp @@ -953,39 +953,41 @@ void ImageVisual::UploadComplete( bool loadingSuccess, int32_t textureId, Textur const Vector4& atlasRectangle, bool preMultiplied ) { Toolkit::Visual::ResourceStatus resourceStatus; - Actor actor = mPlacementActor.GetHandle(); - if( actor ) + if( mImpl->mRenderer ) { - if( mImpl->mRenderer ) + if( usingAtlas ) { - if( usingAtlas ) - { - mImpl->mRenderer.RegisterProperty( ATLAS_RECT_UNIFORM_NAME, mAtlasRect ); - } + mImpl->mRenderer.RegisterProperty( ATLAS_RECT_UNIFORM_NAME, mAtlasRect ); + } - EnablePreMultipliedAlpha( preMultiplied ); + EnablePreMultipliedAlpha( preMultiplied ); + Actor actor = mPlacementActor.GetHandle(); + if( actor ) + { actor.AddRenderer( mImpl->mRenderer ); // reset the weak handle so that the renderer only get added to actor once mPlacementActor.Reset(); - if( loadingSuccess ) - { - Sampler sampler = Sampler::New(); - sampler.SetWrapMode( mWrapModeU, mWrapModeV ); - textureSet.SetSampler( 0u, sampler ); - mImpl->mRenderer.SetTextures(textureSet); - } - else - { - Image brokenImage = mFactoryCache.GetBrokenVisualImage(); + } + + if( loadingSuccess ) + { + Sampler sampler = Sampler::New(); + sampler.SetWrapMode( mWrapModeU, mWrapModeV ); + textureSet.SetSampler( 0u, sampler ); + mImpl->mRenderer.SetTextures(textureSet); + } + else + { + Image brokenImage = mFactoryCache.GetBrokenVisualImage(); - textureSet = TextureSet::New(); - mImpl->mRenderer.SetTextures( textureSet ); + textureSet = TextureSet::New(); + mImpl->mRenderer.SetTextures( textureSet ); - ApplyImageToSampler( brokenImage ); - } + ApplyImageToSampler( brokenImage ); } } + // Storing TextureSet needed when renderer staged. if( ! mImpl->mRenderer ) { -- 2.7.4