diff --git a/demo/dali-table-view.cpp b/demo/dali-table-view.cpp index 13c895e..727140f 100644 --- a/demo/dali-table-view.cpp +++ b/demo/dali-table-view.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2015 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. @@ -37,17 +37,10 @@ using namespace Dali::Toolkit; namespace { -const std::string BUTTON_BACKWARD( "Backward" ); -const std::string BUTTON_FORWARD( "Forward" ); -const std::string BUTTON_QUIT( "Quit" ); -const std::string BUTTON_OK( "Ok" ); -const std::string BUTTON_CANCEL( "Cancel" ); - const std::string LOGO_PATH( DALI_IMAGE_DIR "Logo-for-demo.png" ); const std::string DEFAULT_TOOLBAR_IMAGE_PATH( DALI_IMAGE_DIR "top-bar.png" ); -const std::string BUTTON_BACKGROUND(DALI_IMAGE_DIR "button-background.png"); -const std::string TILE_BACKGROUND(DALI_IMAGE_DIR "item-background.png"); -const std::string TILE_BACKGROUND_ALPHA(DALI_IMAGE_DIR "item-background-alpha.png"); +const std::string TILE_BACKGROUND(DALI_IMAGE_DIR "item-background.9.png"); +const std::string TILE_BACKGROUND_ALPHA(DALI_IMAGE_DIR "item-background-alpha.9.png"); const char * const DEFAULT_TOOLBAR_TEXT( "TOUCH TO LAUNCH EXAMPLE" ); @@ -85,7 +78,6 @@ const float SCALE_SPEED_SIN = 0.1f; const unsigned int BACKGROUND_ANIMATION_DURATION = 15000; // 15 secs -const float BACKGROUND_Z = -1.0f; const Vector4 BACKGROUND_COLOR( 0.3569f, 0.5451f, 0.7294f, 1.0f ); const float BUBBLE_MIN_Z = -1.0; @@ -107,12 +99,6 @@ Control CreateBackground( std::string stylename ) return background; } -// These values depend on the tile image -const float IMAGE_BORDER_LEFT = 11.0f; -const float IMAGE_BORDER_RIGHT = IMAGE_BORDER_LEFT; -const float IMAGE_BORDER_TOP = IMAGE_BORDER_LEFT; -const float IMAGE_BORDER_BOTTOM = IMAGE_BORDER_LEFT; - /** * Constraint to return a position for a bubble based on the scroll value and vertical wrapping */ @@ -165,18 +151,13 @@ DaliTableView::DaliTableView( Application& application ) mScrollViewEffect(), mScrollRulerX(), mScrollRulerY(), - mButtons(), mPressedActor(), mAnimationTimer(), mLogoTapDetector(), mVersionPopup(), - mButtonsPageRelativeSize(), mPages(), - mTableViewImages(), - mBackgroundActors(), mBackgroundAnimations(), mExampleList(), - mExampleMap(), mTotalPages(), mScrolling( false ), mSortAlphabetically( false ), @@ -192,7 +173,6 @@ DaliTableView::~DaliTableView() void DaliTableView::AddExample( Example example ) { mExampleList.push_back( example ); - mExampleMap[ example.name ] = example; } void DaliTableView::SortAlphabetically( bool sortAlphabetically ) @@ -274,14 +254,13 @@ void DaliTableView::Initialize( Application& application ) mScrollViewLayer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); // Create solid background colour. - ImageActor backgroundColourActor = Dali::Toolkit::CreateSolidColorActor( BACKGROUND_COLOR ); + Control backgroundColourActor = Control::New(); + backgroundColourActor.SetBackgroundColor( BACKGROUND_COLOR ); backgroundColourActor.SetAnchorPoint( AnchorPoint::CENTER ); backgroundColourActor.SetParentOrigin( ParentOrigin::CENTER ); backgroundColourActor.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); backgroundColourActor.SetSizeModeFactor( Vector3( 1.0f, 1.5f, 1.0f ) ); - // Force the filled background right to the back - backgroundColourActor.SetSortModifier( DemoHelper::BACKGROUND_DEPTH_INDEX ); mScrollViewLayer.Add( backgroundColourActor ); // Populate background and bubbles - needs to be scrollViewLayer so scroll ends show @@ -289,7 +268,7 @@ void DaliTableView::Initialize( Application& application ) bubbleContainer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); bubbleContainer.SetAnchorPoint( AnchorPoint::CENTER ); bubbleContainer.SetParentOrigin( ParentOrigin::CENTER ); - mScrollViewLayer.Add( bubbleContainer ); + backgroundColourActor.Add( bubbleContainer ); SetupBackground( bubbleContainer ); @@ -372,8 +351,8 @@ void DaliTableView::Populate() for( int t = 0; t < mTotalPages; t++ ) { - // Create Table. (contains up to 9 Examples) - TableView page = TableView::New( 3, 3 ); + // Create Table + TableView page = TableView::New( ROWS_PER_PAGE, EXAMPLES_PER_ROW ); page.SetAnchorPoint( AnchorPoint::CENTER ); page.SetParentOrigin( ParentOrigin::CENTER ); page.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); @@ -478,17 +457,12 @@ Actor DaliTableView::CreateTile( const std::string& name, const std::string& tit // create background image if( addBackground ) { - Image bg = ResourceImage::New( TILE_BACKGROUND ); - ImageActor image = ImageActor::New( bg ); + ImageView image = ImageView::New( TILE_BACKGROUND ); image.SetAnchorPoint( AnchorPoint::CENTER ); image.SetParentOrigin( ParentOrigin::CENTER ); // make the image 100% of tile image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - // move image back to get text appear in front - image.SetZ( -1 ); - image.SetStyle( ImageActor::STYLE_NINE_PATCH ); - image.SetNinePatchBorder( Vector4( IMAGE_BORDER_LEFT, IMAGE_BORDER_TOP, IMAGE_BORDER_RIGHT, IMAGE_BORDER_BOTTOM ) ); content.Add( image ); // Add stencil @@ -522,8 +496,6 @@ ImageActor DaliTableView::NewStencilImage() Image alpha = ResourceImage::New( TILE_BACKGROUND_ALPHA ); ImageActor stencilActor = ImageActor::New( alpha ); - stencilActor.SetStyle( ImageActor::STYLE_NINE_PATCH ); - stencilActor.SetNinePatchBorder( Vector4( IMAGE_BORDER_LEFT, IMAGE_BORDER_TOP, IMAGE_BORDER_RIGHT, IMAGE_BORDER_BOTTOM ) ); stencilActor.SetParentOrigin( ParentOrigin::CENTER ); stencilActor.SetAnchorPoint( AnchorPoint::CENTER ); @@ -551,18 +523,19 @@ bool DaliTableView::OnTilePressed( Actor actor, const TouchEvent& event ) if( ( TouchPoint::Up == point.state ) && ( mPressedActor == actor ) ) { - std::string name = actor.GetName(); - ExampleMapConstIter iter = mExampleMap.find( name ); - - AccessibilityManager accessibilityManager = AccessibilityManager::Get(); - - if( iter != mExampleMap.end() ) + // ignore Example button presses when scrolling or button animating. + if( ( !mScrolling ) && ( !mPressedAnimation ) ) { - // ignore Example button presses when scrolling or button animating. - if( ( !mScrolling ) && ( !mPressedAnimation ) ) + std::string name = actor.GetName(); + const ExampleListIter end = mExampleList.end(); + for( ExampleListIter iter = mExampleList.begin(); iter != end; ++iter ) { - // do nothing, until pressed animation finished. - consumed = true; + if( (*iter).name == name ) + { + // do nothing, until pressed animation finished. + consumed = true; + break; + } } } @@ -590,32 +563,14 @@ void DaliTableView::OnPressedAnimationFinished( Dali::Animation& source ) if( mPressedActor ) { std::string name = mPressedActor.GetName(); - ExampleMapConstIter iter = mExampleMap.find( name ); - if( iter == mExampleMap.end() ) + std::stringstream stream; + stream << DALI_EXAMPLE_BIN << name.c_str(); + pid_t pid = fork(); + if( pid == 0) { - if( name == BUTTON_QUIT ) - { - // Move focus to the OK button - AccessibilityManager accessibilityManager = AccessibilityManager::Get(); - - // Enable the group mode and wrap mode - accessibilityManager.SetGroupMode( true ); - accessibilityManager.SetWrapMode( true ); - } - } - else - { - const Example& example( iter->second ); - - std::stringstream stream; - stream << DALI_EXAMPLE_BIN << example.name.c_str(); - pid_t pid = fork(); - if( pid == 0) - { - execlp( stream.str().c_str(), example.name.c_str(), NULL ); - DALI_ASSERT_ALWAYS(false && "exec failed!"); - } + execlp( stream.str().c_str(), name.c_str(), NULL ); + DALI_ASSERT_ALWAYS(false && "exec failed!"); } mPressedActor.Reset(); } @@ -762,18 +717,13 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage dis for( int i = 0; i < count; ++i ) { float randSize = Random::Range( 10.0f, 400.0f ); - ImageActor dfActor = ImageActor::New( distanceField ); + ImageView dfActor = ImageView::New( distanceField ); dfActor.SetSize( Vector2( randSize, randSize ) ); dfActor.SetParentOrigin( ParentOrigin::CENTER ); - // Force the bubbles just in front of the solid background - dfActor.SetSortModifier( DemoHelper::BACKGROUND_DEPTH_INDEX + 1 ); - - ShaderEffect effect = Toolkit::CreateDistanceFieldEffect(); - dfActor.SetShaderEffect( effect ); + Dali::Property::Map effect = Toolkit::CreateDistanceFieldEffect(); + dfActor.SetProperty( Toolkit::ImageView::Property::IMAGE, effect ); dfActor.SetColor( BUBBLE_COLOR[ i%NUMBER_OF_BUBBLE_COLOR ] ); - effect.SetUniform("uOutlineParams", Vector2( 0.55f, 0.00f ) ); - effect.SetUniform("uSmoothing", 0.5f ); layer.Add( dfActor ); } diff --git a/demo/dali-table-view.h b/demo/dali-table-view.h index 9db332d..33c0e9b 100644 --- a/demo/dali-table-view.h +++ b/demo/dali-table-view.h @@ -2,7 +2,7 @@ #define __DALI_DEMO_H__ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2015 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. @@ -18,8 +18,6 @@ * */ -#include - #include #include #include @@ -27,19 +25,8 @@ class Example; typedef std::vector ExampleList; -typedef std::map ExampleMap; typedef ExampleList::iterator ExampleListIter; typedef ExampleList::const_iterator ExampleListConstIter; -typedef ExampleMap::iterator ExampleMapIter; -typedef ExampleMap::const_iterator ExampleMapConstIter; - -typedef std::vector TableViewList; -typedef TableViewList::iterator TableViewListIter; -typedef TableViewList::const_iterator TableViewListConstIter; - -typedef std::vector ImageActorList; -typedef ImageActorList::iterator ImageActorListIter; -typedef ImageActorList::const_iterator ImageActorListConstIter; typedef std::vector AnimationList; typedef AnimationList::iterator AnimationListIter; @@ -384,19 +371,14 @@ private: Dali::Toolkit::ScrollViewEffect mScrollViewEffect; ///< Effect to be applied to the scroll view Dali::Toolkit::RulerPtr mScrollRulerX; ///< ScrollView X (horizontal) ruler Dali::Toolkit::RulerPtr mScrollRulerY; ///< ScrollView Y (vertical) ruler - Dali::Toolkit::TableView mButtons; ///< Navigation buttons Dali::Actor mPressedActor; ///< The currently pressed actor. Dali::Timer mAnimationTimer; ///< Timer used to turn off animation after a specific time period Dali::TapGestureDetector mLogoTapDetector; ///< To detect taps on the logo Dali::Toolkit::Popup mVersionPopup; ///< Displays DALi library version information - Dali::Vector3 mButtonsPageRelativeSize; ///< Size of a buttons page relative to the stage size std::vector< Dali::Actor > mPages; ///< List of pages. - std::vector< Dali::Actor > mTableViewImages; ///< Offscreen render of tableview - std::vector< Dali::Actor > mBackgroundActors; ///< List of background actors used in the effect AnimationList mBackgroundAnimations; ///< List of background bubble animations ExampleList mExampleList; ///< List of examples. - ExampleMap mExampleMap; ///< Map LUT for examples. int mTotalPages; ///< Total pages within scrollview. diff --git a/examples/benchmark/benchmark.cpp b/examples/benchmark/benchmark.cpp index f673c49..b26221d 100644 --- a/examples/benchmark/benchmark.cpp +++ b/examples/benchmark/benchmark.cpp @@ -225,9 +225,8 @@ Renderer CreateRenderer( unsigned int index ) const char* imagePath = !gNinePatch ? IMAGE_PATH[index] : NINEPATCH_IMAGE_PATH[index]; Image image = ResourceImage::New(imagePath); - Sampler textureSampler = Sampler::New( image, "sTexture" ); Material material = Material::New( shader ); - material.AddSampler(textureSampler); + material.AddTexture( image, "sTexture" ); material.SetBlendMode( BlendingMode::OFF ); renderers[index] = Renderer::New( QuadMesh(), material ); } @@ -339,8 +338,7 @@ public: for( size_t i(0); i( mMotionBlurEffect, uModelProperty, EqualToConstraint() ); - constraint.AddSource( Source( mMotionBlurImageActor , Actor::Property::WORLD_MATRIX ) ); - constraint.Apply(); - mMotionBlurImageActor.SetShaderEffect( mMotionBlurEffect ); + mMotionBlurEffect = CreateMotionBlurEffect(); + + // set actor shader to the blur one + Toolkit::SetMotionBlurProperties( mMotionBlurImageView, MOTION_BLUR_NUM_SAMPLES ); + mMotionBlurImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionBlurEffect ); #ifdef MULTIPLE_MOTION_BLURRED_ACTORS @@ -231,17 +230,15 @@ public: // Motion blurred actor 2 // - mMotionBlurImageActor2 = ImageActor::New(image); - mMotionBlurImageActor2.SetParentOrigin( ParentOrigin::CENTER ); - mMotionBlurImageActor2.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); - mMotionBlurImageActor2.SetPosition(mMotionBlurActorSize.x * 1.1f, 0.0f); - mMotionBlurImageActor.Add( mMotionBlurImageActor2 ); - - // Create shader used for doing motion blur - mMotionBlurEffect2 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurImageView2 = ImageView::New(image); + mMotionBlurImageView2.SetParentOrigin( ParentOrigin::CENTER ); + mMotionBlurImageView2.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); + mMotionBlurImageView2.SetPosition(mMotionBlurActorSize.x * 1.1f, 0.0f); + mMotionBlurImageView.Add( mMotionBlurImageView2 ); // set actor shader to the blur one - mMotionBlurImageActor2.SetShaderEffect( mMotionBlurEffect2 ); + Toolkit::SetMotionBlurProperties( mMotionBlurImageView2, MOTION_BLUR_NUM_SAMPLES ); + mMotionBlurImageView2.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionBlurEffect ); /////////////////////////////////////////////////////// @@ -249,17 +246,15 @@ public: // Motion blurred actor 3 // - mMotionBlurImageActor3 = ImageActor::New(image); - mMotionBlurImageActor3.SetParentOrigin( ParentOrigin::CENTER ); - mMotionBlurImageActor3.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); - mMotionBlurImageActor3.SetPosition(-mMotionBlurActorSize.x * 1.1f, 0.0f); - mMotionBlurImageActor.Add( mMotionBlurImageActor3 ); - - // Create shader used for doing motion blur - mMotionBlurEffect3 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurImageView3 = ImageView::New(image); + mMotionBlurImageView3.SetParentOrigin( ParentOrigin::CENTER ); + mMotionBlurImageView3.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); + mMotionBlurImageView3.SetPosition(-mMotionBlurActorSize.x * 1.1f, 0.0f); + mMotionBlurImageView.Add( mMotionBlurImageView3 ); // set actor shader to the blur one - mMotionBlurImageActor3.SetShaderEffect( mMotionBlurEffect3 ); + Toolkit::SetMotionBlurProperties( mMotionBlurImageView3, MOTION_BLUR_NUM_SAMPLES ); + mMotionBlurImageView3.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionBlurEffect ); /////////////////////////////////////////////////////// @@ -267,35 +262,30 @@ public: // Motion blurred actor 4 // - mMotionBlurImageActor4 = ImageActor::New(image); - mMotionBlurImageActor4.SetParentOrigin( ParentOrigin::CENTER ); - mMotionBlurImageActor4.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); - mMotionBlurImageActor4.SetPosition(0.0f, mMotionBlurActorSize.y * 1.1f); - mMotionBlurImageActor.Add( mMotionBlurImageActor4 ); - - // Create shader used for doing motion blur - mMotionBlurEffect4 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurImageView4 = ImageView::New(image); + mMotionBlurImageView4.SetParentOrigin( ParentOrigin::CENTER ); + mMotionBlurImageView4.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); + mMotionBlurImageView4.SetPosition(0.0f, mMotionBlurActorSize.y * 1.1f); + mMotionBlurImageView.Add( mMotionBlurImageView4 ); // set actor shader to the blur one - mMotionBlurImageActor4.SetShaderEffect( mMotionBlurEffect4 ); - + Toolkit::SetMotionBlurProperties( mMotionBlurImageView4, MOTION_BLUR_NUM_SAMPLES ); + mMotionBlurImageView4.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionBlurEffect ); /////////////////////////////////////////////////////// // // Motion blurred actor 5 // - mMotionBlurImageActor5 = ImageActor::New(image); - mMotionBlurImageActor5.SetParentOrigin( ParentOrigin::CENTER ); - mMotionBlurImageActor5.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); - mMotionBlurImageActor5.SetPosition(0.0f, -mMotionBlurActorSize.y * 1.1f); - mMotionBlurImageActor.Add( mMotionBlurImageActor5 ); - - // Create shader used for doing motion blur - mMotionBlurEffect5 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurImageView5 = ImageView::New(image); + mMotionBlurImageView5.SetParentOrigin( ParentOrigin::CENTER ); + mMotionBlurImageView5.SetSize(mMotionBlurActorSize.x, mMotionBlurActorSize.y); + mMotionBlurImageView5.SetPosition(0.0f, -mMotionBlurActorSize.y * 1.1f); + mMotionBlurImageView.Add( mMotionBlurImageView5 ); // set actor shader to the blur one - mMotionBlurImageActor5.SetShaderEffect( mMotionBlurEffect5 ); + Toolkit::SetMotionBlurProperties( mMotionBlurImageView5, MOTION_BLUR_NUM_SAMPLES ); + mMotionBlurImageView5.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionBlurEffect ); #endif //#ifdef MULTIPLE_MOTION_BLURRED_ACTORS } @@ -374,9 +364,9 @@ public: float animDuration = 0.5f; mActorTapMovementAnimation = Animation::New( animDuration ); - if ( mMotionBlurImageActor ) + if ( mMotionBlurImageView ) { - mActorTapMovementAnimation.AnimateTo( Property(mMotionBlurImageActor, Actor::Property::POSITION), destPos, AlphaFunction::EASE_IN_OUT_SINE, TimePeriod(animDuration) ); + mActorTapMovementAnimation.AnimateTo( Property(mMotionBlurImageView, Actor::Property::POSITION), destPos, AlphaFunction::EASE_IN_OUT_SINE, TimePeriod(animDuration) ); } mActorTapMovementAnimation.SetEndAction( Animation::Bake ); mActorTapMovementAnimation.Play(); @@ -392,7 +382,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionBlurImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionBlurImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -403,7 +393,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionBlurImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionBlurImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -414,8 +404,8 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionBlurImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); - mActorAnimation.AnimateBy( Property( mMotionBlurImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionBlurImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionBlurImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -426,7 +416,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionBlurImageActor, Actor::Property::SCALE ), Vector3(2.0f, 2.0f, 2.0f), AlphaFunction::BOUNCE, TimePeriod( 0.0f, 1.0f ) ); + mActorAnimation.AnimateBy( Property( mMotionBlurImageView, Actor::Property::SCALE ), Vector3(2.0f, 2.0f, 2.0f), AlphaFunction::BOUNCE, TimePeriod( 0.0f, 1.0f ) ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -508,7 +498,14 @@ public: } Image blurImage = LoadImageFittedInBox( MOTION_BLUR_ACTOR_IMAGES[mCurrentImage], mMotionBlurActorSize.x, mMotionBlurActorSize.y ); - mMotionBlurImageActor.SetImage(blurImage); + + mMotionBlurImageView.SetImage(blurImage); +#ifdef MULTIPLE_MOTION_BLURRED_ACTORS + mMotionBlurImageView2.SetImage(blurImage); + mMotionBlurImageView3.SetImage(blurImage); + mMotionBlurImageView4.SetImage(blurImage); + mMotionBlurImageView5.SetImage(blurImage); +#endif } @@ -522,20 +519,15 @@ private: PushButton mActorEffectsButton; ///< The actor effects toggling Button. // Motion blur - ShaderEffect mMotionBlurEffect; - ImageActor mMotionBlurImageActor; + Property::Map mMotionBlurEffect; + ImageView mMotionBlurImageView; Size mMotionBlurActorSize; #ifdef MULTIPLE_MOTION_BLURRED_ACTORS - ShaderEffect mMotionBlurEffect2; - ShaderEffect mMotionBlurEffect3; - ShaderEffect mMotionBlurEffect4; - ShaderEffect mMotionBlurEffect5; - - ImageActor mMotionBlurImageActor2; - ImageActor mMotionBlurImageActor3; - ImageActor mMotionBlurImageActor4; - ImageActor mMotionBlurImageActor5; + ImageView mMotionBlurImageView2; + ImageView mMotionBlurImageView3; + ImageView mMotionBlurImageView4; + ImageView mMotionBlurImageView5; #endif //#ifdef MULTIPLE_MOTION_BLURRED_ACTORS // animate actor to position where user taps screen diff --git a/examples/motion-stretch/motion-stretch-example.cpp b/examples/motion-stretch/motion-stretch-example.cpp index 7d03875..0a06417 100644 --- a/examples/motion-stretch/motion-stretch-example.cpp +++ b/examples/motion-stretch/motion-stretch-example.cpp @@ -177,21 +177,17 @@ public: // Motion stretched actor // - Image image = ResourceImage::New( MOTION_STRETCH_ACTOR_IMAGE1 ); - mMotionStretchImageActor = ImageActor::New(image); - mMotionStretchImageActor.SetParentOrigin( ParentOrigin::CENTER ); - mMotionStretchImageActor.SetAnchorPoint( AnchorPoint::CENTER ); - mMotionStretchImageActor.SetSize(MOTION_STRETCH_ACTOR_WIDTH, MOTION_STRETCH_ACTOR_HEIGHT); + mMotionStretchImageView = ImageView::New( MOTION_STRETCH_ACTOR_IMAGE1 ); + mMotionStretchImageView.SetParentOrigin( ParentOrigin::CENTER ); + mMotionStretchImageView.SetAnchorPoint( AnchorPoint::CENTER ); + mMotionStretchImageView.SetSize( MOTION_STRETCH_ACTOR_WIDTH, MOTION_STRETCH_ACTOR_HEIGHT ); - mContentLayer.Add( mMotionStretchImageActor ); + mContentLayer.Add( mMotionStretchImageView ); // Create shader used for doing motion stretch mMotionStretchEffect = Toolkit::CreateMotionStretchEffect(); - Dali::Property::Index uModelProperty = mMotionStretchEffect.GetPropertyIndex( "uModelLastFrame" ); - Constraint constraint = Constraint::New( mMotionStretchEffect, uModelProperty, EqualToConstraint() ); - constraint.AddSource( Source( mMotionStretchImageActor , Actor::Property::WORLD_MATRIX ) ); - constraint.Apply(); - mMotionStretchImageActor.SetShaderEffect( mMotionStretchEffect ); + Toolkit::SetMotionStretchProperties( mMotionStretchImageView ); + mMotionStretchImageView.SetProperty( Toolkit::ImageView::Property::IMAGE, mMotionStretchEffect ); } ////////////////////////////////////////////////////////////// @@ -268,9 +264,9 @@ public: float animDuration = 0.5f; mActorTapMovementAnimation = Animation::New( animDuration ); - if ( mMotionStretchImageActor ) + if ( mMotionStretchImageView ) { - mActorTapMovementAnimation.AnimateTo( Property(mMotionStretchImageActor, Actor::Property::POSITION), destPos, AlphaFunction::EASE_IN_OUT_SINE, TimePeriod(animDuration) ); + mActorTapMovementAnimation.AnimateTo( Property(mMotionStretchImageView, Actor::Property::POSITION), destPos, AlphaFunction::EASE_IN_OUT_SINE, TimePeriod(animDuration) ); } mActorTapMovementAnimation.SetEndAction( Animation::Bake ); mActorTapMovementAnimation.Play(); @@ -286,7 +282,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionStretchImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionStretchImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -297,7 +293,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionStretchImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionStretchImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -308,8 +304,8 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionStretchImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); - mActorAnimation.AnimateBy( Property( mMotionStretchImageActor, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionStretchImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::YAXIS ), AlphaFunction::EASE_IN_OUT ); + mActorAnimation.AnimateBy( Property( mMotionStretchImageView, Actor::Property::ORIENTATION ), Quaternion( Radian( Degree(360.0f) ), Vector3::ZAXIS ), AlphaFunction::EASE_IN_OUT ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -320,7 +316,7 @@ public: { float animDuration = 1.0f; mActorAnimation = Animation::New(animDuration); - mActorAnimation.AnimateBy( Property( mMotionStretchImageActor, Actor::Property::SCALE ), Vector3(2.0f, 2.0f, 2.0f), AlphaFunction::BOUNCE, TimePeriod( 0.0f, 1.0f ) ); + mActorAnimation.AnimateBy( Property( mMotionStretchImageView, Actor::Property::SCALE ), Vector3(2.0f, 2.0f, 2.0f), AlphaFunction::BOUNCE, TimePeriod( 0.0f, 1.0f ) ); mActorAnimation.SetEndAction( Animation::Bake ); mActorAnimation.Play(); } @@ -402,7 +398,7 @@ public: } Image stretchImage = ResourceImage::New( MOTION_STRETCH_ACTOR_IMAGES[mCurrentImage] ); - mMotionStretchImageActor.SetImage(stretchImage); + mMotionStretchImageView.SetImage(stretchImage); } @@ -415,8 +411,8 @@ private: PushButton mActorEffectsButton; ///< The actor effects toggling Button. // Motion stretch - ShaderEffect mMotionStretchEffect; - ImageActor mMotionStretchImageActor; + Property::Map mMotionStretchEffect; + ImageView mMotionStretchImageView; // animate actor to position where user taps screen Animation mActorTapMovementAnimation; diff --git a/examples/new-window/new-window-example.cpp b/examples/new-window/new-window-example.cpp index 966f526..c553b6c 100644 --- a/examples/new-window/new-window-example.cpp +++ b/examples/new-window/new-window-example.cpp @@ -119,16 +119,16 @@ public: void Create( Application& app ); void Destroy( Application& app ); - void AddBubbles(const Vector2& stageSize); - void AddMeshActor(); - void AddBlendingImageActor(); - void AddTextLabel(); + void AddBubbles( Actor& parentActor, const Vector2& stageSize); + void AddMeshActor( Actor& parentActor ); + void AddBlendingImageActor( Actor& parentActor ); + void AddTextLabel( Actor& parentActor ); ImageView CreateBlurredMirrorImage(const char* imageName); - FrameBufferImage CreateFrameBufferForImage(const char* imageName, Image image, ShaderEffect shaderEffect); + FrameBufferImage CreateFrameBufferForImage( const char* imageName, Property::Map& shaderEffect, const Vector3& rgbDelta ); void SetUpBubbleEmission( const Vector2& emitPosition, const Vector2& direction ); Geometry CreateMeshGeometry(); - ShaderEffect CreateColorModifierer( const Vector3& rgbDelta ); + Dali::Property::Map CreateColorModifierer(); static void NewWindow(void); @@ -185,9 +185,8 @@ void NewWindowController::Create( Application& app ) Size stageSize = stage.GetSize(); Image backgroundImage = ResourceImage::New( BACKGROUND_IMAGE, Dali::ImageDimensions( stageSize.x, stageSize.y ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR ); - ImageActor backgroundActor = ImageActor::New( backgroundImage ); + ImageView backgroundActor = ImageView::New( backgroundImage ); backgroundActor.SetParentOrigin( ParentOrigin::CENTER ); - backgroundActor.SetZ(-2.f); mContentLayer.Add(backgroundActor); // Point the default render task at the view @@ -208,7 +207,7 @@ void NewWindowController::Create( Application& app ) logoLayoutActor.SetParentOrigin(ParentOrigin::CENTER); logoLayoutActor.SetPosition(0.0f, -200.0f, 0.0f); logoLayoutActor.SetScale(0.5f); - mContentLayer.Add(logoLayoutActor); + backgroundActor.Add(logoLayoutActor); Image image = ResourceImage::New(LOGO_IMAGE); ImageView imageView = ImageView::New(image); @@ -222,10 +221,10 @@ void NewWindowController::Create( Application& app ) mirrorImageView.SetAnchorPoint(AnchorPoint::TOP_CENTER); logoLayoutActor.Add(mirrorImageView); - AddBubbles(stage.GetSize()); - AddMeshActor(); - AddBlendingImageActor(); - AddTextLabel(); + AddBubbles( backgroundActor, stage.GetSize()); + AddMeshActor( backgroundActor ); + AddBlendingImageActor( backgroundActor ); + AddTextLabel( backgroundActor ); stage.ContextLostSignal().Connect(this, &NewWindowController::OnContextLost); stage.ContextRegainedSignal().Connect(this, &NewWindowController::OnContextRegained); @@ -236,7 +235,7 @@ void NewWindowController::Destroy( Application& app ) UnparentAndReset(mTextActor); } -void NewWindowController::AddBubbles(const Vector2& stageSize) +void NewWindowController::AddBubbles( Actor& parentActor, const Vector2& stageSize) { mEmitter = Toolkit::BubbleEmitter::New( stageSize, ResourceImage::New( DALI_IMAGE_DIR "bubble-ball.png" ), @@ -246,7 +245,7 @@ void NewWindowController::AddBubbles(const Vector2& stageSize) mEmitter.SetBackground( background, Vector3(0.5f, 0.f,0.5f) ); mEmitter.SetBubbleDensity( 9.f ); Actor bubbleRoot = mEmitter.GetRootActor(); - mContentLayer.Add( bubbleRoot ); + parentActor.Add( bubbleRoot ); bubbleRoot.SetParentOrigin(ParentOrigin::CENTER); bubbleRoot.SetZ(0.1f); @@ -255,7 +254,7 @@ void NewWindowController::AddBubbles(const Vector2& stageSize) mEmitTrackTimer.Start(); } -void NewWindowController::AddMeshActor() +void NewWindowController::AddMeshActor( Actor& parentActor ) { Geometry meshGeometry = CreateMeshGeometry(); @@ -272,15 +271,13 @@ void NewWindowController::AddMeshActor() colorMeshActor.SetPosition(Vector3(0.0f, 50.0f, 0.0f)); colorMeshActor.SetOrientation( Degree(75.f), Vector3::XAXIS ); colorMeshActor.SetName("ColorMeshActor"); - mContentLayer.Add( colorMeshActor ); + parentActor.Add( colorMeshActor ); // Create a textured mesh Image effectImage = ResourceImage::New(EFFECT_IMAGE); - Sampler sampler = Sampler::New(effectImage, "sTexture"); - Shader shaderTextureMesh = Shader::New( VERTEX_TEXTURE_MESH, FRAGMENT_TEXTURE_MESH ); Material textureMeshMaterial = Material::New( shaderTextureMesh ); - textureMeshMaterial.AddSampler( sampler ); + textureMeshMaterial.AddTexture(effectImage, "sTexture"); Renderer textureMeshRenderer = Renderer::New( meshGeometry, textureMeshMaterial ); Actor textureMeshActor = Actor::New(); @@ -291,17 +288,17 @@ void NewWindowController::AddMeshActor() textureMeshActor.SetPosition(Vector3(0.0f, 200.0f, 0.0f)); textureMeshActor.SetOrientation( Degree(75.f), Vector3::XAXIS ); textureMeshActor.SetName("TextureMeshActor"); - mContentLayer.Add( textureMeshActor ); + parentActor.Add( textureMeshActor ); } -void NewWindowController::AddBlendingImageActor() +void NewWindowController::AddBlendingImageActor( Actor& parentActor ) { - ShaderEffect colorModifier = CreateColorModifierer(Vector3( 0.5f, 0.5f, 0.5f )); - Image effectImage = ResourceImage::New(EFFECT_IMAGE); - FrameBufferImage fb2 = CreateFrameBufferForImage( EFFECT_IMAGE, effectImage, colorModifier ); + Property::Map colorModifier = CreateColorModifierer(); + + FrameBufferImage fb2 = CreateFrameBufferForImage( EFFECT_IMAGE, colorModifier, Vector3( 0.5f, 0.5f, 0.5f ) ); ImageView tmpActor = ImageView::New(fb2); - mContentLayer.Add(tmpActor); + parentActor.Add(tmpActor); tmpActor.SetParentOrigin(ParentOrigin::CENTER_RIGHT); tmpActor.SetAnchorPoint(AnchorPoint::TOP_RIGHT); tmpActor.SetPosition(Vector3(0.0f, 150.0f, 0.0f)); @@ -319,16 +316,16 @@ void NewWindowController::AddBlendingImageActor() blendActor.SetPosition(Vector3(0.0f, 100.0f, 0.0f)); blendActor.SetSize(140, 140); blendActor.SetShaderEffect( blendShader ); - mContentLayer.Add(blendActor); + parentActor.Add(blendActor); } -void NewWindowController::AddTextLabel() +void NewWindowController::AddTextLabel( Actor& parentActor ) { mTextActor = TextLabel::New("Some text"); mTextActor.SetParentOrigin(ParentOrigin::CENTER); mTextActor.SetColor(Color::RED); mTextActor.SetName("PushMe text"); - mContentLayer.Add( mTextActor ); + parentActor.Add( mTextActor ); } ImageView NewWindowController::CreateBlurredMirrorImage(const char* imageName) @@ -352,26 +349,25 @@ ImageView NewWindowController::CreateBlurredMirrorImage(const char* imageName) return blurredActor; } -FrameBufferImage NewWindowController::CreateFrameBufferForImage(const char* imageName, Image image, ShaderEffect shaderEffect) +FrameBufferImage NewWindowController::CreateFrameBufferForImage(const char* imageName, Property::Map& shaderEffect, const Vector3& rgbDelta ) { Stage stage = Stage::GetCurrent(); - Uint16Pair intFboSize = ResourceImage::GetImageSize(imageName); + Uint16Pair intFboSize = ResourceImage::GetImageSize( imageName ); Vector2 FBOSize = Vector2(intFboSize.GetWidth(), intFboSize.GetHeight()); FrameBufferImage framebuffer = FrameBufferImage::New(FBOSize.x, FBOSize.y ); RenderTask renderTask = stage.GetRenderTaskList().CreateTask(); - ImageActor imageActor = ImageActor::New(image); - imageActor.SetName("Source image actor"); - if(shaderEffect) - { - imageActor.SetShaderEffect(shaderEffect); - } - imageActor.SetParentOrigin(ParentOrigin::CENTER); - imageActor.SetAnchorPoint(AnchorPoint::CENTER); - imageActor.SetScale(1.0f, -1.0f, 1.0f); - stage.Add(imageActor); // Not in default image view + ImageView imageView = ImageView::New( imageName ); + imageView.SetName("Source image actor"); + imageView.SetProperty( ImageView::Property::IMAGE, shaderEffect ); + imageView.RegisterProperty( "uRGBDelta", rgbDelta ); + + imageView.SetParentOrigin(ParentOrigin::CENTER); + imageView.SetAnchorPoint(AnchorPoint::CENTER); + imageView.SetScale(1.0f, -1.0f, 1.0f); + stage.Add(imageView); // Not in default image view CameraActor cameraActor = CameraActor::New(FBOSize); cameraActor.SetParentOrigin(ParentOrigin::CENTER); @@ -382,7 +378,7 @@ FrameBufferImage NewWindowController::CreateFrameBufferForImage(const char* imag cameraActor.SetPosition(0.0f, 0.0f, ((FBOSize.height * 0.5f) / tanf(Math::PI * 0.125f))); stage.Add(cameraActor); - renderTask.SetSourceActor(imageActor); + renderTask.SetSourceActor(imageView); renderTask.SetInputEnabled(false); renderTask.SetTargetFrameBuffer(framebuffer); renderTask.SetCameraActor( cameraActor ); @@ -453,12 +449,16 @@ Geometry NewWindowController::CreateMeshGeometry() return geometry; } -ShaderEffect NewWindowController::CreateColorModifierer( const Vector3& rgbDelta ) +Dali::Property::Map NewWindowController::CreateColorModifierer() { - std::string fragmentShader = MAKE_SHADER( + const char* fragmentShader ( DALI_COMPOSE_SHADER ( precision highp float;\n uniform vec3 uRGBDelta;\n uniform float uIgnoreAlpha;\n + \n + varying mediump vec2 vTexCoord;\n + uniform sampler2D sTexture;\n + \n float rand(vec2 co) \n {\n return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453); \n} @@ -473,12 +473,14 @@ ShaderEffect NewWindowController::CreateColorModifierer( const Vector3& rgbDelta color.rgb -= min(color.rgb*2.0, 0.0);\n gl_FragColor = color; \n }\n - ); + ) ); - ShaderEffect shaderEffect = ShaderEffect::New("", fragmentShader); - shaderEffect.SetUniform( "uRGBDelta", rgbDelta ); + Property::Map map; + Property::Map customShader; + customShader[ "fragment-shader" ] = fragmentShader; + map[ "shader" ] = customShader; - return shaderEffect; + return map; } void NewWindowController::NewWindow(void) diff --git a/examples/point-mesh/point-mesh-example.cpp b/examples/point-mesh/point-mesh-example.cpp index ec98259..b4e25cd 100644 --- a/examples/point-mesh/point-mesh-example.cpp +++ b/examples/point-mesh/point-mesh-example.cpp @@ -154,14 +154,12 @@ public: mImage = ResourceImage::New( MATERIAL_SAMPLE ); Image image = ResourceImage::New( MATERIAL_SAMPLE2 ); - mSampler1 = Sampler::New(mImage, "sTexture1"); - mSampler2 = Sampler::New(image, "sTexture2"); mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); mMaterial = Material::New( mShader ); - mMaterial.AddSampler( mSampler1 ); - mMaterial.AddSampler( mSampler2 ); + mMaterial.AddTexture(mImage, "sTexture1"); + mMaterial.AddTexture(image, "sTexture2"); mGeometry = CreateGeometry(); @@ -222,8 +220,6 @@ private: Vector3 mStageSize; ///< The size of the stage Image mImage; - Sampler mSampler1; - Sampler mSampler2; Shader mShader; Material mMaterial; Geometry mGeometry; diff --git a/examples/popup/popup-example.cpp b/examples/popup/popup-example.cpp index d232eb0..ea2e89a 100644 --- a/examples/popup/popup-example.cpp +++ b/examples/popup/popup-example.cpp @@ -64,8 +64,7 @@ const char* const IMAGE1 = DALI_IMAGE_DIR "gallery-medium-5.jpg"; const char* const IMAGE2 = DALI_IMAGE_DIR "background-magnifier.jpg"; // Control area image. -const char* DEFAULT_CONTROL_AREA_IMAGE_PATH = DALI_IMAGE_DIR "popup_button_background.png"; ///< Control area image for the popup. -const Vector4 DEFAULT_CONTROL_AREA_9_PATCH_BORDER( 13.0f, 8.0f, 13.0f, 8.0f ); ///< Nine patch information for the control area background. +const char* DEFAULT_CONTROL_AREA_IMAGE_PATH = DALI_IMAGE_DIR "popup_button_background.9.png"; ///< Control area image for the popup. const ButtonItem POPUP_BUTTON_ITEMS[] = { { POPUP_BUTTON_COMPLEX_ID, "Complex" }, @@ -352,10 +351,7 @@ public: if( numberOfButtons > 0 ) { // Start with a control area image. - ImageActor footer = ImageActor::New( ResourceImage::New( DEFAULT_CONTROL_AREA_IMAGE_PATH ) ); - // Nine patch information is only used for the default control area image. - footer.SetStyle( ImageActor::STYLE_NINE_PATCH ); - footer.SetNinePatchBorder( DEFAULT_CONTROL_AREA_9_PATCH_BORDER ); + Toolkit::ImageView footer = Toolkit::ImageView::New( DEFAULT_CONTROL_AREA_IMAGE_PATH ); footer.SetName( "control-area-image" ); // Set up the container's layout. footer.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); @@ -526,7 +522,7 @@ public: else if( button.GetName() == POPUP_BUTTON_CONTENT_IMAGE_ID ) { mPopup = CreatePopup(); - ImageActor image = ImageActor::New( ResourceImage::New( IMAGE2 ) ); + Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE2 ); image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); image.SetPadding( Padding( 20.0f, 20.0f, 20.0f, 20.0f ) ); @@ -615,7 +611,7 @@ public: // Image { - ImageActor image = ImageActor::New( ResourceImage::New( IMAGE1 ) ); + Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE1 ); image.SetName( "COMPLEX_IMAGE" ); image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); image.SetResizePolicy( ResizePolicy::DIMENSION_DEPENDENCY, Dimension::HEIGHT ); diff --git a/examples/refraction-effect/refraction-effect-example.cpp b/examples/refraction-effect/refraction-effect-example.cpp index 80bdc0f..2027b9b 100644 --- a/examples/refraction-effect/refraction-effect-example.cpp +++ b/examples/refraction-effect/refraction-effect-example.cpp @@ -281,9 +281,8 @@ private: mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] ); Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] ); - mSampler = Sampler::New( texture, "sTexture" ); mMaterial = Material::New( mShaderFlat ); - mMaterial.AddSampler( mSampler ); + mMaterial.AddTexture( texture, "sTexture" ); mRenderer = Renderer::New( mGeometry, mMaterial ); @@ -344,7 +343,7 @@ private: { mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES; Image texture = LoadStageFillingImage( TEXTURE_IMAGES[mCurrentTextureId] ); - mSampler.SetImage( texture ); + mMaterial.SetTextureImage( 0, texture ); return true; } @@ -564,8 +563,6 @@ private: Application& mApplication; Layer mContent; - - Sampler mSampler; Material mMaterial; Geometry mGeometry; Renderer mRenderer; diff --git a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp index ca4dd07..3e3cd84 100644 --- a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp +++ b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp @@ -245,9 +245,9 @@ public: mSceneActor.SetParentOrigin(ParentOrigin::CENTER); // Create and add images to the scene actor: - mImageActor1 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_1) ); - mImageActor2 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_2) ); - mImageActor3 = ImageActor::New( ResourceImage::New(SCENE_IMAGE_3) ); + mImageActor1 = ImageView::New( SCENE_IMAGE_1 ); + mImageActor2 = ImageView::New( SCENE_IMAGE_2 ); + mImageActor3 = ImageView::New( SCENE_IMAGE_3 ); mImageActor1.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); mImageActor2.SetResizePolicy( ResizePolicy::USE_NATURAL_SIZE, Dimension::ALL_DIMENSIONS ); @@ -458,9 +458,9 @@ private: ImageActor mShadowPlane; Actor mCastingLight; Actor mLightAnchor; - ImageActor mImageActor1; - ImageActor mImageActor2; - ImageActor mImageActor3; + ImageView mImageActor1; + ImageView mImageActor2; + ImageView mImageActor3; PanGestureDetector mPanGestureDetector; PinchGestureDetector mPinchGestureDetector; TapGestureDetector mTapGestureDetector; diff --git a/examples/size-negotiation/size-negotiation-example.cpp b/examples/size-negotiation/size-negotiation-example.cpp index fe292ca..1cde53c 100644 --- a/examples/size-negotiation/size-negotiation-example.cpp +++ b/examples/size-negotiation/size-negotiation-example.cpp @@ -709,7 +709,7 @@ public: mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) ); - ImageActor image = ImageActor::New( ResourceImage::New( IMAGE ) ); + Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE ); image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); mPopup.Add( image ); @@ -722,7 +722,7 @@ public: mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) ); - ImageActor image = ImageActor::New( ResourceImage::New( IMAGE ) ); + Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE ); image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); image.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); @@ -736,7 +736,7 @@ public: mPopup.SetResizePolicy( ResizePolicy::SIZE_RELATIVE_TO_PARENT, Dimension::ALL_DIMENSIONS ); mPopup.SetSizeModeFactor( Vector3( 0.75f, 0.5f, 1.0f ) ); - ImageActor image = ImageActor::New( ResourceImage::New( IMAGE ) ); + Toolkit::ImageView image = Toolkit::ImageView::New( IMAGE ); image.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); image.SetSizeScalePolicy( SizeScalePolicy::FILL_WITH_ASPECT_RATIO ); diff --git a/examples/text-message-field/text-message-field-example.cpp b/examples/text-message-field/text-message-field-example.cpp index d5ec389..0189334 100644 --- a/examples/text-message-field/text-message-field-example.cpp +++ b/examples/text-message-field/text-message-field-example.cpp @@ -86,7 +86,14 @@ public: rootActor.Add( desktop ); // Add desktop (content) to offscreen actor // Create Photo Box A - ImageActor photoBoxA = CreateSolidColorActor( Vector4(0,0,0,0), true, Color::WHITE, 1 ); + Control photoBoxA = Control::New(); + + Dali::Property::Map border; + border.Insert( "renderer-type", "border-renderer" ); + border.Insert( "border-color", Color::WHITE ); + border.Insert( "border-size", 1.f ); + photoBoxA.SetProperty( Control::Property::BACKGROUND, border ); + photoBoxA.SetName("photoBoxA"); photoBoxA.SetAnchorPoint( AnchorPoint::CENTER ); photoBoxA.SetParentOrigin( ParentOrigin::CENTER ); @@ -101,7 +108,6 @@ public: field.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); field.SetPadding( Padding( 1.0f, 1.0f, 1.0f, 1.0f ) ); field.SetAnchorPoint( AnchorPoint::TOP_LEFT ); - field.SetZ( 1.0f ); field.SetProperty( TextField::Property::TEXT, "Enter Title name" ); field.SetProperty( TextField::Property::DECORATION_BOUNDING_BOX, Rect( SCREEN_BORDER, SCREEN_BORDER, mStageSize.width - SCREEN_BORDER*2, mStageSize.height - SCREEN_BORDER*2 ) ); photoBoxA.Add( field ); diff --git a/examples/textured-mesh/textured-mesh-example.cpp b/examples/textured-mesh/textured-mesh-example.cpp index 1597aca..2271dda 100644 --- a/examples/textured-mesh/textured-mesh-example.cpp +++ b/examples/textured-mesh/textured-mesh-example.cpp @@ -144,18 +144,15 @@ public: // Hide the indicator bar application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); - mImage = ResourceImage::New( MATERIAL_SAMPLE, ResourceImage::ON_DEMAND, Image::NEVER ); - mSampler1 = Sampler::New(mImage, "sTexture"); - + mImage = ResourceImage::New( MATERIAL_SAMPLE ); Image image = ResourceImage::New( MATERIAL_SAMPLE2 ); - mSampler2 = Sampler::New(image, "sTexture"); mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); mMaterial1 = Material::New( mShader ); - mMaterial1.AddSampler( mSampler1 ); + mMaterial1.AddTexture(mImage, "sTexture"); mMaterial2 = Material::New( mShader ); - mMaterial2.AddSampler( mSampler2 ); + mMaterial2.AddTexture(image, "sTexture"); mGeometry = CreateGeometry(); @@ -264,8 +261,6 @@ private: Vector3 mStageSize; ///< The size of the stage Image mImage; - Sampler mSampler1; - Sampler mSampler2; Shader mShader; Material mMaterial1; Material mMaterial2; diff --git a/packaging/com.samsung.dali-demo.spec b/packaging/com.samsung.dali-demo.spec index d1473f6..7d6d3f3 100755 --- a/packaging/com.samsung.dali-demo.spec +++ b/packaging/com.samsung.dali-demo.spec @@ -2,7 +2,7 @@ Name: com.samsung.dali-demo Summary: The OpenGLES Canvas Core Demo -Version: 1.1.6 +Version: 1.1.7 Release: 1 Group: System/Libraries License: Apache-2.0 diff --git a/resources/images/item-background-alpha.9.png b/resources/images/item-background-alpha.9.png new file mode 100644 index 0000000..3a1f611 --- /dev/null +++ b/resources/images/item-background-alpha.9.png diff --git a/resources/images/item-background-alpha.png b/resources/images/item-background-alpha.png deleted file mode 100644 index 00304bc..0000000 --- a/resources/images/item-background-alpha.png +++ /dev/null diff --git a/resources/images/item-background.9.png b/resources/images/item-background.9.png new file mode 100644 index 0000000..c5ec393 --- /dev/null +++ b/resources/images/item-background.9.png diff --git a/resources/images/item-background.png b/resources/images/item-background.png deleted file mode 100644 index 08f2927..0000000 --- a/resources/images/item-background.png +++ /dev/null diff --git a/resources/images/popup_button_background.png b/resources/images/popup_button_background.9.png index 10c7466..3ec9c8d 100644 --- a/resources/images/popup_button_background.png +++ b/resources/images/popup_button_background.9.png