From: Heeyong Song Date: Tue, 12 Feb 2019 07:52:46 +0000 (+0900) Subject: Fix ImageVisual to work Action::RELOAD X-Git-Tag: dali_1.4.8~6^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=f185a7d115d8771d7c93b4f7e9007ba366b8db56 Fix ImageVisual to work Action::RELOAD Change-Id: Iece581af9dcade430593b09de9ea3dad990d1f9c --- 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 ) {