/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
*
*/
-#include <dali/dali.h>
#include <dali-toolkit/dali-toolkit.h>
#include <dali-toolkit/devel-api/controls/bloom-view/bloom-view.h>
+#include <dali/dali.h>
using namespace Dali;
using namespace Dali::Toolkit;
namespace
{
+const char* BACKGROUND_IMAGE_PATH(DEMO_IMAGE_DIR "desktop_background_1440x2560.png");
+const char* UI_DIFFUSE_IMAGE(DEMO_IMAGE_DIR "UI-Leather-DIFF.png");
-const char* BACKGROUND_IMAGE_PATH( DEMO_IMAGE_DIR "desktop_background_1440x2560.png" );
-const char* UI_DIFFUSE_IMAGE( DEMO_IMAGE_DIR "UI-Leather-DIFF.png" );
-
-const Rect<int> UI_PIXEL_AREA( 0, 0, 720, 1280 );
+const Rect<int> UI_PIXEL_AREA(0, 0, 720, 1280);
-const Rect<int> PANEL1_PIXEL_AREA( 0, 0, 720, 39 );
-const Rect<int> PANEL2_PIXEL_AREA( 0, 39, 720, 100 );
+const Rect<int> PANEL1_PIXEL_AREA(0, 0, 720, 39);
+const Rect<int> PANEL2_PIXEL_AREA(0, 39, 720, 100);
const unsigned int NUM_MOVEMENT_ANIMATIONS = 2;
// for animating bloom intensity on tap gesture
const float PULSE_BLOOM_INCREASE_ANIM_TIME = 1.175;
const float PULSE_BLOOM_DECREASE_ANIM_TIME = 2.4;
-const float PULSE_BLOOM_TOTAL_ANIM_TIME = PULSE_BLOOM_INCREASE_ANIM_TIME + PULSE_BLOOM_DECREASE_ANIM_TIME;
-const float PULSE_BLOOM_INTENSITY_DEFAULT = 1.0f;
+const float PULSE_BLOOM_TOTAL_ANIM_TIME = PULSE_BLOOM_INCREASE_ANIM_TIME + PULSE_BLOOM_DECREASE_ANIM_TIME;
+const float PULSE_BLOOM_INTENSITY_DEFAULT = 1.0f;
const float PULSE_BLOOM_INTENSITY_INCREASE = 3.0f;
// These values depend on the button background image
const Vector4 BUTTON_IMAGE_BORDER(16.0f, 16.0f, 16.0f, 20.0f);
-const float UI_MARGIN = 4.0f; ///< Screen Margin for placement of UI buttons
-const Vector3 BUTTON_SIZE_CONSTRAINT( 0.24f, 0.09f, 1.0f );
+const float UI_MARGIN = 4.0f; ///< Screen Margin for placement of UI buttons
+const Vector3 BUTTON_SIZE_CONSTRAINT(0.24f, 0.09f, 1.0f);
} // namespace
class BloomExample : public ConnectionTracker
{
public:
-
- BloomExample( Application &application )
+ BloomExample(Application& application)
: mApplication(application),
mCurrentAnimation(0)
{
- application.InitSignal().Connect( this, &BloomExample::Create );
+ application.InitSignal().Connect(this, &BloomExample::Create);
}
~BloomExample()
}
public:
-
- void Create( Application& application )
+ void Create(Application& application)
{
- Stage stage = Stage::GetCurrent();
- Vector2 stageSize = stage.GetSize();
- Vector2 viewSize( stageSize );
+ Window window = application.GetWindow();
+ Vector2 windowSize = window.GetSize();
+ Vector2 viewSize(windowSize);
mRootActor = Actor::New();
- mRootActor.SetParentOrigin( ParentOrigin::CENTER );
- mRootActor.SetSize( stageSize );
- stage.Add( mRootActor );
+ mRootActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mRootActor.SetProperty(Actor::Property::SIZE, windowSize);
+ window.Add(mRootActor);
// Create the object that will perform the blooming work
mBloomView = Dali::Toolkit::BloomView::New();
- mBloomView.SetParentOrigin( ParentOrigin::CENTER );
- mBloomView.SetSize( viewSize );
- mRootActor.Add( mBloomView );
+ mBloomView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mBloomView.SetProperty(Actor::Property::SIZE, viewSize);
+ mRootActor.Add(mBloomView);
mBloomView.Activate();
Layer backgroundLayer = Layer::New();
- backgroundLayer.SetSize( viewSize );
- backgroundLayer.SetParentOrigin( ParentOrigin::CENTER );
- mBloomView.Add( backgroundLayer );
+ backgroundLayer.SetProperty(Actor::Property::SIZE, viewSize);
+ backgroundLayer.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mBloomView.Add(backgroundLayer);
// Create the background image
- ImageView backgroundImage = ImageView::New( BACKGROUND_IMAGE_PATH );
- backgroundImage.SetParentOrigin( ParentOrigin::CENTER );
- backgroundImage.SetSize( viewSize );
- backgroundLayer.Add( backgroundImage );
+ ImageView backgroundImage = ImageView::New(BACKGROUND_IMAGE_PATH);
+ backgroundImage.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ backgroundImage.SetProperty(Actor::Property::SIZE, viewSize);
+ backgroundLayer.Add(backgroundImage);
Layer foregroundLayer = Layer::New();
- foregroundLayer.SetSize( viewSize );
- foregroundLayer.SetParentOrigin( ParentOrigin::CENTER );
- mBloomView.Add( foregroundLayer );
+ foregroundLayer.SetProperty(Actor::Property::SIZE, viewSize);
+ foregroundLayer.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mBloomView.Add(foregroundLayer);
// Create visible actors
mObjectRootActor = Actor::New();
- mObjectRootActor.SetParentOrigin( ParentOrigin::CENTER );
- mObjectRootActor.SetSize( viewSize );
- foregroundLayer.Add( mObjectRootActor );
+ mObjectRootActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mObjectRootActor.SetProperty(Actor::Property::SIZE, viewSize);
+ foregroundLayer.Add(mObjectRootActor);
- ImageView imageView = ImageView::New( UI_DIFFUSE_IMAGE );
- imageView.SetParentOrigin( ParentOrigin::CENTER );
- imageView.SetSize( viewSize );
- mObjectRootActor.Add( imageView );
+ ImageView imageView = ImageView::New(UI_DIFFUSE_IMAGE);
+ imageView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ imageView.SetProperty(Actor::Property::SIZE, viewSize);
+ mObjectRootActor.Add(imageView);
- imageView = ImageView::New( UI_DIFFUSE_IMAGE );
- imageView.SetParentOrigin( ParentOrigin::CENTER );
- imageView.SetSize( stageSize * 0.5f );
- imageView.SetPosition( 0.0f, 0.0f, 100.0f );
- mObjectRootActor.Add( imageView );
+ imageView = ImageView::New(UI_DIFFUSE_IMAGE);
+ imageView.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ imageView.SetProperty(Actor::Property::SIZE, windowSize * 0.5f);
+ imageView.SetProperty(Actor::Property::POSITION, Vector3(0.0f, 0.0f, 100.0f));
+ mObjectRootActor.Add(imageView);
AnimateBloomView();
PulseBloomIntensity();
// Respond to key events
- stage.KeyEventSignal().Connect( this, &BloomExample::OnKeyEvent );
+ window.KeyEventSignal().Connect(this, &BloomExample::OnKeyEvent);
}
- void OnKeyEvent( const KeyEvent& event )
+ void OnKeyEvent(const KeyEvent& event)
{
- if( event.state == KeyEvent::Down )
+ if(event.GetState() == KeyEvent::DOWN)
{
- if ( IsKey( event, Dali::DALI_KEY_ESCAPE ) || IsKey( event, Dali::DALI_KEY_BACK ) )
+ if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK))
{
mApplication.Quit();
}
}
// ROTATE
- mRotationAnimation = Animation::New( 5.0f );
- mRotationAnimation.AnimateBy( Property( mObjectRootActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree( 360 )), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT );
- mRotationAnimation.SetEndAction( Animation::Discard );
- mRotationAnimation.SetLooping( true );
+ mRotationAnimation = Animation::New(5.0f);
+ mRotationAnimation.AnimateBy(Property(mObjectRootActor, Actor::Property::ORIENTATION), Quaternion(Radian(Degree(360)), Vector3::YAXIS), AlphaFunction::EASE_IN_OUT);
+ mRotationAnimation.SetEndAction(Animation::DISCARD);
+ mRotationAnimation.SetLooping(true);
mRotationAnimation.Play();
// TRANSLATE
- mTranslationAnimation = Animation::New( 7.5f );
- mTranslationAnimation.AnimateBy( Property(mObjectRootActor, Actor::Property::POSITION), Vector3(100.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(2.5f) );
- mTranslationAnimation.AnimateBy( Property(mObjectRootActor, Actor::Property::POSITION), Vector3(300.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(2.5f, 2.5f) );
- mTranslationAnimation.AnimateBy( Property(mObjectRootActor, Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(5.0f, 2.5f) );
- mTranslationAnimation.SetEndAction( Animation::Discard );
- mTranslationAnimation.SetLooping( true );
+ mTranslationAnimation = Animation::New(7.5f);
+ mTranslationAnimation.AnimateBy(Property(mObjectRootActor, Actor::Property::POSITION), Vector3(100.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(2.5f));
+ mTranslationAnimation.AnimateBy(Property(mObjectRootActor, Actor::Property::POSITION), Vector3(300.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(2.5f, 2.5f));
+ mTranslationAnimation.AnimateBy(Property(mObjectRootActor, Actor::Property::POSITION), Vector3(0.0f, 0.0f, 0.0f), AlphaFunction::BOUNCE, TimePeriod(5.0f, 2.5f));
+ mTranslationAnimation.SetEndAction(Animation::DISCARD);
+ mTranslationAnimation.SetLooping(true);
//mTranslationAnimation.Play();
// BLUR
- mBlurAnimation = Animation::New( 4.0f );
- mBlurAnimation.AnimateTo( Property( mBloomView, mBloomView.GetBlurStrengthPropertyIndex() ), 0.0f, AlphaFunction::LINEAR, TimePeriod(0.0f, 0.5f) );
- mBlurAnimation.AnimateTo( Property( mBloomView, mBloomView.GetBlurStrengthPropertyIndex() ), 1.0f, AlphaFunction::LINEAR, TimePeriod(2.0f, 0.5f) );
- mBlurAnimation.SetEndAction( Animation::Discard );
- mBlurAnimation.SetLooping( true );
+ mBlurAnimation = Animation::New(4.0f);
+ mBlurAnimation.AnimateTo(Property(mBloomView, mBloomView.GetBlurStrengthPropertyIndex()), 0.0f, AlphaFunction::LINEAR, TimePeriod(0.0f, 0.5f));
+ mBlurAnimation.AnimateTo(Property(mBloomView, mBloomView.GetBlurStrengthPropertyIndex()), 1.0f, AlphaFunction::LINEAR, TimePeriod(2.0f, 0.5f));
+ mBlurAnimation.SetEndAction(Animation::DISCARD);
+ mBlurAnimation.SetLooping(true);
mBlurAnimation.Play();
}
void PulseBloomIntensity()
{
- mPulseBloomIntensityAnim = Animation::New( 2.5f );
- mPulseBloomIntensityAnim.AnimateTo( Property(mBloomView, mBloomView.GetBloomIntensityPropertyIndex()), 3.0f, AlphaFunction::BOUNCE, TimePeriod(2.5f) );
- mPulseBloomIntensityAnim.SetEndAction( Animation::Discard );
- mPulseBloomIntensityAnim.SetLooping( true );
+ mPulseBloomIntensityAnim = Animation::New(2.5f);
+ mPulseBloomIntensityAnim.AnimateTo(Property(mBloomView, mBloomView.GetBloomIntensityPropertyIndex()), 3.0f, AlphaFunction::BOUNCE, TimePeriod(2.5f));
+ mPulseBloomIntensityAnim.SetEndAction(Animation::DISCARD);
+ mPulseBloomIntensityAnim.SetLooping(true);
mPulseBloomIntensityAnim.Play();
}
private:
-
Application& mApplication;
Actor mRootActor;
Actor mObjectRootActor;
unsigned int mCurrentAnimation;
- Animation mRotationAnimation;
- Animation mResizeAnimation;
- Animation mTranslationAnimation;
- Animation mBlurAnimation;
- Animation mPulseBloomIntensityAnim;
+ Animation mRotationAnimation;
+ Animation mResizeAnimation;
+ Animation mTranslationAnimation;
+ Animation mBlurAnimation;
+ Animation mPulseBloomIntensityAnim;
BloomView mBloomView;
};
-int main(int argc, char **argv)
+int DALI_EXPORT_API main(int argc, char** argv)
{
- Application application = Application::New( &argc, &argv );
+ Application application = Application::New(&argc, &argv);
- BloomExample theApp( application );
+ BloomExample theApp(application);
application.MainLoop();
return 0;