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 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&amp; 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&amp; 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 {
... ...