Commit a3d1018b355700b12a0bc5d7873ebd49243140c8
1 parent
8fce756e
Fixed dissolve effect first image appearing smaller than viewport
Change-Id: I84af9b4b9e4c649d6faef3ae70481bf5270ddcc0
Showing
1 changed file
with
15 additions
and
8 deletions
examples/shader-effect/dissolve-effect-example.cpp
| @@ -139,6 +139,7 @@ private: | @@ -139,6 +139,7 @@ private: | ||
| 139 | Toolkit::ToolBar mToolBar; | 139 | Toolkit::ToolBar mToolBar; |
| 140 | Layer mContent; | 140 | Layer mContent; |
| 141 | Toolkit::TextView mTitleActor; | 141 | Toolkit::TextView mTitleActor; |
| 142 | + Actor mParent; | ||
| 142 | 143 | ||
| 143 | ImageActor mCurrentImage; | 144 | ImageActor mCurrentImage; |
| 144 | ImageActor mNextImage; | 145 | ImageActor mNextImage; |
| @@ -221,18 +222,24 @@ void DissolveEffectApp::OnInit( Application& application ) | @@ -221,18 +222,24 @@ void DissolveEffectApp::OnInit( Application& application ) | ||
| 221 | mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); | 222 | mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); |
| 222 | mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); | 223 | mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); |
| 223 | 224 | ||
| 224 | - | ||
| 225 | mViewTimer = Timer::New( VIEWINGTIME ); | 225 | mViewTimer = Timer::New( VIEWINGTIME ); |
| 226 | mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); | 226 | mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); |
| 227 | mTimerReady = true; | 227 | mTimerReady = true; |
| 228 | 228 | ||
| 229 | + // Set size to stage size to avoid seeing a black border on transition | ||
| 230 | + mParent = Actor::New(); | ||
| 231 | + mParent.SetSize( Stage::GetCurrent().GetSize() ); | ||
| 232 | + mParent.SetPositionInheritanceMode( USE_PARENT_POSITION ); | ||
| 233 | + mContent.Add( mParent ); | ||
| 234 | + | ||
| 229 | mSizeConstraint= Constraint::New<Vector3>( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); | 235 | mSizeConstraint= Constraint::New<Vector3>( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); |
| 230 | 236 | ||
| 231 | // show the first image | 237 | // show the first image |
| 232 | mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); | 238 | mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); |
| 233 | mCurrentImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); | 239 | mCurrentImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 234 | mCurrentImage.ApplyConstraint( mSizeConstraint ); | 240 | mCurrentImage.ApplyConstraint( mSizeConstraint ); |
| 235 | - mContent.Add(mCurrentImage); | 241 | + mParent.Add( mCurrentImage ); |
| 242 | + | ||
| 236 | mPanGestureDetector.Attach( mCurrentImage ); | 243 | mPanGestureDetector.Attach( mCurrentImage ); |
| 237 | } | 244 | } |
| 238 | 245 | ||
| @@ -261,7 +268,7 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture& gesture ) | @@ -261,7 +268,7 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture& gesture ) | ||
| 261 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); | 268 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 262 | mNextImage.ApplyConstraint( mSizeConstraint ); | 269 | mNextImage.ApplyConstraint( mSizeConstraint ); |
| 263 | mNextImage.SetZ(INITIAL_DEPTH); | 270 | mNextImage.SetZ(INITIAL_DEPTH); |
| 264 | - mContent.Add(mNextImage); | 271 | + mParent.Add( mNextImage ); |
| 265 | Vector2 size = Vector2( mCurrentImage.GetCurrentSize() ); | 272 | Vector2 size = Vector2( mCurrentImage.GetCurrentSize() ); |
| 266 | StartTransition( gesture.position / size, gesture.displacement * Vector2(1.0, size.x/size.y)); | 273 | StartTransition( gesture.position / size, gesture.displacement * Vector2(1.0, size.x/size.y)); |
| 267 | } | 274 | } |
| @@ -332,7 +339,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) | @@ -332,7 +339,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) | ||
| 332 | if( mSlideshow ) | 339 | if( mSlideshow ) |
| 333 | { | 340 | { |
| 334 | mPlayStopButton.SetBackgroundImage( mIconStop ); | 341 | mPlayStopButton.SetBackgroundImage( mIconStop ); |
| 335 | - mPanGestureDetector.Detach( mContent ); | 342 | + mPanGestureDetector.Detach( mParent ); |
| 336 | mViewTimer.Start(); | 343 | mViewTimer.Start(); |
| 337 | mTimerReady = false; | 344 | mTimerReady = false; |
| 338 | } | 345 | } |
| @@ -340,7 +347,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) | @@ -340,7 +347,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) | ||
| 340 | { | 347 | { |
| 341 | mPlayStopButton.SetBackgroundImage( mIconPlay ); | 348 | mPlayStopButton.SetBackgroundImage( mIconPlay ); |
| 342 | mTimerReady = true; | 349 | mTimerReady = true; |
| 343 | - mPanGestureDetector.Attach( mContent ); | 350 | + mPanGestureDetector.Attach( mParent ); |
| 344 | } | 351 | } |
| 345 | return true; | 352 | return true; |
| 346 | } | 353 | } |
| @@ -349,7 +356,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation& source ) | @@ -349,7 +356,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation& source ) | ||
| 349 | { | 356 | { |
| 350 | mCurrentImage.RemoveShaderEffect(); | 357 | mCurrentImage.RemoveShaderEffect(); |
| 351 | mNextImage.RemoveShaderEffect(); | 358 | mNextImage.RemoveShaderEffect(); |
| 352 | - mContent.Remove(mCurrentImage); | 359 | + mParent.Remove( mCurrentImage ); |
| 353 | mPanGestureDetector.Detach( mCurrentImage ); | 360 | mPanGestureDetector.Detach( mCurrentImage ); |
| 354 | mCurrentImage = mNextImage; | 361 | mCurrentImage = mNextImage; |
| 355 | mPanGestureDetector.Attach( mCurrentImage ); | 362 | mPanGestureDetector.Attach( mCurrentImage ); |
| @@ -373,8 +380,8 @@ bool DissolveEffectApp::OnTimerTick() | @@ -373,8 +380,8 @@ bool DissolveEffectApp::OnTimerTick() | ||
| 373 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); | 380 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 374 | mNextImage.ApplyConstraint( mSizeConstraint ); | 381 | mNextImage.ApplyConstraint( mSizeConstraint ); |
| 375 | mNextImage.SetZ(INITIAL_DEPTH); | 382 | mNextImage.SetZ(INITIAL_DEPTH); |
| 376 | - mContent.Add(mNextImage); | ||
| 377 | - switch(mCentralLineIndex%4) | 383 | + mParent.Add( mNextImage ); |
| 384 | + switch( mCentralLineIndex%4 ) | ||
| 378 | { | 385 | { |
| 379 | case 0: | 386 | case 0: |
| 380 | { | 387 | { |