Remove ResourceImage usage from demos
[platform/core/uifw/dali-demo.git] / examples / cube-transition-effect / cube-transition-effect-example.cpp
index 29fbdaf..7f50537 100644 (file)
@@ -20,6 +20,7 @@
 
 // INTERNAL INCLUDES
 #include "shared/view.h"
+#include "shared/utility.h"
 
 #include <dali/dali.h>
 #include <dali-toolkit/dali-toolkit.h>
@@ -37,44 +38,44 @@ using Dali::Toolkit::TextLabel;
 namespace
 {
 
-const char * const TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
+const char * const TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
 const char * const APPLICATION_TITLE_WAVE( "Cube Transition: Wave" );
 const char * const APPLICATION_TITLE_CROSS( "Cube Transition: Cross" );
 const char * const APPLICATION_TITLE_FOLD( "Cube Transition: Fold" );
-const char * const EFFECT_WAVE_IMAGE( DALI_IMAGE_DIR "icon-effect-wave.png" );
-const char * const EFFECT_WAVE_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-effect-wave-selected.png" );
-const char * const EFFECT_CROSS_IMAGE( DALI_IMAGE_DIR "icon-effect-cross.png" );
-const char * const EFFECT_CROSS_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-effect-cross-selected.png" );
-const char * const EFFECT_FOLD_IMAGE( DALI_IMAGE_DIR "icon-effect-fold.png" );
-const char * const EFFECT_FOLD_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-effect-fold-selected.png" );
-const char * const SLIDE_SHOW_START_ICON( DALI_IMAGE_DIR "icon-play.png" );
-const char * const SLIDE_SHOW_START_ICON_SELECTED( DALI_IMAGE_DIR "icon-play-selected.png" );
-const char * const SLIDE_SHOW_STOP_ICON( DALI_IMAGE_DIR "icon-stop.png" );
-const char * const SLIDE_SHOW_STOP_ICON_SELECTED( DALI_IMAGE_DIR "icon-stop-selected.png" );
+const char * const EFFECT_WAVE_IMAGE( DEMO_IMAGE_DIR "icon-effect-wave.png" );
+const char * const EFFECT_WAVE_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-effect-wave-selected.png" );
+const char * const EFFECT_CROSS_IMAGE( DEMO_IMAGE_DIR "icon-effect-cross.png" );
+const char * const EFFECT_CROSS_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-effect-cross-selected.png" );
+const char * const EFFECT_FOLD_IMAGE( DEMO_IMAGE_DIR "icon-effect-fold.png" );
+const char * const EFFECT_FOLD_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-effect-fold-selected.png" );
+const char * const SLIDE_SHOW_START_ICON( DEMO_IMAGE_DIR "icon-play.png" );
+const char * const SLIDE_SHOW_START_ICON_SELECTED( DEMO_IMAGE_DIR "icon-play-selected.png" );
+const char * const SLIDE_SHOW_STOP_ICON( DEMO_IMAGE_DIR "icon-stop.png" );
+const char * const SLIDE_SHOW_STOP_ICON_SELECTED( DEMO_IMAGE_DIR "icon-stop-selected.png" );
 
 const char* IMAGES[] =
 {
-  DALI_IMAGE_DIR "gallery-large-1.jpg",
-  DALI_IMAGE_DIR "gallery-large-2.jpg",
-  DALI_IMAGE_DIR "gallery-large-3.jpg",
-  DALI_IMAGE_DIR "gallery-large-4.jpg",
-  DALI_IMAGE_DIR "gallery-large-5.jpg",
-  DALI_IMAGE_DIR "gallery-large-6.jpg",
-  DALI_IMAGE_DIR "gallery-large-7.jpg",
-  DALI_IMAGE_DIR "gallery-large-8.jpg",
-  DALI_IMAGE_DIR "gallery-large-9.jpg",
-  DALI_IMAGE_DIR "gallery-large-10.jpg",
-  DALI_IMAGE_DIR "gallery-large-11.jpg",
-  DALI_IMAGE_DIR "gallery-large-12.jpg",
-  DALI_IMAGE_DIR "gallery-large-13.jpg",
-  DALI_IMAGE_DIR "gallery-large-14.jpg",
-  DALI_IMAGE_DIR "gallery-large-15.jpg",
-  DALI_IMAGE_DIR "gallery-large-16.jpg",
-  DALI_IMAGE_DIR "gallery-large-17.jpg",
-  DALI_IMAGE_DIR "gallery-large-18.jpg",
-  DALI_IMAGE_DIR "gallery-large-19.jpg",
-  DALI_IMAGE_DIR "gallery-large-20.jpg",
-  DALI_IMAGE_DIR "gallery-large-21.jpg",
+  DEMO_IMAGE_DIR "gallery-large-1.jpg",
+  DEMO_IMAGE_DIR "gallery-large-2.jpg",
+  DEMO_IMAGE_DIR "gallery-large-3.jpg",
+  DEMO_IMAGE_DIR "gallery-large-4.jpg",
+  DEMO_IMAGE_DIR "gallery-large-5.jpg",
+  DEMO_IMAGE_DIR "gallery-large-6.jpg",
+  DEMO_IMAGE_DIR "gallery-large-7.jpg",
+  DEMO_IMAGE_DIR "gallery-large-8.jpg",
+  DEMO_IMAGE_DIR "gallery-large-9.jpg",
+  DEMO_IMAGE_DIR "gallery-large-10.jpg",
+  DEMO_IMAGE_DIR "gallery-large-11.jpg",
+  DEMO_IMAGE_DIR "gallery-large-12.jpg",
+  DEMO_IMAGE_DIR "gallery-large-13.jpg",
+  DEMO_IMAGE_DIR "gallery-large-14.jpg",
+  DEMO_IMAGE_DIR "gallery-large-15.jpg",
+  DEMO_IMAGE_DIR "gallery-large-16.jpg",
+  DEMO_IMAGE_DIR "gallery-large-17.jpg",
+  DEMO_IMAGE_DIR "gallery-large-18.jpg",
+  DEMO_IMAGE_DIR "gallery-large-19.jpg",
+  DEMO_IMAGE_DIR "gallery-large-20.jpg",
+  DEMO_IMAGE_DIR "gallery-large-21.jpg",
 };
 const int NUM_IMAGES( sizeof(IMAGES) / sizeof(IMAGES[0]) );
 
@@ -98,20 +99,6 @@ const float CUBE_DISPLACEMENT_CROSS(30.f);
 // The duration of the current image staying on screen when slideshow is on
 const int VIEWINGTIME = 2000; // 2 seconds
 
-/**
- * @brief Load an image, scaled-down to no more than the stage dimensions.
- *
- * Uses image scaling mode SCALE_TO_FILL to resize the image at
- * load time to cover the entire stage with pixels with no borders,
- * and filter mode BOX_THEN_LINEAR to sample the image with
- * maximum quality.
- */
-ResourceImage LoadStageFillingImage( const char * const imagePath )
-{
-  Size stageSize = Stage::GetCurrent().GetSize();
-  return ResourceImage::New( imagePath, ImageDimensions( stageSize.x, stageSize.y ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR );
-}
-
 } // namespace
 
 class CubeTransitionApp : public ConnectionTracker
@@ -143,12 +130,6 @@ private:
    */
   void GoToNextImage();
   /**
-   * Callback function of image resource loading succeed
-   * Start the transition
-   * @param[in] image The image content of the imageActor for transition
-   */
-  void OnImageLoaded(ResourceImage image);
-  /**
    * Main key event handler
    */
   void OnKeyEvent(const KeyEvent& event);
@@ -185,8 +166,8 @@ private:
 
   Vector2                         mViewSize;
 
-  ResourceImage                   mCurrentImage;
-  ResourceImage                   mNextImage;
+  Image                           mCurrentImage;
+  Image                           mNextImage;
   unsigned int                    mIndex;
   bool                            mIsImageLoading;
 
@@ -251,7 +232,7 @@ void CubeTransitionApp::OnInit( Application& application )
   mViewSize = Stage::GetCurrent().GetSize();
 
   // show the first image
-  mCurrentImage = LoadStageFillingImage( IMAGES[mIndex] );
+  mCurrentImage = DemoHelper::LoadStageFillingImage( IMAGES[mIndex] );
 
   //use small cubes
   mCubeWaveEffect = Toolkit::CubeTransitionWaveEffect::New( NUM_ROWS_WAVE, NUM_COLUMNS_WAVE );
@@ -260,7 +241,7 @@ void CubeTransitionApp::OnInit( Application& application )
   mCubeWaveEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
 
   mCubeWaveEffect.SetSize( mViewSize );
-  mCubeWaveEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+  mCubeWaveEffect.SetParentOrigin( ParentOrigin::CENTER );
   mCubeWaveEffect.SetCurrentImage( mCurrentImage );
 
   // use big cubes
@@ -270,7 +251,7 @@ void CubeTransitionApp::OnInit( Application& application )
   mCubeCrossEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
 
   mCubeCrossEffect.SetSize( mViewSize );
-  mCubeCrossEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+  mCubeCrossEffect.SetParentOrigin( ParentOrigin::CENTER );
   mCubeCrossEffect.SetCurrentImage( mCurrentImage );
 
   mCubeFoldEffect = Toolkit::CubeTransitionFoldEffect::New( NUM_ROWS_FOLD, NUM_COLUMNS_FOLD );
@@ -278,7 +259,7 @@ void CubeTransitionApp::OnInit( Application& application )
   mCubeFoldEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted);
 
   mCubeFoldEffect.SetSize( mViewSize );
