Revert "[Tizen] Add codes for Dali Windows Backend"
[platform/core/uifw/dali-demo.git] / examples / refraction-effect / refraction-effect-example.cpp
index 3203d13..14c4878 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 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.
@@ -17,8 +17,8 @@
 
 // EXTERNAL INCLUDES
 #include <dali/dali.h>
-#include <dali/devel-api/rendering/renderer.h>
 #include <dali-toolkit/dali-toolkit.h>
+#include <dali-toolkit/devel-api/controls/buttons/button-devel.h>
 
 #include <fstream>
 #include <sstream>
@@ -26,6 +26,7 @@
 
 // INTERNAL INCLUDES
 #include "shared/view.h"
+#include "shared/utility.h"
 
 using namespace Dali;
 
@@ -74,19 +75,6 @@ struct LightOffsetConstraint
 };
 
 /**
- * @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 );
-}
-
-/**
  * structure of the vertex in the mesh
  */
 struct Vertex
@@ -223,6 +211,21 @@ class RefractionEffectExample : public ConnectionTracker
 public:
   RefractionEffectExample( Application &application )
   : mApplication( application ),
+    mContent(),
+    mTextureSet(),
+    mGeometry(),
+    mRenderer(),
+    mMeshActor(),
+    mShaderFlat(),
+    mShaderRefraction(),
+    mLightAnimation(),
+    mStrenghAnimation(),
+    mLightXYOffsetIndex( Property::INVALID_INDEX ),
+    mSpinAngleIndex( Property::INVALID_INDEX ),
+    mLightIntensityIndex( Property::INVALID_INDEX ),
+    mEffectStrengthIndex( Property::INVALID_INDEX ),
+    mChangeTextureButton(),
+    mChangeMeshButton(),
     mCurrentTextureId( 1 ),
     mCurrentMeshId( 0 )
   {
@@ -257,8 +260,8 @@ private:
 
     // Add a button to change background. (right of toolbar)
     mChangeTextureButton = Toolkit::PushButton::New();
-    mChangeTextureButton.SetUnselectedImage( CHANGE_TEXTURE_ICON );
-    mChangeTextureButton.SetSelectedImage( CHANGE_TEXTURE_ICON_SELECTED );
+    mChangeTextureButton.SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON );
+    mChangeTextureButton.SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON_SELECTED );
     mChangeTextureButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeTexture );
     toolBar.AddControl( mChangeTextureButton,
                         DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
@@ -266,8 +269,8 @@ private:
                         DemoHelper::DEFAULT_MODE_SWITCH_PADDING  );
     // Add a button to change mesh pattern. ( left of bar )
     mChangeMeshButton = Toolkit::PushButton::New();
-    mChangeMeshButton.SetUnselectedImage( CHANGE_MESH_ICON );
-    mChangeMeshButton.SetSelectedImage( CHANGE_MESH_ICON_SELECTED );
+    mChangeMeshButton.SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON );
+    mChangeMeshButton.SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON_SELECTED );
     mChangeMeshButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeMesh );
     toolBar.AddControl( mChangeMeshButton,
                         DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage,
@@ -280,9 +283,9 @@ private:
     mShaderFlat = Shader::New( VERTEX_SHADER_FLAT, FRAGMENT_SHADER_FLAT );
     mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] );
 
-    Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
+    Texture texture = DemoHelper::LoadStageFillingTexture( TEXTURE_IMAGES[mCurrentTextureId] );
     mTextureSet = TextureSet::New();
-    mTextureSet.SetImage( 0u, texture );
+    mTextureSet.SetTexture( 0u, texture );
 
     mRenderer = Renderer::New( mGeometry, mShaderFlat );
     mRenderer.SetTextures( mTextureSet );
@@ -294,7 +297,7 @@ private:
     mContent.Add( mMeshActor );
 
     // Connect the callback to the touch signal on the mesh actor
-    mContent.TouchedSignal().Connect( this, &RefractionEffectExample::OnTouch );
+    mContent.TouchSignal().Connect( this, &RefractionEffectExample::OnTouch );
 
     // shader used when the finger is touching the screen. render refraction effect
     mShaderRefraction = Shader::New( VERTEX_SHADER_REFRACTION, FRAGMENT_SHADER_REFRACTION );
@@ -343,21 +346,20 @@ private:
   bool OnChangeTexture( Toolkit::Button button )
   {
     mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES;
-    Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] );
-    mTextureSet.SetImage( 0u, texture );
+    Texture texture = DemoHelper::LoadStageFillingTexture( TEXTURE_IMAGES[mCurrentTextureId] );
+    mTextureSet.SetTexture( 0u, texture );
     return true;
   }
 
-  bool OnTouch( Actor actor , const TouchEvent& event )
+  bool OnTouch( Actor actor, const TouchData& event )
   {
-    const TouchPoint &point = event.GetPoint(0);
-    switch(point.state)
+    switch( event.GetState( 0 ) )
     {
-      case TouchPoint::Down:
+      case PointState::DOWN:
       {
         mRenderer.SetShader( mShaderRefraction );
 
-        SetLightXYOffset( point.screen );
+        SetLightXYOffset( event.GetScreenPosition( 0 ) );
 
         mLightAnimation.Play();
 
@@ -372,15 +374,15 @@ private:
 
         break;
       }
-      case TouchPoint::Motion:
+      case PointState::MOTION:
       {
         // make the light position following the finger movement
-        SetLightXYOffset( point.screen );
+        SetLightXYOffset( event.GetScreenPosition( 0 ) );
         break;
       }
-      case TouchPoint::Up:
-      case TouchPoint::Leave:
-      case TouchPoint::Interrupted:
+      case PointState::UP:
+      case PointState::LEAVE:
+      case PointState::INTERRUPTED:
       {
         mLightAnimation.Pause();
 
@@ -394,9 +396,7 @@ private:
         mStrenghAnimation.Play();
         break;
       }
-      case TouchPoint::Stationary:
-      case TouchPoint::Last:
-      default:
+      case PointState::STATIONARY:
       {
         break;
       }
@@ -588,21 +588,10 @@ private:
 
 /*****************************************************************************/
 
-static void
-RunTest(Application& app)
+int DALI_EXPORT_API main(int argc, char **argv)
 {
+  Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
   RefractionEffectExample theApp(app);
   app.MainLoop();
-}
-
-/*****************************************************************************/
-
-int
-main(int argc, char **argv)
-{
-  Application app = Application::New(&argc, &argv, DEMO_THEME_PATH);
-
-  RunTest(app);
-
   return 0;
 }