From a3d1018b355700b12a0bc5d7873ebd49243140c8 Mon Sep 17 00:00:00 2001 From: Tom Robinson Date: Mon, 23 Feb 2015 11:48:39 +0000 Subject: [PATCH] Fixed dissolve effect first image appearing smaller than viewport Change-Id: I84af9b4b9e4c649d6faef3ae70481bf5270ddcc0 --- examples/shader-effect/dissolve-effect-example.cpp | 23 ++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/examples/shader-effect/dissolve-effect-example.cpp b/examples/shader-effect/dissolve-effect-example.cpp index 8d04ddf..6ed3104 100644 --- a/examples/shader-effect/dissolve-effect-example.cpp +++ b/examples/shader-effect/dissolve-effect-example.cpp @@ -139,6 +139,7 @@ private: Toolkit::ToolBar mToolBar; Layer mContent; Toolkit::TextView mTitleActor; + Actor mParent; ImageActor mCurrentImage; ImageActor mNextImage; @@ -221,18 +222,24 @@ void DissolveEffectApp::OnInit( Application& application ) mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); - mViewTimer = Timer::New( VIEWINGTIME ); mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); mTimerReady = true; + // Set size to stage size to avoid seeing a black border on transition + mParent = Actor::New(); + mParent.SetSize( Stage::GetCurrent().GetSize() ); + mParent.SetPositionInheritanceMode( USE_PARENT_POSITION ); + mContent.Add( mParent ); + mSizeConstraint= Constraint::New( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); // show the first image mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); mCurrentImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mCurrentImage.ApplyConstraint( mSizeConstraint ); - mContent.Add(mCurrentImage); + mParent.Add( mCurrentImage ); + mPanGestureDetector.Attach( mCurrentImage ); } @@ -261,7 +268,7 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture& gesture ) mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mNextImage.ApplyConstraint( mSizeConstraint ); mNextImage.SetZ(INITIAL_DEPTH); - mContent.Add(mNextImage); + mParent.Add( mNextImage ); Vector2 size = Vector2( mCurrentImage.GetCurrentSize() ); StartTransition( gesture.position / size, gesture.displacement * Vector2(1.0, size.x/size.y)); } @@ -332,7 +339,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) if( mSlideshow ) { mPlayStopButton.SetBackgroundImage( mIconStop ); - mPanGestureDetector.Detach( mContent ); + mPanGestureDetector.Detach( mParent ); mViewTimer.Start(); mTimerReady = false; } @@ -340,7 +347,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) { mPlayStopButton.SetBackgroundImage( mIconPlay ); mTimerReady = true; - mPanGestureDetector.Attach( mContent ); + mPanGestureDetector.Attach( mParent ); } return true; } @@ -349,7 +356,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation& source ) { mCurrentImage.RemoveShaderEffect(); mNextImage.RemoveShaderEffect(); - mContent.Remove(mCurrentImage); + mParent.Remove( mCurrentImage ); mPanGestureDetector.Detach( mCurrentImage ); mCurrentImage = mNextImage; mPanGestureDetector.Attach( mCurrentImage ); @@ -373,8 +380,8 @@ bool DissolveEffectApp::OnTimerTick() mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); mNextImage.ApplyConstraint( mSizeConstraint ); mNextImage.SetZ(INITIAL_DEPTH); - mContent.Add(mNextImage); - switch(mCentralLineIndex%4) + mParent.Add( mNextImage ); + switch( mCentralLineIndex%4 ) { case 0: { -- 2.7.4