diff --git a/com.samsung.dali-demo.xml b/com.samsung.dali-demo.xml index 238b338..43daadd 100644 --- a/com.samsung.dali-demo.xml +++ b/com.samsung.dali-demo.xml @@ -115,4 +115,7 @@ + + + diff --git a/demo/dali-demo.cpp b/demo/dali-demo.cpp index 35eb917..05aa4c3 100644 --- a/demo/dali-demo.cpp +++ b/demo/dali-demo.cpp @@ -66,6 +66,7 @@ int main(int argc, char **argv) demo.AddExample(Example("textured-mesh.example", DALI_DEMO_STR_TITLE_TEXTURED_MESH)); demo.AddExample(Example("line-mesh.example", DALI_DEMO_STR_TITLE_LINE_MESH)); demo.AddExample(Example("gradients.example", DALI_DEMO_STR_TITLE_COLOR_GRADIENT)); + demo.AddExample(Example("image-view.example", DALI_DEMO_STR_TITLE_IMAGE_VIEW)); demo.SortAlphabetically( true ); diff --git a/examples/benchmark/benchmark.cpp b/examples/benchmark/benchmark.cpp index b26221d..576f404 100644 --- a/examples/benchmark/benchmark.cpp +++ b/examples/benchmark/benchmark.cpp @@ -249,7 +249,7 @@ Actor CreateMeshActor( unsigned int index) // -p NumberOfPages (Modifies the nimber of pages ) // --use-imageview ( Use ImageView instead of ImageActor ) // --use-mesh ( Use new renderer API (as ImageView) but shares renderers between actors when possible ) -// --use-nine-patch ( Use nine patch images ) +// --nine-patch ( Use nine patch images ) // class Benchmark : public ConnectionTracker diff --git a/examples/cube-transition-effect/cube-transition-effect-example.cpp b/examples/cube-transition-effect/cube-transition-effect-example.cpp index 0033935..29fbdaf 100644 --- a/examples/cube-transition-effect/cube-transition-effect-example.cpp +++ b/examples/cube-transition-effect/cube-transition-effect-example.cpp @@ -167,9 +167,9 @@ private: /** * Callback function of cube transition completed signal * @param[in] effect The cube effect used for the transition - * @param[in] imageActor The target imageActor of the completed transition + * @param[in] image The target Image of the completed transition */ - void OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, ImageActor imageActor); + void OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, Image image ); /** * Callback function of timer tick * The timer is used to count the image display duration in slideshow, @@ -181,13 +181,12 @@ private: Toolkit::Control mView; Toolkit::ToolBar mToolBar; Layer mContent; - Toolkit::TextLabel mTitleActor; - Actor mParent; + Toolkit::TextLabel mTitle; Vector2 mViewSize; - ImageActor mCurrentImage; - ImageActor mNextImage; + ResourceImage mCurrentImage; + ResourceImage mNextImage; unsigned int mIndex; bool mIsImageLoading; @@ -238,8 +237,8 @@ void CubeTransitionApp::OnInit( Application& application ) mToolBar.AddControl( mEffectChangeButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Add title to the tool bar. - mTitleActor = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_WAVE ); - mToolBar.AddControl( mTitleActor, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter ); + mTitle = DemoHelper::CreateToolBarLabel( APPLICATION_TITLE_WAVE ); + mToolBar.AddControl( mTitle, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarTitlePercentage, Toolkit::Alignment::HorizontalCenter ); //Add an slideshow icon on the right of the title mSlideshowButton = Toolkit::PushButton::New(); @@ -251,53 +250,55 @@ void CubeTransitionApp::OnInit( Application& application ) // Set size to stage size to avoid seeing a black border on transition mViewSize = Stage::GetCurrent().GetSize(); - mParent = Actor::New(); - mParent.SetSize( mViewSize ); - mParent.SetPositionInheritanceMode( USE_PARENT_POSITION ); - mContent.Add( mParent ); - - // use pan gesture to detect the cursor or finger movement - mPanGestureDetector = PanGestureDetector::New(); - mPanGestureDetector.DetectedSignal().Connect( this, &CubeTransitionApp::OnPanGesture ); - mPanGestureDetector.Attach( mParent ); + // show the first image + mCurrentImage = LoadStageFillingImage( IMAGES[mIndex] ); //use small cubes - mCubeWaveEffect = Toolkit::CubeTransitionWaveEffect::New(NUM_ROWS_WAVE, NUM_COLUMNS_WAVE, mViewSize); + mCubeWaveEffect = Toolkit::CubeTransitionWaveEffect::New( NUM_ROWS_WAVE, NUM_COLUMNS_WAVE ); mCubeWaveEffect.SetTransitionDuration( ANIMATION_DURATION_WAVE ); mCubeWaveEffect.SetCubeDisplacement( CUBE_DISPLACEMENT_WAVE ); mCubeWaveEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted); - mParent.Add(mCubeWaveEffect.GetRoot()); + + mCubeWaveEffect.SetSize( mViewSize ); + mCubeWaveEffect.SetPositionInheritanceMode( USE_PARENT_POSITION ); + mCubeWaveEffect.SetCurrentImage( mCurrentImage ); + // use big cubes - mCubeCrossEffect = Toolkit::CubeTransitionCrossEffect::New(NUM_ROWS_CROSS, NUM_COLUMNS_CROSS, mViewSize); - mCubeCrossEffect.SetTransitionDuration( ANIMATION_DURATION_CROSS); + mCubeCrossEffect = Toolkit::CubeTransitionCrossEffect::New(NUM_ROWS_CROSS, NUM_COLUMNS_CROSS ); + mCubeCrossEffect.SetTransitionDuration( ANIMATION_DURATION_CROSS ); mCubeCrossEffect.SetCubeDisplacement( CUBE_DISPLACEMENT_CROSS ); mCubeCrossEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted); - mParent.Add(mCubeCrossEffect.GetRoot()); - mCubeFoldEffect = Toolkit::CubeTransitionFoldEffect::New(NUM_ROWS_FOLD, NUM_COLUMNS_FOLD, mViewSize); - mCubeFoldEffect.SetTransitionDuration( ANIMATION_DURATION_FOLD); + mCubeCrossEffect.SetSize( mViewSize ); + mCubeCrossEffect.SetPositionInheritanceMode( USE_PARENT_POSITION ); + mCubeCrossEffect.SetCurrentImage( mCurrentImage ); + + mCubeFoldEffect = Toolkit::CubeTransitionFoldEffect::New( NUM_ROWS_FOLD, NUM_COLUMNS_FOLD ); + mCubeFoldEffect.SetTransitionDuration( ANIMATION_DURATION_FOLD ); mCubeFoldEffect.TransitionCompletedSignal().Connect(this, &CubeTransitionApp::OnTransitionCompleted); - mParent.Add(mCubeFoldEffect.GetRoot()); + + mCubeFoldEffect.SetSize( mViewSize ); + mCubeFoldEffect.SetPositionInheritanceMode( USE_PARENT_POSITION ); + mCubeFoldEffect.SetCurrentImage( mCurrentImage ); mViewTimer = Timer::New( VIEWINGTIME ); mViewTimer.TickSignal().Connect( this, &CubeTransitionApp::OnTimerTick ); - // show the first image - mCurrentImage = ImageActor::New( LoadStageFillingImage( IMAGES[mIndex] ) ); - mCurrentImage.SetPositionInheritanceMode( USE_PARENT_POSITION ); - mCurrentImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - mCurrentImage.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); - mParent.Add( mCurrentImage ); mCurrentEffect = mCubeWaveEffect; - mCurrentEffect.SetCurrentImage( mCurrentImage ); + mContent.Add( mCurrentEffect ); + + // use pan gesture to detect the cursor or finger movement + mPanGestureDetector = PanGestureDetector::New(); + mPanGestureDetector.DetectedSignal().Connect( this, &CubeTransitionApp::OnPanGesture ); + mPanGestureDetector.Attach( mContent ); } // signal handler, called when the pan gesture is detected void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture ) { // does not response when the transition has not finished - if( mIsImageLoading || mCubeWaveEffect.IsTransiting() || mCubeCrossEffect.IsTransiting() || mCubeFoldEffect.IsTransiting() || mSlideshow ) + if( mIsImageLoading || mCubeWaveEffect.IsTransitioning() || mCubeCrossEffect.IsTransitioning() || mCubeFoldEffect.IsTransitioning() || mSlideshow ) { return; } @@ -321,22 +322,17 @@ void CubeTransitionApp::OnPanGesture( Actor actor, const PanGesture& gesture ) void CubeTransitionApp::GoToNextImage() { - ResourceImage image = LoadStageFillingImage( IMAGES[ mIndex ] ); - mNextImage = ImageActor::New( image ); - - mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION); - mNextImage.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); - mNextImage.SetSizeScalePolicy( SizeScalePolicy::FIT_WITH_ASPECT_RATIO ); - mCurrentEffect.SetTargetImage(mNextImage); - if( image.GetLoadingState() == ResourceLoadingSucceeded ) + mNextImage = LoadStageFillingImage( IMAGES[ mIndex ] ); + mCurrentEffect.SetTargetImage( mNextImage ); + if( mNextImage.GetLoadingState() == ResourceLoadingSucceeded ) { mIsImageLoading = false; - OnImageLoaded( image ); + OnImageLoaded( mNextImage ); } else { mIsImageLoading = true; - image.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded ); + mNextImage.LoadingFinishedSignal().Connect( this, &CubeTransitionApp::OnImageLoaded ); } } @@ -344,17 +340,16 @@ void CubeTransitionApp::OnImageLoaded(ResourceImage image) { mIsImageLoading = false; mCurrentEffect.StartTransition( mPanPosition, mPanDisplacement ); - mParent.Remove(mCurrentImage); - mParent.Add(mNextImage); mCurrentImage = mNextImage; } bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button ) { + mContent.Remove( mCurrentEffect ); if(mCurrentEffect == mCubeWaveEffect) { mCurrentEffect = mCubeCrossEffect; - mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_CROSS) ); + mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_CROSS) ); mEffectChangeButton.SetUnselectedImage( EFFECT_CROSS_IMAGE ); mEffectChangeButton.SetSelectedImage( EFFECT_CROSS_IMAGE_SELECTED ); @@ -362,21 +357,22 @@ bool CubeTransitionApp::OnEffectButtonClicked( Toolkit::Button button ) else if(mCurrentEffect == mCubeCrossEffect) { mCurrentEffect = mCubeFoldEffect; - mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_FOLD) ); + mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_FOLD) ); mEffectChangeButton.SetUnselectedImage( EFFECT_FOLD_IMAGE ); mEffectChangeButton.SetSelectedImage( EFFECT_FOLD_IMAGE_SELECTED ); } else { mCurrentEffect = mCubeWaveEffect; - mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_WAVE) ); + mTitle.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_WAVE) ); mEffectChangeButton.SetUnselectedImage( EFFECT_WAVE_IMAGE ); mEffectChangeButton.SetSelectedImage( EFFECT_WAVE_IMAGE_SELECTED ); } + mContent.Add( mCurrentEffect ); // Set the current image to cube transition effect // only need to set at beginning or change from another effect - mCurrentEffect.SetCurrentImage(mCurrentImage); + mCurrentEffect.SetCurrentImage( mCurrentImage ); return true; } @@ -385,7 +381,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button ) mSlideshow = !mSlideshow; if( mSlideshow ) { - mPanGestureDetector.Detach( mParent ); + mPanGestureDetector.Detach( mContent ); mSlideshowButton.SetUnselectedImage( SLIDE_SHOW_STOP_ICON ); mSlideshowButton.SetSelectedImage( SLIDE_SHOW_STOP_ICON_SELECTED ); mPanPosition = Vector2( mViewSize.width, mViewSize.height*0.5f ); @@ -394,7 +390,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button ) } else { - mPanGestureDetector.Attach( mParent ); + mPanGestureDetector.Attach( mContent ); mSlideshowButton.SetUnselectedImage( SLIDE_SHOW_START_ICON ); mSlideshowButton.SetSelectedImage( SLIDE_SHOW_START_ICON_SELECTED ); mViewTimer.Stop(); @@ -402,7 +398,7 @@ bool CubeTransitionApp::OnSildeshowButtonClicked( Toolkit::Button button ) return true; } -void CubeTransitionApp::OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, ImageActor imageActor) +void CubeTransitionApp::OnTransitionCompleted(Toolkit::CubeTransitionEffect effect, Image image ) { if( mSlideshow ) { diff --git a/examples/image-view/image-view-example.cpp b/examples/image-view/image-view-example.cpp new file mode 100644 index 0000000..e2779c2 --- /dev/null +++ b/examples/image-view/image-view-example.cpp @@ -0,0 +1,257 @@ +/* + * 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. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +#include "shared/view.h" +#include +#include +#include + +using namespace Dali; + +namespace +{ + +const char* BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-gradient.jpg" ); +const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" ); +const char* APPLICATION_TITLE( "Image view" ); + +const char* IMAGE_PATH[] = { + DALI_IMAGE_DIR "blocks-ball.png", + DALI_IMAGE_DIR "gallery-small-23.jpg", + DALI_IMAGE_DIR "selection-popup-bg.2.9.png", + DALI_IMAGE_DIR "heartsframe.9.png", +}; + +const char* RESOURCE_IMAGE_PATH[] = { + DALI_IMAGE_DIR "contacts-image.png", + DALI_IMAGE_DIR "gallery-small-27.jpg", + DALI_IMAGE_DIR "selection-popup-bg.8.9.png", + DALI_IMAGE_DIR "heartsframe.9.png", +}; + +const unsigned int NUM_IMAGES = sizeof(IMAGE_PATH) / sizeof(char*); +const unsigned int NUM_RESOURCE_IMAGES = sizeof(RESOURCE_IMAGE_PATH) / sizeof(char*); + +const unsigned int COLUMNS = 3; +const unsigned int ROWS = 4; + +} // namespace + +class ImageViewController: public ConnectionTracker +{ + public: + + ImageViewController( Application& application ) + : mApplication( application ), + mCurrentPositionToggle( 0, 0 ), + mCurrentPositionImage( 0, 0 ), + mToggleOff( true ), + mUseResource( false ), + mImageIdx( 1 ) + { + // Connect to the Application's Init signal + mApplication.InitSignal().Connect( this, &ImageViewController::Create ); + } + + ~ImageViewController() + { + // Nothing to do here + } + + void Create( Application& application ) + { + // The Init signal is received once (only) during the Application lifetime + + // Creates a default view with a default tool bar. + // The view is added to the stage. + mContentLayer = DemoHelper::CreateView( application, + mView, + mToolBar, + BACKGROUND_IMAGE, + TOOLBAR_IMAGE, + APPLICATION_TITLE ); + + + mTable = Toolkit::TableView::New( ROWS, COLUMNS ); + mTable.SetAnchorPoint( AnchorPoint::CENTER ); + mTable.SetParentOrigin( ParentOrigin::CENTER ); + mTable.SetResizePolicy( ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS ); + Vector3 offset( -50.0f, -350.0f, 0.0f ); + mTable.SetSizeModeFactor( offset ); + + mContentLayer.Add( mTable ); + + for( unsigned int y = 0; y < ROWS; ++y ) + { + for( unsigned int x = 0; x < COLUMNS; ++x ) + { + mImageViews[x][y] = Toolkit::ImageView::New( IMAGE_PATH[ 0 ] ); + mImageViews[x][y].SetParentOrigin( ParentOrigin::CENTER ); + mImageViews[x][y].SetAnchorPoint( AnchorPoint::CENTER ); + mImageViews[x][y].SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS ); + + mTable.AddChild( mImageViews[x][y], Toolkit::TableView::CellPosition( y, x ) ); + } + } + + Toolkit::TableView buttonsTable = Toolkit::TableView::New( 3, 1 ); + buttonsTable.SetAnchorPoint( AnchorPoint::BOTTOM_CENTER ); + buttonsTable.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); + buttonsTable.SetFitHeight( 0 ); + buttonsTable.SetFitHeight( 1 ); + buttonsTable.SetFitHeight( 2 ); + buttonsTable.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + + Toolkit::PushButton button = Toolkit::PushButton::New(); + button.SetLabelText( "Toggle on/off stage" ); + button.SetParentOrigin( ParentOrigin::CENTER ); + button.SetAnchorPoint( AnchorPoint::CENTER ); + button.ClickedSignal().Connect( this, &ImageViewController::ToggleImageOnStage ); + button.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + buttonsTable.AddChild( button, Toolkit::TableView::CellPosition( 0, 0 ) ); + + Toolkit::PushButton button2 = Toolkit::PushButton::New(); + button2.SetLabelText( "Change Image" ); + button2.SetParentOrigin( ParentOrigin::CENTER ); + button2.SetAnchorPoint( AnchorPoint::CENTER ); + button2.ClickedSignal().Connect( this, &ImageViewController::ChangeImageClicked ); + button2.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + buttonsTable.AddChild( button2, Toolkit::TableView::CellPosition( 1, 0 ) ); + + Toolkit::CheckBoxButton button3 = Toolkit::CheckBoxButton::New(); + button3.SetLabelText( "Use Resource Images" ); + button3.SetParentOrigin( ParentOrigin::CENTER ); + button3.SetAnchorPoint( AnchorPoint::CENTER ); + button3.ClickedSignal().Connect( this, &ImageViewController::UseResourceImagesClicked ); + button3.SetResizePolicy( ResizePolicy::FILL_TO_PARENT, Dimension::WIDTH ); + buttonsTable.AddChild( button3, Toolkit::TableView::CellPosition( 2, 0 ) ); + + mContentLayer.Add(buttonsTable); + } + +private: + bool ToggleImageOnStage( Toolkit::Button button ) + { + Toolkit::ImageView imageView = mImageViews[ mCurrentPositionToggle.columnIndex ][ mCurrentPositionToggle.rowIndex ]; + + if( mToggleOff ) + { + imageView.Unparent(); + } + else + { + mTable.AddChild( imageView, mCurrentPositionToggle ); + } + + ++mCurrentPositionToggle.columnIndex; + if( mCurrentPositionToggle.columnIndex == COLUMNS ) + { + mCurrentPositionToggle.columnIndex = 0; + ++mCurrentPositionToggle.rowIndex; + } + if( mCurrentPositionToggle.rowIndex == ROWS ) + { + mCurrentPositionToggle.rowIndex = 0; + mToggleOff = !mToggleOff; + } + + return true; + } + + bool ChangeImageClicked( Toolkit::Button button ) + { + Toolkit::ImageView imageView = mImageViews[ mCurrentPositionImage.columnIndex ][ mCurrentPositionImage.rowIndex ]; + + if( mUseResource ) + { + ResourceImage image = ResourceImage::New( RESOURCE_IMAGE_PATH[ mImageIdx ] ); + imageView.SetImage( image ); + } + else + { + imageView.SetImage( IMAGE_PATH[ mImageIdx ] ); + } + + ++mCurrentPositionImage.columnIndex; + if( mCurrentPositionImage.columnIndex == COLUMNS ) + { + mCurrentPositionImage.columnIndex = 0; + ++mCurrentPositionImage.rowIndex; + } + if( mCurrentPositionImage.rowIndex == ROWS ) + { + mCurrentPositionImage.rowIndex = 0; + ++mImageIdx; + + int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES; + if( mImageIdx == numImages ) + { + mImageIdx = 0; + } + } + + return true; + } + + bool UseResourceImagesClicked( Toolkit::Button button ) + { + mUseResource = !mUseResource; + + int numImages = mUseResource ? NUM_RESOURCE_IMAGES : NUM_IMAGES; + if( mImageIdx >= numImages ) + { + mImageIdx = 0; + } + + return true; + } + +private: + Application& mApplication; + + Toolkit::Control mView; ///< The View instance. + Toolkit::ToolBar mToolBar; ///< The View's Toolbar. + Layer mContentLayer; ///< Content layer + Toolkit::TableView mTable; + Toolkit::ImageView mImageViews[ COLUMNS ][ ROWS ]; + + Toolkit::TableView::CellPosition mCurrentPositionToggle; + Toolkit::TableView::CellPosition mCurrentPositionImage; + + bool mToggleOff; + bool mUseResource; + int mImageIdx; + +}; + +void RunTest( Application& application ) +{ + ImageViewController test( application ); + + application.MainLoop(); +} + +// Entry point for Linux & Tizen applications +// +int main( int argc, char **argv ) +{ + Application application = Application::New( &argc, &argv, DALI_DEMO_THEME_PATH ); + + RunTest( application ); + + return 0; +} diff --git a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp index 3e3cd84..347c53f 100644 --- a/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp +++ b/examples/shadow-bone-lighting/shadow-bone-lighting-example.cpp @@ -199,8 +199,7 @@ public: mShadowView.SetPointLightFieldOfView( Math::PI / 2.0f); mContents.Add(mShadowView); - Image brickWall = ResourceImage::New(DALI_IMAGE_DIR "brick-wall.jpg"); - mShadowPlaneBg = ImageActor::New(brickWall); + mShadowPlaneBg = ImageView::New( DALI_IMAGE_DIR "brick-wall.jpg" ); mShadowPlaneBg.SetParentOrigin(ParentOrigin::CENTER); mShadowPlaneBg.SetAnchorPoint(AnchorPoint::CENTER); mShadowPlaneBg.SetName("Plane"); @@ -208,7 +207,7 @@ public: mContents.Add(mShadowPlaneBg); mShadowPlaneBg.SetPosition(Vector3(50.0f, 50.0f, -200.0f)); - mShadowView.SetShadowPlane(mShadowPlaneBg); + mShadowView.SetShadowPlaneBackground(mShadowPlaneBg); mShadowView.Activate(); mLightAnchor = Actor::New(); @@ -454,8 +453,8 @@ private: Animation mSceneAnimation; bool mPaused; Toolkit::ShadowView mShadowView; - ImageActor mShadowPlaneBg; - ImageActor mShadowPlane; + ImageView mShadowPlaneBg; + ImageView mShadowPlane; Actor mCastingLight; Actor mLightAnchor; ImageView mImageActor1; diff --git a/packaging/com.samsung.dali-demo.spec b/packaging/com.samsung.dali-demo.spec index 7d6d3f3..faed13a 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.7 +Version: 1.1.8 Release: 1 Group: System/Libraries License: Apache-2.0 diff --git a/resources/images/heartsframe.9.png b/resources/images/heartsframe.9.png new file mode 100644 index 0000000..9313d47 --- /dev/null +++ b/resources/images/heartsframe.9.png diff --git a/shared/dali-demo-strings.h b/shared/dali-demo-strings.h index 9c62408..b2b10d9 100644 --- a/shared/dali-demo-strings.h +++ b/shared/dali-demo-strings.h @@ -94,6 +94,7 @@ extern "C" #define DALI_DEMO_STR_TITLE_TEXTURED_MESH "Mesh Texture" #define DALI_DEMO_STR_TITLE_LINE_MESH "Mesh Line" #define DALI_DEMO_STR_TITLE_COLOR_GRADIENT "Color Gradient" +#define DALI_DEMO_STR_TITLE_IMAGE_VIEW "Image View" #endif