From: Ferran Sole Date: Mon, 18 May 2015 18:06:16 +0000 (+0100) Subject: ShaderEffect changes X-Git-Tag: dali_1.0.47~2^2~10^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F02%2F39602%2F4;p=platform%2Fcore%2Fuifw%2Fdali-demo.git ShaderEffect changes Signed-off-by: Ferran Sole Change-Id: I609dac012a4f1eba1d0838311e4abdc9f768e568 --- diff --git a/demo/dali-table-view.cpp b/demo/dali-table-view.cpp index 2e6ec48..392e582 100644 --- a/demo/dali-table-view.cpp +++ b/demo/dali-table-view.cpp @@ -528,7 +528,7 @@ ImageActor DaliTableView::NewStencilImage() stencilActor.SetAnchorPoint( AnchorPoint::CENTER ); stencilActor.SetDrawMode( DrawMode::STENCIL ); - Dali::ShaderEffect shaderEffect = AlphaDiscardEffect::New(); + Dali::ShaderEffect shaderEffect = CreateAlphaDiscardEffect(); stencilActor.SetShaderEffect( shaderEffect ); return stencilActor; @@ -766,11 +766,11 @@ void DaliTableView::AddBackgroundActors( Actor layer, int count, BufferImage dis dfActor.SetSize( Vector2( randSize, randSize ) ); dfActor.SetParentOrigin( ParentOrigin::CENTER ); - Toolkit::DistanceFieldEffect effect = Toolkit::DistanceFieldEffect::New(); + ShaderEffect effect = Toolkit::CreateDistanceFieldEffect(); dfActor.SetShaderEffect( effect ); dfActor.SetColor( randColour ); - effect.SetOutlineParams( Vector2( 0.55f, 0.00f ) ); - effect.SetSmoothingEdge( 0.5f ); + effect.SetUniform("uOutlineParams", Vector2( 0.55f, 0.00f ) ); + effect.SetUniform("uSmoothing", 0.5f ); layer.Add( dfActor ); } diff --git a/examples/cluster/cluster-example.cpp b/examples/cluster/cluster-example.cpp index 958c8bb..2de4b3d 100644 --- a/examples/cluster/cluster-example.cpp +++ b/examples/cluster/cluster-example.cpp @@ -551,22 +551,22 @@ public: */ void SetMotionBlurEffect( Actor actor ) { - /* + // only do something if the actor and effect are valid if( actor ) { // first remove from this actor - RenderableActor renderable = RenderableActor::DownCast( actor ); - if( renderable ) + ImageActor imageActor = ImageActor::DownCast( actor ); + if( imageActor ) { - MotionBlurEffect shaderEffect = MotionBlurEffect::New(); - shaderEffect.SetSpeedScalingFactor(0.1f); + ShaderEffect shaderEffect = Toolkit::CreateMotionBlurEffect(); + shaderEffect.SetUniform("uSpeedScalingFactor",0.1f); Dali::Property::Index uModelProperty = shaderEffect.GetPropertyIndex( "uModelLastFrame" ); Constraint constraint = Constraint::New( shaderEffect, uModelProperty, EqualToConstraint() ); - constraint.AddSource( Source( actor , Actor::Property::WORLD_MATRIX ) ); + constraint.AddSource( Source( imageActor , Actor::Property::WORLD_MATRIX ) ); constraint.Apply(); - renderable.SetShaderEffect( shaderEffect ); + imageActor.SetShaderEffect( shaderEffect ); } // then all children recursively const unsigned int count = actor.GetChildCount(); @@ -575,7 +575,7 @@ public: Actor child( actor.GetChildAt( index ) ); SetMotionBlurEffect( child ); } - }*/ + } } /** @@ -650,8 +650,8 @@ public: case CAROUSEL_EFFECT: { // Apply Carousel Shader Effect to scrollView - CarouselEffect shaderEffect = CarouselEffect::New(); - shaderEffect.SetRadius( -CAROUSEL_EFFECT_RADIUS ); + ShaderEffect shaderEffect = Toolkit::CreateCarouselEffect(); + shaderEffect.SetUniform( "uRadius", -CAROUSEL_EFFECT_RADIUS ); // dont apply shader effect to scrollview as it might override internal shaders for bounce effect etc for( std::vector::iterator i = mClusterInfo.begin(); i != mClusterInfo.end(); ++i ) { @@ -663,7 +663,7 @@ public: const Vector2 angleSweep( CAROUSEL_EFFECT_ANGLE_SWEEP / stageSize.width, CAROUSEL_EFFECT_ANGLE_SWEEP / stageSize.width ); - Property::Index anglePerUnit = shaderEffect.GetPropertyIndex( shaderEffect.GetAnglePerUnitPropertyName() ); + Property::Index anglePerUnit = shaderEffect.GetPropertyIndex( "uAnglePerUnit" ); Constraint constraint = Constraint::New( shaderEffect, anglePerUnit, CarouselEffectOrientationConstraint( angleSweep ) ); constraint.AddSource( Source(mView, Actor::Property::ORIENTATION) ); constraint.Apply(); @@ -685,10 +685,10 @@ public: mScrollView.SetRulerY(rulerY); // Apply Carousel Shader Effect to scrollView (Spherical style) - CarouselEffect shaderEffect = CarouselEffect::New(); + ShaderEffect shaderEffect = Toolkit::CreateCarouselEffect(); - shaderEffect.SetRadius( SPHERE_EFFECT_RADIUS ); - shaderEffect.SetAnglePerUnit( Vector2( SPHERE_EFFECT_ANGLE_SWEEP / stageSize.y, SPHERE_EFFECT_ANGLE_SWEEP / stageSize.y ) ); + shaderEffect.SetUniform( "uRadius", SPHERE_EFFECT_RADIUS ); + shaderEffect.SetUniform( "uAnglePerUnit", Vector2( SPHERE_EFFECT_ANGLE_SWEEP / stageSize.y, SPHERE_EFFECT_ANGLE_SWEEP / stageSize.y ) ); // dont apply shader effect to scrollview as it might override internal shaders for bounce effect etc for( std::vector::iterator i = mClusterInfo.begin(); i != mClusterInfo.end(); ++i ) { diff --git a/examples/dissolve-effect/dissolve-effect-example.cpp b/examples/dissolve-effect/dissolve-effect-example.cpp index ebbe4c9..1267dc8 100644 --- a/examples/dissolve-effect/dissolve-effect-example.cpp +++ b/examples/dissolve-effect/dissolve-effect-example.cpp @@ -162,8 +162,8 @@ private: ImageActor mNextImage; unsigned int mIndex; - Toolkit::DissolveEffect mCurrentImageEffect; - Toolkit::DissolveEffect mNextImageEffect; + ShaderEffect mCurrentImageEffect; + ShaderEffect mNextImageEffect; bool mUseHighPrecision; Animation mAnimation; @@ -235,8 +235,8 @@ void DissolveEffectApp::OnInit( Application& application ) mPanGestureDetector.DetectedSignal().Connect( this, &DissolveEffectApp::OnPanGesture ); // create the dissolve effect object - mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); - mNextImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); + mCurrentImageEffect = Toolkit::CreateDissolveEffect(mUseHighPrecision); + mNextImageEffect = Toolkit::CreateDissolveEffect(mUseHighPrecision); mViewTimer = Timer::New( VIEWINGTIME ); mViewTimer.TickSignal().Connect( this, &DissolveEffectApp::OnTimerTick ); @@ -294,20 +294,20 @@ void DissolveEffectApp::StartTransition(Vector2 position, Vector2 displacement) { mAnimation = Animation::New(TRANSITION_DURATION); - mCurrentImageEffect.SetCentralLine(position,displacement); - mCurrentImageEffect.SetDistortion(0.0f); + Dali::Toolkit::DissolveEffectSetCentralLine( mCurrentImageEffect, position, displacement ); + mCurrentImageEffect.SetUniform("uPercentage", 0.0f); mCurrentImage.SetShaderEffect(mCurrentImageEffect); - mAnimation.AnimateTo( Property(mCurrentImageEffect, mCurrentImageEffect.GetDistortionPropertyName()), 1.0f, AlphaFunction::LINEAR ); + mAnimation.AnimateTo( Property(mCurrentImageEffect, "uPercentage"), 1.0f, AlphaFunction::LINEAR ); mNextImage.SetOpacity(0.0f); mAnimation.AnimateTo( Property( mNextImage, Actor::Property::COLOR_ALPHA ), 1.0f, AlphaFunction::LINEAR ); if(mUseHighPrecision) { - mNextImageEffect.SetCentralLine(position,-displacement); - mNextImageEffect.SetDistortion(1.0f); + Dali::Toolkit::DissolveEffectSetCentralLine( mNextImageEffect, position, displacement ); + mNextImageEffect.SetUniform("uPercentage", 1.0f); mNextImage.SetShaderEffect(mNextImageEffect); - mAnimation.AnimateTo( Property(mNextImageEffect, mNextImageEffect.GetDistortionPropertyName()), 0.0f, AlphaFunction::LINEAR ); + mAnimation.AnimateTo( Property(mNextImageEffect, "uPercentage"), 0.0f, AlphaFunction::LINEAR ); } else { @@ -333,7 +333,7 @@ void DissolveEffectApp::OnKeyEvent(const KeyEvent& event) bool DissolveEffectApp::OnEffectButtonClicked( Toolkit::Button button ) { mUseHighPrecision = !mUseHighPrecision; - mCurrentImageEffect = Toolkit::DissolveEffect::New(mUseHighPrecision); + mCurrentImageEffect = Dali::Toolkit::CreateDissolveEffect(mUseHighPrecision); if(mUseHighPrecision) { mTitleActor.SetProperty( TextLabel::Property::TEXT, std::string(APPLICATION_TITLE_HIGHP) ); diff --git a/examples/motion-blur/motion-blur-example.cpp b/examples/motion-blur/motion-blur-example.cpp index ccc056c..dbf58f9 100644 --- a/examples/motion-blur/motion-blur-example.cpp +++ b/examples/motion-blur/motion-blur-example.cpp @@ -212,7 +212,12 @@ public: mContentLayer.Add( mMotionBlurImageActor ); // Create shader used for doing motion blur - mMotionBlurEffect = MotionBlurEffect::Apply(mMotionBlurImageActor); + mMotionBlurEffect = Toolkit::CreateMotionBlurEffect(); + Dali::Property::Index uModelProperty = mMotionBlurEffect.GetPropertyIndex( "uModelLastFrame" ); + Constraint constraint = Constraint::New( mMotionBlurEffect, uModelProperty, EqualToConstraint() ); + constraint.AddSource( Source( mMotionBlurImageActor , Actor::Property::WORLD_MATRIX ) ); + constraint.Apply(); + mMotionBlurImageActor.SetShaderEffect( mMotionBlurEffect ); #ifdef MULTIPLE_MOTION_BLURRED_ACTORS @@ -229,7 +234,7 @@ public: mMotionBlurImageActor.Add( mMotionBlurImageActor2 ); // Create shader used for doing motion blur - mMotionBlurEffect2 = MotionBlurEffect::New(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurEffect2 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); // set actor shader to the blur one mMotionBlurImageActor2.SetShaderEffect( mMotionBlurEffect2 ); @@ -247,7 +252,7 @@ public: mMotionBlurImageActor.Add( mMotionBlurImageActor3 ); // Create shader used for doing motion blur - mMotionBlurEffect3 = MotionBlurEffect::New(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurEffect3 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); // set actor shader to the blur one mMotionBlurImageActor3.SetShaderEffect( mMotionBlurEffect3 ); @@ -265,7 +270,7 @@ public: mMotionBlurImageActor.Add( mMotionBlurImageActor4 ); // Create shader used for doing motion blur - mMotionBlurEffect4 = MotionBlurEffect::New(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurEffect4 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); // set actor shader to the blur one mMotionBlurImageActor4.SetShaderEffect( mMotionBlurEffect4 ); @@ -283,7 +288,7 @@ public: mMotionBlurImageActor.Add( mMotionBlurImageActor5 ); // Create shader used for doing motion blur - mMotionBlurEffect5 = MotionBlurEffect::New(MOTION_BLUR_NUM_SAMPLES); + mMotionBlurEffect5 = CreateMotionBlurEffect(MOTION_BLUR_NUM_SAMPLES); // set actor shader to the blur one mMotionBlurImageActor5.SetShaderEffect( mMotionBlurEffect5 ); @@ -513,15 +518,15 @@ private: PushButton mActorEffectsButton; ///< The actor effects toggling Button. // Motion blur - MotionBlurEffect mMotionBlurEffect; + ShaderEffect mMotionBlurEffect; ImageActor mMotionBlurImageActor; Size mMotionBlurActorSize; #ifdef MULTIPLE_MOTION_BLURRED_ACTORS - MotionBlurEffect mMotionBlurEffect2; - MotionBlurEffect mMotionBlurEffect3; - MotionBlurEffect mMotionBlurEffect4; - MotionBlurEffect mMotionBlurEffect5; + ShaderEffect mMotionBlurEffect2; + ShaderEffect mMotionBlurEffect3; + ShaderEffect mMotionBlurEffect4; + ShaderEffect mMotionBlurEffect5; ImageActor mMotionBlurImageActor2; ImageActor mMotionBlurImageActor3; diff --git a/examples/motion-stretch/motion-stretch-example.cpp b/examples/motion-stretch/motion-stretch-example.cpp index b9c4a75..713a34f 100644 --- a/examples/motion-stretch/motion-stretch-example.cpp +++ b/examples/motion-stretch/motion-stretch-example.cpp @@ -185,7 +185,12 @@ public: mContentLayer.Add( mMotionStretchImageActor ); // Create shader used for doing motion stretch - mMotionStretchEffect = MotionStretchEffect::Apply(mMotionStretchImageActor); + mMotionStretchEffect = Toolkit::CreateMotionStretchEffect(); + Dali::Property::Index uModelProperty = mMotionStretchEffect.GetPropertyIndex( "uModelLastFrame" ); + Constraint constraint = Constraint::New( mMotionStretchEffect, uModelProperty, EqualToConstraint() ); + constraint.AddSource( Source( mMotionStretchImageActor , Actor::Property::WORLD_MATRIX ) ); + constraint.Apply(); + mMotionStretchImageActor.SetShaderEffect( mMotionStretchEffect ); } ////////////////////////////////////////////////////////////// @@ -409,7 +414,7 @@ private: PushButton mActorEffectsButton; ///< The actor effects toggling Button. // Motion stretch - MotionStretchEffect mMotionStretchEffect; + ShaderEffect mMotionStretchEffect; ImageActor mMotionStretchImageActor; // animate actor to position where user taps screen