X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=optional%2Fdali-toolkit%2Finternal%2Fcontrols%2Fbloom-view%2Fbloom-view-impl.cpp;h=097097fb2b243f0cfcac6297262234a536318b80;hb=refs%2Ftags%2Fsubmit%2Ftizen%2F20150206.044231;hp=4872d4a872ba4eb013f0ebdf1e40d6f14cb3a348;hpb=022b76df6f53c2860f2684ef1ffee81af1805e2e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/optional/dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp b/optional/dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp index 4872d4a..097097f 100644 --- a/optional/dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp +++ b/optional/dali-toolkit/internal/controls/bloom-view/bloom-view-impl.cpp @@ -1,18 +1,19 @@ -// -// Copyright (c) 2014 Samsung Electronics Co., Ltd. -// -// Licensed under the Flora License, Version 1.0 (the License); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://floralicense.org/license/ -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an AS IS BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// +/* + * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ // CLASS HEADER #include "bloom-view-impl.h" @@ -21,6 +22,10 @@ // EXTERNAL INCLUDES #include #include +#include +#include +#include +#include // INTERNAL INCLUDES #include @@ -219,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( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); // same size as BloomView object - ////////////////////////////////////////////////////// // Create shaders @@ -244,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( 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( Actor::SIZE, ParentSource( Actor::SIZE ), EqualToConstraint() ) ); // same size as BloomView object mTargetImageActor.ScaleBy( Vector3(1.0f, -1.0f, 1.0f) ); // FIXME @@ -286,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()) @@ -359,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( Actor::POSITION, ParentSource( Actor::SIZE ), ZrelativeToYconstraint(cameraPosConstraintScale) ) ); - - ////////////////////////////////////////////////////// // Pass size change onto GaussianBlurView, so it matches mGaussianBlurView.SetSize(mTargetSize);