-  mCubeFoldEffect.SetPositionInheritanceMode( USE_PARENT_POSITION );
+  mCubeFoldEffect.SetParentOrigin( ParentOrigin::CENTER );
   mCubeFoldEffect.SetCurrentImage( mCurrentImage );
 
   mViewTimer = Timer::New( VIEWINGTIME );
@@ -322,25 +303,11 @@ void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture )
 
 void CubeTransitionApp::GoToNextImage()
 {
-  mNextImage = LoadStageFillingImage( IMAGES[ mIndex ] );
+  mNextImage = DemoHelper::LoadStageFillingImage( IMAGES[ mIndex ] );
   mCurrentEffect.SetTargetImage( mNextImage );
-  if( mNextImage.GetLoadingState() == ResourceLoadingSucceeded )
-  {
-    mIsImageLoading = false;
-    OnImageLoaded( mNextImage );
-  }
-  else
-  {
-    mIsImageLoading = true;
-    mNextImage.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded );
-  }
-}
-
-void CubeTransitionApp::OnImageLoaded(ResourceImage image)
-{
-   mIsImageLoading = false;
-   mCurrentEffect.StartTransition( mPanPosition, mPanDisplacement );
-   mCurrentImage = mNextImage;
+  mIsImageLoading = false;
+  mCurrentEffect.StartTransition( mPanPosition, mPanDisplacement );
+  mCurrentImage = mNextImage;
 }
 
 bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button )
@@ -430,9 +397,9 @@ void CubeTransitionApp::OnKeyEvent(const KeyEvent& event)
 }
 
 // Entry point for Linux & Tizen applications
-int main( int argc, char **argv )
+int DALI_EXPORT_API main( int argc, char **argv )
 {
-  Application application = Application::New( &argc, &argv, DALI_DEMO_THEME_PATH );
+  Application application = Application::New( &argc, &argv, DEMO_THEME_PATH );
   CubeTransitionApp test( application );
   application.MainLoop();