Commit a3d1018b355700b12a0bc5d7873ebd49243140c8

Authored by Tom Robinson
1 parent 8fce756e

Fixed dissolve effect first image appearing smaller than viewport

Change-Id: I84af9b4b9e4c649d6faef3ae70481bf5270ddcc0
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&amp; gesture ) @@ -261,7 +268,7 @@ void DissolveEffectApp::OnPanGesture( Actor actor, const PanGesture&amp; 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&amp; source ) @@ -349,7 +356,7 @@ void DissolveEffectApp::OnTransitionCompleted( Animation&amp; 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 {