[dali_1.2.61] Merge branch 'devel/master'
[platform/core/uifw/dali-demo.git] / examples / image-scaling-and-filtering / image-scaling-and-filtering-example.cpp
index 1c4563c..cdd8ee6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
@@ -522,21 +522,6 @@ public:
     }
   }
 
-  void OnImageLoaded( ResourceImage image )
-  {
-    DALI_ASSERT_DEBUG( image == mNextImage );
-    mImageView.SetImage( image );
-    mImageView.SetSize( Size( image.GetWidth(), image.GetHeight() ) );
-    mImageLoading = false;
-
-    // We have finished loading, if a resize had occured during the load, trigger another load now.
-    if( mQueuedImageLoad )
-    {
-      mQueuedImageLoad = false;
-      LoadImage();
-    }
-  }
-
   bool OnControlTouched( Actor actor, const TouchData& event )
   {
     if(event.GetPointCount() > 0)
@@ -687,21 +672,17 @@ private:
     const char * const path = IMAGE_PATHS[ mCurrentPath ];
     Stage stage = Stage::GetCurrent();
     Size imageSize = stage.GetSize() * mImageStageScale;
-    const ImageDimensions imageSizeInt = ImageDimensions::FromFloatArray( &imageSize.x );
+    mImageView.SetSize( imageSize );
 
-    ResourceImage image = ResourceImage::New( path, imageSizeInt, mFittingMode, mSamplingMode );
+    Property::Map map;
+    map[Toolkit::ImageVisual::Property::URL] = path;
+    map[Toolkit::ImageVisual::Property::DESIRED_WIDTH] = imageSize.x;
+    map[Toolkit::ImageVisual::Property::DESIRED_HEIGHT] = imageSize.y;
+    map[Toolkit::ImageVisual::Property::FITTING_MODE] = mFittingMode;
+    map[Toolkit::ImageVisual::Property::SAMPLING_MODE] = mSamplingMode;
 
-    // If the image was cached, the load has already occured, bypass hooking the signal.
-    if( image.GetLoadingState() )
-    {
-      OnImageLoaded( image );
-    }
-    else
-    {
-      image.LoadingFinishedSignal().Connect( this, &ImageScalingAndFilteringController::OnImageLoaded );
-    }
+    mImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, map );
 
-    mNextImage = image;
   }
 
   void ResizeImage()
@@ -710,16 +691,7 @@ private:
     Stage stage = Stage::GetCurrent();
     Size imageSize = stage.GetSize() * mImageStageScale;
 
-    // If an image is already loading, queue another load when it has finished.
-    // This way we get continuous updates instead of constantly re-requesting loads.
-    if( mImageLoading )
-    {
-      mQueuedImageLoad = true;
-    }
-    else
-    {
-      LoadImage();
-    }
+    LoadImage();
 
     // Border size needs to be modified to take into account the width of the frame.
     Vector2 borderScale( ( imageSize + Vector2( BORDER_WIDTH * 2.0f, BORDER_WIDTH * 2.0f ) ) / stage.GetSize() );
@@ -742,7 +714,6 @@ private:
   Toolkit::ImageView mGrabCorner;
   PanGestureDetector mPanGestureDetector;
   Toolkit::ImageView mImageView;
-  ResourceImage mNextImage; //< Currently-loading image
   Vector2 mImageStageScale;
   int mCurrentPath;
   FittingMode::Type mFittingMode;
@@ -752,19 +723,10 @@ private:
 
 };
 
-void RunTest( Application& application )
-{
-  ImageScalingAndFilteringController test( application );
-
-  application.MainLoop();
-}
-
-// Entry point for Linux & Tizen applications
 int DALI_EXPORT_API main( int argc, char **argv )
 {
   Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
-
-  RunTest( application );
-
+  ImageScalingAndFilteringController test( application );
+  application.MainLoop();
   return 0;
 }