X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Frenderers%2Fimage%2Fimage-renderer.cpp;h=8f02d852c3a4e43cd07f0cd4798682e0453ad3f4;hp=0fad54314888167adac0d49ff7e5ad7d46ea848b;hb=909f2036cbcc608b50163c497980ed8168ecef1b;hpb=18c250b7c2de9dba09bff61a6425c67f490e5d41 diff --git a/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp b/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp index 0fad543..8f02d85 100644 --- a/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp +++ b/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp @@ -401,7 +401,10 @@ void ImageRenderer::DoSetOnStage( Actor& actor ) { if( !mImageUrl.empty() && !mImage ) { - mImage = Dali::ResourceImage::New( mImageUrl, mDesiredSize, mFittingMode, mSamplingMode ); + Dali::ResourceImage resourceImage = Dali::ResourceImage::New( mImageUrl, mDesiredSize, mFittingMode, mSamplingMode ); + resourceImage.LoadingFinishedSignal().Connect( this, &ImageRenderer::OnImageLoaded ); + + mImage = resourceImage; } ApplyImageToSampler(); @@ -529,7 +532,10 @@ void ImageRenderer::SetImage( const std::string& imageUrl, int desiredWidth, int if( !mImageUrl.empty() && mImpl->mIsOnStage ) { - mImage = Dali::ResourceImage::New( mImageUrl, mDesiredSize, mFittingMode, mSamplingMode ); + Dali::ResourceImage resourceImage = Dali::ResourceImage::New( mImageUrl, mDesiredSize, mFittingMode, mSamplingMode ); + resourceImage.LoadingFinishedSignal().Connect( this, &ImageRenderer::OnImageLoaded ); + mImage = resourceImage; + ApplyImageToSampler(); } else @@ -580,6 +586,18 @@ void ImageRenderer::ApplyImageToSampler() } } +void ImageRenderer::OnImageLoaded( ResourceImage image ) +{ + if( image.GetLoadingState() == Dali::ResourceLoadingFailed ) + { + mImage = RendererFactory::GetBrokenRendererImage(); + if( mImpl->mIsOnStage ) + { + ApplyImageToSampler(); + } + } +} + } // namespace Internal } // namespace Toolkit