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 | 139 | Toolkit::ToolBar mToolBar; |
| 140 | 140 | Layer mContent; |
| 141 | 141 | Toolkit::TextView mTitleActor; |
| 142 | + Actor mParent; | |
| 142 | 143 | |
| 143 | 144 | ImageActor mCurrentImage; |
| 144 | 145 | ImageActor mNextImage; |
| ... | ... | @@ -221,18 +222,24 @@ void DissolveEffectApp::OnInit( Application& application ) |
| 221 | 222 | mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); |
| 222 | 223 | mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); |
| 223 | 224 | |
| 224 | - | |
| 225 | 225 | mViewTimer = Timer::New( VIEWINGTIME ); |
| 226 | 226 | mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); |
| 227 | 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 | 235 | mSizeConstraint= Constraint::New<Vector3>( Actor::SCALE, LocalSource( Actor::SIZE ), ParentSource( Actor::SIZE ), ScaleToFitKeepAspectRatioConstraint() ); |
| 230 | 236 | |
| 231 | 237 | // show the first image |
| 232 | 238 | mCurrentImage = ImageActor::New( ResourceImage::New( IMAGES[mIndex] ) ); |
| 233 | 239 | mCurrentImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 234 | 240 | mCurrentImage.ApplyConstraint( mSizeConstraint ); |
| 235 | - mContent.Add(mCurrentImage); | |
| 241 | + mParent.Add( mCurrentImage ); | |
| 242 | + | |
| 236 | 243 | mPanGestureDetector.Attach( mCurrentImage ); |
| 237 | 244 | } |
| 238 | 245 | |
| ... | ... | @@ -261,7 +268,7 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture& gesture ) |
| 261 | 268 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 262 | 269 | mNextImage.ApplyConstraint( mSizeConstraint ); |
| 263 | 270 | mNextImage.SetZ(INITIAL_DEPTH); |
| 264 | - mContent.Add(mNextImage); | |
| 271 | + mParent.Add( mNextImage ); | |
| 265 | 272 | Vector2 size = Vector2( mCurrentImage.GetCurrentSize() ); |
| 266 | 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 | 339 | if( mSlideshow ) |
| 333 | 340 | { |
| 334 | 341 | mPlayStopButton.SetBackgroundImage( mIconStop ); |
| 335 | - mPanGestureDetector.Detach( mContent ); | |
| 342 | + mPanGestureDetector.Detach( mParent ); | |
| 336 | 343 | mViewTimer.Start(); |
| 337 | 344 | mTimerReady = false; |
| 338 | 345 | } |
| ... | ... | @@ -340,7 +347,7 @@ bool DissolveEffectApp::OnSildeshowButtonClicked( Toolkit::Button button ) |
| 340 | 347 | { |
| 341 | 348 | mPlayStopButton.SetBackgroundImage( mIconPlay ); |
| 342 | 349 | mTimerReady = true; |
| 343 | - mPanGestureDetector.Attach( mContent ); | |
| 350 | + mPanGestureDetector.Attach( mParent ); | |
| 344 | 351 | } |
| 345 | 352 | return true; |
| 346 | 353 | } |
| ... | ... | @@ -349,7 +356,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation& source ) |
| 349 | 356 | { |
| 350 | 357 | mCurrentImage.RemoveShaderEffect(); |
| 351 | 358 | mNextImage.RemoveShaderEffect(); |
| 352 | - mContent.Remove(mCurrentImage); | |
| 359 | + mParent.Remove( mCurrentImage ); | |
| 353 | 360 | mPanGestureDetector.Detach( mCurrentImage ); |
| 354 | 361 | mCurrentImage = mNextImage; |
| 355 | 362 | mPanGestureDetector.Attach( mCurrentImage ); |
| ... | ... | @@ -373,8 +380,8 @@ bool DissolveEffectApp::OnTimerTick() |
| 373 | 380 | mNextImage.SetPositionInheritanceMode(USE_PARENT_POSITION_PLUS_LOCAL_POSITION); |
| 374 | 381 | mNextImage.ApplyConstraint( mSizeConstraint ); |
| 375 | 382 | mNextImage.SetZ(INITIAL_DEPTH); |
| 376 | - mContent.Add(mNextImage); | |
| 377 | - switch(mCentralLineIndex%4) | |
| 383 | + mParent.Add( mNextImage ); | |
| 384 | + switch( mCentralLineIndex%4 ) | |
| 378 | 385 | { |
| 379 | 386 | case 0: |
| 380 | 387 | { | ... | ... |