From af10e25bb20325d256ba5aa00aae248cbf7c5baa Mon Sep 17 00:00:00 2001 From: David Steele Date: Tue, 8 Nov 2016 20:10:58 +0000 Subject: [PATCH] Removed SetOnStage/SetOffStage from visual-base.h Whereever SetOnStage/SetOffStage was used, have replaced with RegisterVisual instead. Change-Id: I76d6df968dcd72a607ad593962a1a3318711a35c Signed-off-by: David Steele --- .../dali-toolkit-test-utils/dummy-control.cpp | 11 ++ .../dali-toolkit-test-utils/dummy-control.h | 2 +- .../src/dali-toolkit/utc-Dali-DebugRendering.cpp | 16 +- .../src/dali-toolkit/utc-Dali-EffectsView.cpp | 5 +- .../src/dali-toolkit/utc-Dali-ToolBar.cpp | 6 +- .../src/dali-toolkit/utc-Dali-VideoView.cpp | 6 + .../src/dali-toolkit/utc-Dali-Visual.cpp | 89 +++++---- .../src/dali-toolkit/utc-Dali-VisualFactory.cpp | 208 +++++++++++---------- .../devel-api/visual-factory/visual-base.cpp | 12 +- .../devel-api/visual-factory/visual-base.h | 19 -- .../controls/effects-view/effects-view-impl.cpp | 28 +-- .../controls/effects-view/effects-view-impl.h | 1 - .../internal/controls/magnifier/magnifier-impl.cpp | 3 +- .../super-blur-view/super-blur-view-impl.cpp | 47 ++--- .../controls/video-view/video-view-impl.cpp | 4 +- dali-toolkit/internal/filters/emboss-filter.cpp | 4 +- dali-toolkit/public-api/controls/control-impl.cpp | 12 +- 17 files changed, 231 insertions(+), 242 deletions(-) diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp index a71f953..6fcc10d 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.cpp @@ -56,6 +56,17 @@ void DummyControlImpl::CustomSlot1( Actor actor ) mCustomSlot1Called = true; } +namespace { + +BaseHandle Create() +{ + return DummyControlImpl::New(); +} + +DALI_TYPE_REGISTRATION_BEGIN( Toolkit::DummyControl, Toolkit::Control, Create ); +DALI_TYPE_REGISTRATION_END() +} + DummyControl DummyControlImpl::New() { IntrusivePtr< DummyControlImpl > impl = new DummyControlImpl; diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h index 2351839..04847d1 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dummy-control.h @@ -75,7 +75,7 @@ public: void RegisterVisual( Property::Index index, Toolkit::Visual::Base visual, bool enabled ); void UnregisterVisual( Property::Index index ); void EnableVisual( Property::Index index, bool enabled ); - bool IsVisualEnabled( Property::Index index ); + bool IsVisualEnabled( Property::Index indepx ); Toolkit::Visual::Base GetVisual( Property::Index index ); Animation CreateTransition( const Toolkit::TransitionData& transition ); diff --git a/automated-tests/src/dali-toolkit/utc-Dali-DebugRendering.cpp b/automated-tests/src/dali-toolkit/utc-Dali-DebugRendering.cpp index b2cb02c..096bf4d 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-DebugRendering.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-DebugRendering.cpp @@ -23,6 +23,7 @@ #include #include // for setting environment variable: DALI_DEBUG_RENDERING +#include "dummy-control.h" using namespace Dali; using namespace Dali::Toolkit; @@ -45,10 +46,17 @@ bool IsDebugVisual( Visual::Base& visual ) isDebugVisualType = ( typeValue->Get() == Visual::WIREFRAME ); // Debug Rendering uses the WireframeVisual } - Actor actor = Actor::New(); - visual.SetOnStage( actor ); - Geometry geometry = actor.GetRendererAt( 0 ).GetGeometry(); - isGeometryLineType = ( geometry.GetType() == Geometry::LINES ); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + Stage::GetCurrent().Add( actor ); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 1, TEST_LOCATION ); + if( actor.GetRendererCount() > 0 ) + { + Geometry geometry = actor.GetRendererAt( 0 ).GetGeometry(); + isGeometryLineType = ( geometry.GetType() == Geometry::LINES ); + } return isDebugVisualType && isGeometryLineType; } diff --git a/automated-tests/src/dali-toolkit/utc-Dali-EffectsView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-EffectsView.cpp index c80e25a..363f2b1 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-EffectsView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-EffectsView.cpp @@ -97,10 +97,10 @@ int UtcDaliEffectsViewDownCast(void) } // Positive test case for a method -int UtcDaliEffectsViewAddRemove(void) +int UtcDaliEffectsViewAddRemoveDropShadow(void) { ToolkitTestApplication application; - tet_infoline("UtcDaliGaussianBlurViewAddRemove"); + tet_infoline("UtcDaliEffectsViewAddRemoveDropShadow"); EffectsView view = EffectsView::New( EffectsView::DROP_SHADOW ); DALI_TEST_CHECK( view ); @@ -187,6 +187,7 @@ int UtcDaliEffectsViewAddRemoveEmboss(void) END_TEST; } + int UtcDaliEffectsViewGetTypeP(void) { ToolkitTestApplication application; diff --git a/automated-tests/src/dali-toolkit/utc-Dali-ToolBar.cpp b/automated-tests/src/dali-toolkit/utc-Dali-ToolBar.cpp index 2232cd3..3bb7da1 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-ToolBar.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-ToolBar.cpp @@ -22,6 +22,7 @@ #include #include #include +#include "dummy-control.h" using namespace Dali; using namespace Toolkit; @@ -37,14 +38,15 @@ static void TestCallback(BaseHandle handle) Actor CreateColorActor( const Vector4& color ) { - Actor solidColorActor = Actor::New(); + DummyControl solidColorActor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(solidColorActor.GetImplementation()); VisualFactory factory = VisualFactory::Get(); Dali::Property::Map map; map[ Visual::Property::TYPE ] = Visual::COLOR; map[ ColorVisual::Property::MIX_COLOR ] = color; Visual::Base colorVisual = factory.CreateVisual( map ); - colorVisual.SetOnStage( solidColorActor ); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, colorVisual ); return solidColorActor; } diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp index 8450f3f..21e201b 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VideoView.cpp @@ -121,6 +121,7 @@ int UtcDaliVideoViewProperty1b(void) Toolkit::VideoView view = Toolkit::VideoView::New(); DALI_TEST_CHECK( view ); + Stage stage = Stage::GetCurrent(); std::string file; Property::Map map; @@ -132,6 +133,8 @@ int UtcDaliVideoViewProperty1b(void) .Add("width", 100) .Add("height", 100) ); + stage.Add( view ); + Property::Value val = view.GetProperty( VideoView::Property::VIDEO ); Property::Map* resultMap = val.GetMap(); @@ -140,6 +143,8 @@ int UtcDaliVideoViewProperty1b(void) DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), "video.mpg", TEST_LOCATION ); + stage.Remove( view ); + END_TEST; } @@ -180,6 +185,7 @@ int UtcDaliVideoViewProperty3(void) val = view.GetProperty( VideoView::Property::MUTED ); DALI_TEST_CHECK( val.Get( muted ) ); DALI_TEST_CHECK( muted ); + END_TEST; } diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index ff64e24..75b4838 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -147,17 +147,20 @@ int UtcDaliVisualSetGetDepthIndex(void) visual.SetDepthIndex( 1.f ); - Actor actor = Actor::New(); - actor.SetSize(200.f, 200.f); - Stage::GetCurrent().Add( actor ); - visual.SetOnStage( actor ); + DummyControl dummyControl = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummyControl.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + + dummyControl.SetSize(200.f, 200.f); + Stage::GetCurrent().Add( dummyControl ); - int depthIndex = actor.GetRendererAt(0u).GetProperty( Renderer::Property::DEPTH_INDEX ); + + int depthIndex = dummyControl.GetRendererAt(0u).GetProperty( Renderer::Property::DEPTH_INDEX ); DALI_TEST_EQUALS( depthIndex, 1, TEST_LOCATION ); DALI_TEST_EQUALS( visual.GetDepthIndex(), 1.f, TEST_LOCATION ); visual.SetDepthIndex( -1.f ); - depthIndex = actor.GetRendererAt(0u).GetProperty( Renderer::Property::DEPTH_INDEX ); + depthIndex = dummyControl.GetRendererAt(0u).GetProperty( Renderer::Property::DEPTH_INDEX ); DALI_TEST_EQUALS( depthIndex, -1, TEST_LOCATION ); DALI_TEST_EQUALS( visual.GetDepthIndex(), -1.f, TEST_LOCATION ); @@ -293,20 +296,24 @@ int UtcDaliVisualSetOnOffStage(void) propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); Visual::Base visual = factory.CreateVisual( propertyMap ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize(200.f, 200.f); - Stage::GetCurrent().Add( actor ); application.SendNotification(); application.Render(0); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); - visual.SetOnStage( actor ); + Stage::GetCurrent().Add( actor ); + application.SendNotification(); application.Render(0); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove( actor ); + application.SendNotification(); application.Render(0); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -321,9 +328,12 @@ int UtcDaliVisualRemoveAndReset(void) VisualFactory factory = VisualFactory::Get(); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + actor.SetSize(200.f, 200.f); Stage::GetCurrent().Add( actor ); + DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); Visual::Base imageVisual; // test calling RemoveAndReset with an empty handle @@ -339,11 +349,8 @@ int UtcDaliVisualRemoveAndReset(void) Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME, ImageDimensions(100, 200)); imageVisual = factory.CreateVisual(image); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, imageVisual ); DALI_TEST_CHECK( imageVisual ); - - imageVisual.SetOnStage( actor ); - application.SendNotification(); - application.Render(0); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); imageVisual.RemoveAndReset( actor ); @@ -378,8 +385,6 @@ int UtcDaliVisualGetPropertyMap1(void) DALI_TEST_CHECK( colorValue->Get() == Color::BLUE ); // change the blend color - Actor actor; - colorVisual.RemoveAndReset( actor ); propertyMap[ColorVisual::Property::MIX_COLOR] = Color::CYAN; colorVisual = factory.CreateVisual( propertyMap ); colorVisual.CreatePropertyMap( resultMap ); @@ -1080,10 +1085,12 @@ int UtcDaliVisualGetPropertyMapBatchImageVisualNoAtlas(void) DALI_TEST_CHECK( batchImageVisual ); - Actor actor = Actor::New(); - batchImageVisual.SetOnStage( actor ); + DummyControl dummyControl = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummyControl.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, batchImageVisual ); + Stage::GetCurrent().Add( dummyControl ); - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + DALI_TEST_CHECK( dummyControl.GetRendererCount() == 1u ); END_TEST; } @@ -1100,11 +1107,12 @@ int UtcDaliVisualAnimateBorderVisual01(void) propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); Visual::Base borderVisual = factory.CreateVisual( propertyMap ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, borderVisual ); actor.SetSize(2000, 2000); actor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add(actor); - borderVisual.SetOnStage( actor ); DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); @@ -1146,11 +1154,12 @@ int UtcDaliVisualAnimateBorderVisual02(void) propertyMap.Insert(BorderVisual::Property::SIZE, 5.f); Visual::Base borderVisual = factory.CreateVisual( propertyMap ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, borderVisual ); actor.SetSize(2000, 2000); actor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add(actor); - borderVisual.SetOnStage( actor ); DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); @@ -1189,11 +1198,12 @@ int UtcDaliVisualAnimateColorVisual(void) propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); Visual::Base borderVisual = factory.CreateVisual( propertyMap ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, borderVisual ); actor.SetSize(2000, 2000); actor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add(actor); - borderVisual.SetOnStage( actor ); DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); @@ -1237,12 +1247,13 @@ int UtcDaliVisualAnimatePrimitiveVisual(void) propertyMap.Insert(ColorVisual::Property::MIX_COLOR, Color::BLUE); Visual::Base borderVisual = factory.CreateVisual( propertyMap ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, borderVisual ); actor.SetSize(2000, 2000); actor.SetParentOrigin(ParentOrigin::CENTER); actor.SetColor(Color::BLACK); Stage::GetCurrent().Add(actor); - borderVisual.SetOnStage( actor ); DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION); @@ -1386,10 +1397,13 @@ static void TestTransform( ToolkitTestApplication& application, Visual::Base vis } //Put the visual on the stage - Actor actor = Actor::New(); - actor.SetSize(200.f, 200.f); - Stage::GetCurrent().Add( actor ); - visual.SetOnStage( actor ); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(actor); + application.SendNotification(); application.Render(0); Renderer renderer( actor.GetRendererAt(0) ); @@ -1597,9 +1611,14 @@ int UtcDaliNPatchVisualCustomShader(void) properties[Dali::Toolkit::ImageVisual::Property::URL] = TEST_NPATCH_FILE_NAME; Visual::Base visual = factory.CreateVisual( properties ); - Actor dummy = Actor::New(); + // trigger creation through setting on stage - visual.SetOnStage( dummy ); + DummyControl dummy = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(dummy.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + dummy.SetSize(2000, 2000); + dummy.SetParentOrigin(ParentOrigin::CENTER); + Stage::GetCurrent().Add(dummy); Renderer renderer = dummy.GetRendererAt( 0 ); Shader shader2 = renderer.GetShader(); @@ -1614,11 +1633,9 @@ int UtcDaliNPatchVisualCustomShader(void) END_TEST; } - int UtcDaliGradientVisualBlendMode(void) { ToolkitTestApplication application; - VisualFactory factory = VisualFactory::Get(); Visual::Base opaqueGradientVisual = factory.CreateVisual( diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp index b6b42e3..7d36ae6 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp @@ -25,6 +25,7 @@ #include #include #include +#include "dummy-control.h" using namespace Dali; using namespace Dali::Toolkit; @@ -181,12 +182,15 @@ Integration::ResourcePointer CustomizeNinePatch( TestApplication& application, } void TestVisualRender( ToolkitTestApplication& application, - Actor& actor, - Visual::Base& visual, - std::size_t expectedSamplers = 0, - ImageDimensions imageDimensions = ImageDimensions(), - Integration::ResourcePointer resourcePtr = Integration::ResourcePointer()) + DummyControl& actor, + Visual::Base& visual, + std::size_t expectedSamplers = 0, + ImageDimensions imageDimensions = ImageDimensions(), + Integration::ResourcePointer resourcePtr = Integration::ResourcePointer()) { + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + if( resourcePtr ) { // set the image size, for test case, this needs to be set before loading started @@ -194,11 +198,9 @@ void TestVisualRender( ToolkitTestApplication& application, } actor.SetSize( 200.f, 200.f ); - Stage::GetCurrent().Add( actor ); - visual.SetSize( Vector2(200.f, 200.f) ); - visual.SetOnStage( actor ); + DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + Stage::GetCurrent().Add( actor ); application.SendNotification(); application.Render(); @@ -217,11 +219,11 @@ void TestVisualRender( ToolkitTestApplication& application, if( resourcePtr ) { - DALI_TEST_CHECK( application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceFunc) || - application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceSynchronouslyFunc )); + DALI_TEST_EQUALS( application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceFunc) || + application.GetPlatform().WasCalled(TestPlatformAbstraction::LoadResourceSynchronouslyFunc ), true, TEST_LOCATION); } - DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION ); } @@ -307,7 +309,7 @@ int UtcDaliVisualFactoryGetColorVisual1(void) Visual::Base visual = factory.CreateVisual(propertyMap); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual ); Vector4 actualValue(Vector4::ZERO); @@ -333,7 +335,7 @@ int UtcDaliVisualFactoryGetColorVisual2(void) Visual::Base visual = factory.CreateVisual( map ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual ); Vector4 actualValue(Vector4::ZERO); @@ -341,7 +343,7 @@ int UtcDaliVisualFactoryGetColorVisual2(void) DALI_TEST_CHECK( gl.GetUniformValue( "mixColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove(actor); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -365,11 +367,12 @@ int UtcDaliVisualFactoryGetBorderVisual1(void) Visual::Base visual = factory.CreateVisual(propertyMap); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize(200.f, 200.f); Stage::GetCurrent().Add( actor ); visual.SetSize(Vector2(200.f, 200.f)); - visual.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); int blendMode = actor.GetRendererAt(0u).GetProperty( Renderer::Property::BLEND_MODE ); @@ -388,7 +391,7 @@ int UtcDaliVisualFactoryGetBorderVisual1(void) DALI_TEST_CHECK( gl.GetUniformValue( "borderSize", actualSize ) ); DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION ); - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -412,11 +415,12 @@ int UtcDaliVisualFactoryGetBorderVisual2(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize(200.f, 200.f); Stage::GetCurrent().Add( actor ); visual.SetSize(Vector2(200.f, 200.f)); - visual.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); @@ -436,7 +440,7 @@ int UtcDaliVisualFactoryGetBorderVisual2(void) DALI_TEST_CHECK( gl.GetUniformValue( "borderSize", actualSize ) ); DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION ); - visual.SetOffStage( actor ); + actor.Unparent(); // enable the anti-aliasing Dali::Property::Map map; @@ -445,10 +449,10 @@ int UtcDaliVisualFactoryGetBorderVisual2(void) map[ BorderVisual::Property::SIZE ] = testSize; map[ BorderVisual::Property::ANTI_ALIASING ] = true; visual = factory.CreateVisual( map ); - visual.SetOnStage( actor ); - application.SendNotification(); - application.Render(0); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + Stage::GetCurrent().Add( actor ); + blendMode = actor.GetRendererAt(0u).GetProperty( Renderer::Property::BLEND_MODE ); DALI_TEST_EQUALS( static_cast(blendMode), BlendMode::ON, TEST_LOCATION ); @@ -486,11 +490,8 @@ int UtcDaliVisualFactoryGetLinearGradientVisual(void) DALI_TEST_CHECK( visual ); // A lookup texture is generated and pass to shader as sampler - Actor actor = Actor::New(); - TestVisualRender( application, actor, visual, 1u ); - - visual.SetOffStage( actor ); - DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); + DummyControl actor = DummyControl::New(); + TestVisualRender( application, actor, visual, 1u); END_TEST; } @@ -526,7 +527,7 @@ int UtcDaliVisualFactoryGetRadialGradientVisual(void) DALI_TEST_CHECK( visual ); // A lookup texture is generated and pass to shader as sampler - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u ); Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f ); @@ -566,10 +567,10 @@ int UtcDaliVisualFactoryDefaultOffsetsGradientVisual(void) DALI_TEST_CHECK( visual ); // A lookup texture is generated and pass to shader as sampler - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -590,7 +591,6 @@ int UtcDaliVisualFactoryGetImageVisual1(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied. // Image with a size smaller than 512*512 will be uploaded as a part of the atlas. @@ -603,13 +603,14 @@ int UtcDaliVisualFactoryGetImageVisual1(void) Integration::Bitmap* bitmap = Integration::Bitmap::New( Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD ); bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, width, height,width, height ); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(width, height), - Integration::ResourcePointer( bitmap ) ); + ImageDimensions(width, height), + Integration::ResourcePointer( bitmap ) ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -626,7 +627,6 @@ int UtcDaliVisualFactoryGetImageVisual2(void) Image image = ResourceImage::New(TEST_IMAGE_FILE_NAME); Visual::Base visual = factory.CreateVisual( image ); - Actor actor = Actor::New(); // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied. // Image with a size smaller than 512*512 will be uploaded as a part of the atlas. @@ -640,12 +640,12 @@ int UtcDaliVisualFactoryGetImageVisual2(void) TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(width, height), - Integration::ResourcePointer(bitmap) ); + ImageDimensions(width, height), + Integration::ResourcePointer(bitmap) ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); - END_TEST; } @@ -675,16 +675,18 @@ int UtcDaliVisualFactoryGetImageVisual3(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); TraceCallStack& texParameterTrace = gl.GetTexParameterTrace(); texParameterTrace.Enable( true ); - actor.SetSize( 200.f, 200.f ); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add( actor ); - visual.SetOnStage( actor ); // loading started application.SendNotification(); @@ -725,7 +727,7 @@ int UtcDaliVisualFactoryGetImageVisual3(void) DALI_TEST_CHECK( gl.GetUniformValue( "wrapMode", wrapModeUniform ) ); DALI_TEST_EQUALS( wrapMode, wrapModeUniform, Math::MACHINE_EPSILON_100, TEST_LOCATION ); - visual.SetOffStage( actor ); + actor.Unparent( ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -757,16 +759,18 @@ int UtcDaliVisualFactoryGetImageVisual4(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); TraceCallStack& texParameterTrace = gl.GetTexParameterTrace(); texParameterTrace.Enable( true ); - actor.SetSize( 200.f, 200.f ); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize(2000, 2000); + actor.SetParentOrigin(ParentOrigin::CENTER); Stage::GetCurrent().Add( actor ); - visual.SetOnStage( actor ); // loading started application.SendNotification(); @@ -803,7 +807,7 @@ int UtcDaliVisualFactoryGetImageVisual4(void) Property::Index wrapModeIndex = renderer.GetPropertyIndex( "wrapMode" ); DALI_TEST_CHECK(wrapModeIndex == Property::INVALID_INDEX); - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -833,15 +837,15 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); } @@ -852,15 +856,14 @@ int UtcDaliVisualFactoryGetNPatchVisual1(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); - TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); } @@ -896,19 +899,18 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); - + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); } @@ -921,15 +923,15 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void) TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); - visual.SetOffStage( actor ); + Stage::GetCurrent().Remove( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); } @@ -955,15 +957,14 @@ int UtcDaliVisualFactoryGetNPatchVisual3(void) Visual::Base visual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); - TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); @@ -1003,15 +1004,14 @@ int UtcDaliVisualFactoryGetNPatchVisual4(void) Visual::Base visual = factory.CreateVisual( TEST_NPATCH_FILE_NAME, ImageDimensions() ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); - TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), - ninePatchResource ); + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); @@ -1031,8 +1031,6 @@ int UtcDaliVisualFactoryGetNPatchVisualN1(void) Visual::Base visual = factory.CreateVisual( "ERROR.9.jpg", ImageDimensions() ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); - //The testkit still has to load a bitmap for the broken renderer image Integration::Bitmap* bitmap = Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD); bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, 100, 100, 100, 100 ); @@ -1041,9 +1039,10 @@ int UtcDaliVisualFactoryGetNPatchVisualN1(void) TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(), - Integration::ResourcePointer(bitmap) ); + ImageDimensions(), + Integration::ResourcePointer(bitmap) ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); @@ -1067,8 +1066,6 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); - //The testkit still has to load a bitmap for the broken renderer image Integration::Bitmap* bitmap = Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD); bitmap->GetPackedPixelsProfile()->ReserveBuffer( Pixel::RGBA8888, 100, 100, 100, 100 ); @@ -1076,10 +1073,13 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void) TestGlAbstraction& gl = application.GetGlAbstraction(); TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); + TraceCallStack& drawTrace = gl.GetDrawTrace(); + drawTrace.Enable(true); + DummyControl actor = DummyControl::New(); TestVisualRender( application, actor, visual, 1u, - ImageDimensions(), - Integration::ResourcePointer(bitmap) ); + ImageDimensions(), + Integration::ResourcePointer(bitmap) ); DALI_TEST_EQUALS( textureTrace.FindMethod("BindTexture"), true, TEST_LOCATION ); @@ -1119,11 +1119,13 @@ int UtcDaliVisualFactoryGetSvgVisual(void) TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize( 200.f, 200.f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2(200.f, 200.f) ); - visual.SetOnStage( actor ); + application.SendNotification(); application.Render(); @@ -1161,9 +1163,11 @@ int UtcDaliVisualFactoryGetSvgVisualLarge(void) TraceCallStack& textureTrace = gl.GetTextureTrace(); textureTrace.Enable(true); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); Stage::GetCurrent().Add( actor ); - visual.SetOnStage( actor ); + application.SendNotification(); application.Render(); @@ -1200,11 +1204,12 @@ void MeshVisualLoadsCorrectlyTest( Property::Map& propertyMap, ToolkitTestApplic DALI_TEST_CHECK( visual ); //Create an actor on stage to house the visual. - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize( 200.f, 200.f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2( 200.f, 200.f ) ); - visual.SetOnStage( actor ); //Ensure set on stage. DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION ); @@ -1230,7 +1235,7 @@ void MeshVisualLoadsCorrectlyTest( Property::Map& propertyMap, ToolkitTestApplic DALI_TEST_EQUALS( actualScaleMatrix, testScaleMatrix, Math::MACHINE_EPSILON_100, TEST_LOCATION ); //Finish by setting off stage, and ensuring this was successful. - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); } @@ -1246,11 +1251,12 @@ void MeshVisualDoesNotLoadCorrectlyTest( Property::Map& propertyMap, ToolkitTest DALI_TEST_CHECK( visual ); //Create an actor on stage to house the visual. - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize( 200.f, 200.f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2( 200.f, 200.f ) ); - visual.SetOnStage( actor ); //Ensure set on stage. DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION ); @@ -1272,7 +1278,7 @@ void MeshVisualDoesNotLoadCorrectlyTest( Property::Map& propertyMap, ToolkitTest DALI_TEST_CHECK( !application.GetGlAbstraction().GetUniformValue( "uObjectMatrix", scaleMatrix ) ); //Finish by setting off stage, and ensuring this was successful. - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); } @@ -1526,11 +1532,13 @@ void TestPrimitiveVisualWithProperties( Property::Map& propertyMap, ToolkitTestA DALI_TEST_CHECK( visual ); //Create an actor on stage to house the visual. - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); + actor.SetSize( 200.f, 200.f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2( 200.f, 200.f ) ); - visual.SetOnStage( actor ); //Ensure set on stage. DALI_TEST_EQUALS( actor.GetRendererCount(), 1u, TEST_LOCATION ); @@ -1548,7 +1556,7 @@ void TestPrimitiveVisualWithProperties( Property::Map& propertyMap, ToolkitTestA DALI_TEST_EQUALS( actualScaleMatrix, testScaleMatrix, Math::MACHINE_EPSILON_100, TEST_LOCATION ); //Finish by setting off stage, and ensuring this was successful. - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); } @@ -1945,21 +1953,22 @@ int UtcDaliVisualFactoryGetBatchImageVisual1(void) Visual::Base visual = factory.CreateVisual( propertyMap ); DALI_TEST_CHECK( visual ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize( 200.0f, 200.0f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2( 200.0f, 200.0f ) ); // Test SetOnStage(). - visual.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); application.SendNotification(); application.Render(); // Test SetOffStage(). - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; @@ -1993,21 +2002,22 @@ int UtcDaliVisualFactoryGetBatchImageVisual2(void) DALI_TEST_CHECK( value ); DALI_TEST_EQUALS( value->Get(), (int)Visual::IMAGE, TEST_LOCATION ); - Actor actor = Actor::New(); + DummyControl actor = DummyControl::New(); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( Control::CONTROL_PROPERTY_END_INDEX + 1, visual ); actor.SetSize( 200.0f, 200.0f ); Stage::GetCurrent().Add( actor ); visual.SetSize( Vector2( 200.0f, 200.0f ) ); // Test SetOnStage(). - visual.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); application.SendNotification(); application.Render(); // Test SetOffStage(). - visual.SetOffStage( actor ); + actor.Unparent(); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); END_TEST; diff --git a/dali-toolkit/devel-api/visual-factory/visual-base.cpp b/dali-toolkit/devel-api/visual-factory/visual-base.cpp index 7a4821b..f2f2f8c 100644 --- a/dali-toolkit/devel-api/visual-factory/visual-base.cpp +++ b/dali-toolkit/devel-api/visual-factory/visual-base.cpp @@ -91,21 +91,11 @@ float Visual::Base::GetDepthIndex() const return GetImplementation( *this ).GetDepthIndex(); } -void Visual::Base::SetOnStage( Actor& actor ) -{ - GetImplementation( *this ).SetOnStage( actor ); -} - -void Visual::Base::SetOffStage( Actor& actor ) -{ - GetImplementation( *this ).SetOffStage( actor ); -} - void Visual::Base::RemoveAndReset( Actor& actor ) { if( actor && *this ) { - SetOffStage( actor ); + GetImplementation(*this).SetOffStage( actor ); } Reset(); } diff --git a/dali-toolkit/devel-api/visual-factory/visual-base.h b/dali-toolkit/devel-api/visual-factory/visual-base.h index 49e8cf0..4196276 100644 --- a/dali-toolkit/devel-api/visual-factory/visual-base.h +++ b/dali-toolkit/devel-api/visual-factory/visual-base.h @@ -177,25 +177,6 @@ public: float GetDepthIndex() const; /** - * @brief Visual needs to know when the control is put on to the stage to add the renderer. - * - * This function should be called when the control is put on to the stage. - * - * @param[in] actor The actor using this visual. - * @post SetOffStage should be called with the same actor when the control is put off stage otherwise memory will be leaked - */ - void SetOnStage( Actor& actor ); - - /** - * @brief Visual needs to know when the control is removed from the stage to remove the renderer. - * - * This function should be called when the control is removed from the stage - * - * @param[in] actor The actor using this visual. - */ - void SetOffStage( Actor& actor ); - - /** * @brief Remove the renderer from the actor and reset the visual self. * * This function can be called with an empty handle. If the visual is empty, this is a no-op. diff --git a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp index b53d029..44bc39b 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -67,6 +68,10 @@ const float ARBITRARY_FIELD_OF_VIEW = Math::PI / 4.0f; const Vector4 EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR( 1.0f, 1.0f, 1.0f, 0.0 ); const bool EFFECTS_VIEW_REFRESH_ON_DEMAND(false); +// Visuals are not stylable or public +const Property::Index CHILD_VISUAL( Toolkit::EffectsView::ANIMATABLE_PROPERTY_START_INDEX - 1); +const Property::Index POST_FILTER_VISUAL( CHILD_VISUAL-1 ); + #define DALI_COMPOSE_SHADER(STR) #STR const char* EFFECTS_VIEW_VERTEX_SOURCE = DALI_COMPOSE_SHADER( @@ -188,6 +193,8 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) FrameBufferImage dummyImage = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); Internal::InitializeVisual( self, mVisualPostFilter, dummyImage ); + RegisterVisual( POST_FILTER_VISUAL, mVisualPostFilter ); + Property::Map customShader; customShader[ Toolkit::Visual::Shader::Property::VERTEX_SHADER ] = EFFECTS_VIEW_VERTEX_SOURCE; customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = EFFECTS_VIEW_FRAGMENT_SOURCE; @@ -304,16 +311,6 @@ void EffectsView::OnStageConnection( int depth ) Control::OnStageConnection( depth ); Enable(); - - Actor self = Self(); - if( mVisualPostFilter ) - { - mVisualPostFilter.SetOnStage( self ); - } - if( mVisualForChildren ) - { - mVisualForChildren.SetOnStage( self ); - } } void EffectsView::OnStageDisconnection() @@ -326,16 +323,6 @@ void EffectsView::OnStageDisconnection() mFilters[i]->Disable(); } - Actor self = Self(); - if( mVisualPostFilter ) - { - mVisualPostFilter.SetOffStage( self ); - } - if( mVisualForChildren ) - { - mVisualForChildren.SetOffStage( self ); - } - Control::OnStageDisconnection(); } @@ -440,6 +427,7 @@ void EffectsView::AllocateResources() mImageForChildren = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); Internal::InitializeVisual( self, mVisualForChildren, mImageForChildren ); + RegisterVisual( CHILD_VISUAL, mVisualForChildren ); mVisualForChildren.SetDepthIndex( DepthIndex::CONTENT+1 ); mImagePostFilter = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat ); diff --git a/dali-toolkit/internal/controls/effects-view/effects-view-impl.h b/dali-toolkit/internal/controls/effects-view/effects-view-impl.h index 8bf498e..9a5f6a2 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.h +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.h @@ -275,4 +275,3 @@ inline const Toolkit::Internal::EffectsView& GetImpl( const Toolkit::EffectsView } // namespace Dali #endif // __DALI_TOOLKIT_INTERNAL_EFFECTS_VIEW_H__ - diff --git a/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp b/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp index 2a8cc3f..84af28f 100644 --- a/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp +++ b/dali-toolkit/internal/controls/magnifier/magnifier-impl.cpp @@ -31,6 +31,7 @@ // INTERNAL INCLUDES #include #include +#include #include namespace Dali @@ -271,7 +272,7 @@ void Magnifier::SetFrameVisibility(bool visible) map[ Toolkit::BorderVisual::Property::COLOR ] = Color::WHITE; map[ Toolkit::BorderVisual::Property::SIZE ] = IMAGE_BORDER_INDENT; Toolkit::Visual::Base borderVisual = visualFactory.CreateVisual( map ); - borderVisual.SetOnStage( mFrame ); + Toolkit::GetImplementation(borderVisual).SetOnStage( mFrame ); Constraint constraint = Constraint::New( mFrame, Actor::Property::POSITION, EqualToConstraint() ); constraint.AddSource( ParentSource( Actor::Property::WORLD_POSITION ) ); diff --git a/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp b/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp index c7c23f8..305db7d 100644 --- a/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp +++ b/dali-toolkit/internal/controls/super-blur-view/super-blur-view-impl.cpp @@ -171,13 +171,12 @@ void SuperBlurView::SetImage(Image inputImage) mInputImage = inputImage; Actor self( Self() ); - Internal::InitializeVisual( self, mVisuals[0], mInputImage ); + + mVisuals[0].RemoveAndReset( self ); + mVisuals[0] = Toolkit::VisualFactory::Get().CreateVisual( mInputImage ); + RegisterVisual( 0, mVisuals[0] ); mVisuals[0].SetDepthIndex(0); SetShaderEffect( mVisuals[0] ); - if( self.OnStage() ) - { - mVisuals[0].SetOnStage( self ); - } BlurImage( 0, inputImage); for(unsigned int i=1; i(i); mBlurredImage[i-1] = FrameBufferImage::New( mTargetSize.width/std::pow(2.f,exponent) , mTargetSize.height/std::pow(2.f,exponent), GAUSSIAN_BLUR_RENDER_TARGET_PIXEL_FORMAT ); - Internal::InitializeVisual( self, mVisuals[i], mBlurredImage[i - 1] ); - mVisuals[ i ].SetDepthIndex( i ); - SetShaderEffect( mVisuals[ i ] ); + + mVisuals[i].RemoveAndReset( self ); + mVisuals[i] = Toolkit::VisualFactory::Get().CreateVisual( mBlurredImage[i - 1] ); + RegisterVisual( i, mVisuals[i] ); + mVisuals[i].SetDepthIndex( i ); + SetShaderEffect( mVisuals[i] ); } if( mInputImage ) { SetImage( mInputImage ); } - - if( self.OnStage() ) - { - for( unsigned int i = 1; i <= mBlurLevels; i++ ) - { - mVisuals[i].SetOnStage( self ); - } - } } } void SuperBlurView::OnStageConnection( int depth ) { + // Chaining up first ensures visuals have SetOnStage called to create their renderers Control::OnStageConnection( depth ); if( mTargetSize == Vector2::ZERO ) @@ -312,17 +307,8 @@ void SuperBlurView::OnStageConnection( int depth ) } Actor self = Self(); - if( mVisuals[0] ) - { - mVisuals[0].SetOnStage( self ); - } for(unsigned int i=1; i<=mBlurLevels;i++) { - if( mVisuals[i] ) - { - mVisuals[i].SetOnStage( self ); - } - Renderer renderer = self.GetRendererAt( i ); Property::Index index = renderer.RegisterProperty( ALPHA_UNIFORM_NAME, 0.f ); Constraint constraint = Constraint::New( renderer, index, ActorOpacityConstraint(mBlurLevels, i-1) ); @@ -333,17 +319,6 @@ void SuperBlurView::OnStageConnection( int depth ) void SuperBlurView::OnStageDisconnection( ) { - if( mTargetSize == Vector2::ZERO ) - { - return; - } - - Actor self = Self(); - for(unsigned int i=0; ivisual && self.OnStage() ) { - (*iter)->visual.SetOffStage( self ); + Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); } (*iter)->visual = visual; visualReplaced = true; @@ -773,7 +773,7 @@ void Control::RegisterVisual( Property::Index index, Toolkit::Visual::Base& visu if( visual && self.OnStage() && enabled ) { - visual.SetOnStage( self ); + Toolkit::GetImplementation(visual).SetOnStage( self ); } } @@ -814,11 +814,11 @@ void Control::EnableVisual( Property::Index index, bool enable ) if ( enable ) { - (*iter)->visual.SetOnStage( parentActor ); + Toolkit::GetImplementation((*iter)->visual).SetOnStage( parentActor ); } else { - (*iter)->visual.SetOffStage( parentActor ); // No need to call if control not staged. + Toolkit::GetImplementation((*iter)->visual).SetOffStage( parentActor ); // No need to call if control not staged. } } } @@ -1091,7 +1091,7 @@ void Control::OnStageConnection( int depth ) if( (*iter)->visual && (*iter)->enabled ) { Actor self( Self() ); - (*iter)->visual.SetOnStage( self ); + Toolkit::GetImplementation((*iter)->visual).SetOnStage( self ); } } } @@ -1104,7 +1104,7 @@ void Control::OnStageDisconnection() if( (*iter)->visual ) { Actor self( Self() ); - (*iter)->visual.SetOffStage( self ); + Toolkit::GetImplementation((*iter)->visual).SetOffStage( self ); } } } -- 2.7.4