Remove constaints from BloomView, GaussianBlurView & Magnifier
[platform/core/uifw/dali-toolkit.git] / optional / dali-toolkit / internal / controls / bloom-view / bloom-view-impl.cpp
index df4f828..097097f 100644 (file)
@@ -224,8 +224,6 @@ void BloomView::OnInitialize()
 {
   // root actor to parent all user added actors, needed to allow us to set that subtree as exclusive for our child render task
   mChildrenRoot.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
-  mChildrenRoot.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); // same size as BloomView object
-
 
   //////////////////////////////////////////////////////
   // Create shaders
@@ -249,14 +247,12 @@ void BloomView::OnInitialize()
   // Create an ImageActor for compositing the result (scene and bloom textures) to output
   mCompositeImageActor = ImageActor::New();
   mCompositeImageActor.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
-  mCompositeImageActor.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); // same size as BloomView object
   mCompositeImageActor.SetShaderEffect( mCompositeShader );
   mCompositeImageActor.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) ); // FIXME
 
   // Create an ImageActor for holding final result, i.e. the blurred image. This will get rendered to screen later, via default / user render task
   mTargetImageActor = ImageActor::New();
   mTargetImageActor.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
-  mTargetImageActor.ApplyConstraint( Constraint::New<Vector3>( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); // same size as BloomView object
   mTargetImageActor.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) ); // FIXME
 
 
@@ -291,35 +287,22 @@ void BloomView::OnInitialize()
   SetupProperties();
 }
 
-/**
- * ZrelativeToYconstraint
- *
- * f(current, property, scale) = Vector3(current.x, current.y, property.y * scale)
- */
-struct ZrelativeToYconstraint
-{
-  ZrelativeToYconstraint( float scale )
-    : mScale( scale )
-  {}
-
-  Vector3 operator()(const Vector3&    current,
-                     const PropertyInput& property)
-  {
-    Vector3 v;
-
-    v.x = current.x;
-    v.y = current.y;
-    v.z = property.GetVector3().y * mScale;
-
-    return v;
-  }
-
-  float mScale;
-};
-
 void BloomView::OnControlSizeSet(const Vector3& targetSize)
 {
   mTargetSize = Vector2(targetSize);
+  mChildrenRoot.SetSize(targetSize);
+  mCompositeImageActor.SetSize(targetSize);
+  mTargetImageActor.SetSize(targetSize);
+
+  // Children render camera must move when GaussianBlurView object is
+  // resized. This is since we cannot change render target size - so we need
+  // to remap the child actors' rendering accordingly so they still exactly
+  // fill the render target. Note that this means the effective resolution of
+  // the child render changes as the GaussianBlurView object changes size,
+  // this is the trade off for not being able to modify render target size
+  // Change camera z position based on GaussianBlurView actor height
+  float cameraPosConstraintScale = 0.5f / tanf(ARBITRARY_FIELD_OF_VIEW * 0.5f);
+  mRenderFullSizeCamera.SetZ( mTargetSize.height * cameraPosConstraintScale);
 
   // if we are already on stage, need to update render target sizes now to reflect the new size of this actor
   if(Self().OnStage())
@@ -364,19 +347,6 @@ void BloomView::AllocateResources()
     float cameraPosConstraintScale = 0.5f / tanf(ARBITRARY_FIELD_OF_VIEW * 0.5f);
     mRenderFullSizeCamera.SetPosition(0.0f, 0.0f, mTargetSize.height * cameraPosConstraintScale);
 
-
-    // Children render camera must move when GaussianBlurView object is
-    // resized. This is since we cannot change render target size - so we need
-    // to remap the child actors' rendering accordingly so they still exactly
-    // fill the render target. Note that this means the effective resolution of
-    // the child render changes as the GaussianBlurView object changes size,
-    // this is the trade off for not being able to modify render target size
-    // Change camera z position based on GaussianBlurView actor height
-
-    mRenderFullSizeCamera.RemoveConstraints();
-    mRenderFullSizeCamera.ApplyConstraint( Constraint::New<Vector3>( Actor::POSITION, ParentSource( Actor::SIZE ), ZrelativeToYconstraint(cameraPosConstraintScale) ) );
-
-
     //////////////////////////////////////////////////////
     // Pass size change onto GaussianBlurView, so it matches
     mGaussianBlurView.SetSize(mTargetSize);