Fixed dissolve effect first image appearing smaller than viewport 93/35693/3
authorTom Robinson <tom.robinson@samsung.com>
Mon, 23 Feb 2015 11:48:39 +0000 (11:48 +0000)
committerTom Robinson <tom.robinson@samsung.com>
Mon, 23 Feb 2015 14:58:36 +0000 (06:58 -0800)
Change-Id: I84af9b4b9e4c649d6faef3ae70481bf5270ddcc0

examples/shader-effect/dissolve-effect-example.cpp

index 8d04ddf..6ed3104 100644 (file)
@@ -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<Vector3>( 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:
       {