From: Seungho BAEK Date: Wed, 1 Apr 2020 05:14:29 +0000 (+0000) Subject: Merge "Do not set resources if there isn't mRenderer in nPatch-visual." into devel... X-Git-Tag: dali_1.5.5~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2bdf1d4dc313e09be9bec6655d34f90d7afede59;hp=d4443044bdbec1b22fd370fb1b1091089b15c541;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Merge "Do not set resources if there isn't mRenderer in nPatch-visual." into devel/tizen --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp index df2d7be..c7f4282 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp @@ -746,7 +746,7 @@ int UtcDaliVisualFactoryGetNPatchVisual2(void) int UtcDaliVisualFactoryGetNPatchVisual3(void) { ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetNPatchVisual2: Request n-patch visual with a Property::Map" ); + tet_infoline( "UtcDaliVisualFactoryGetNPatchVisual3: Request n-patch visual with a Property::Map" ); VisualFactory factory = VisualFactory::Get(); DALI_TEST_CHECK( factory ); @@ -943,6 +943,58 @@ int UtcDaliVisualFactoryGetNPatchVisual6(void) END_TEST; } +int UtcDaliVisualFactoryGetNPatchVisual7(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualFactoryGetNPatchVisual7: Add 9-patch visual on stage and instantly remove it." ); + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + // Get actual size of test image + ImageDimensions imageSize = Dali::GetClosestImageSize( TEST_9_PATCH_FILE_NAME ); + + Property::Map propertyMap; + propertyMap.Insert( Toolkit::Visual::Property::TYPE, Visual::N_PATCH ); + propertyMap.Insert( ImageVisual::Property::URL, TEST_9_PATCH_FILE_NAME ); + propertyMap.Insert( ImageVisual::Property::SYNCHRONOUS_LOADING, false ); + { + Visual::Base visual = factory.CreateVisual( propertyMap ); + DALI_TEST_CHECK( visual ); + + Vector2 naturalSize( 0.0f, 0.0f ); + visual.GetNaturalSize( naturalSize ); + DALI_TEST_EQUALS( naturalSize, Vector2( imageSize.GetWidth(), imageSize.GetHeight() ), TEST_LOCATION ); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + textureTrace.Enable(true); + + DummyControl actor = DummyControl::New(true); + + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, visual ); + + actor.SetSize( 200.f, 200.f ); + DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); + + Stage::GetCurrent().Add( actor ); + actor.Unparent(); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( Test::WaitForEventThreadTrigger(1 ), true, TEST_LOCATION ); + + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( actor.GetRendererCount(), 0u, TEST_LOCATION ); + } + + END_TEST; +} + int UtcDaliNPatchVisualAuxiliaryImage(void) { ToolkitTestApplication application; diff --git a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp index 4780153..c8b601a 100755 --- a/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp +++ b/dali-toolkit/internal/visuals/npatch/npatch-visual.cpp @@ -815,7 +815,7 @@ Geometry NPatchVisual::CreateBorderGeometry( Uint16Pair gridSize ) void NPatchVisual::SetResource() { const NPatchLoader::Data* data; - if( mLoader.GetNPatchData( mId, data ) ) + if( mImpl->mRenderer && mLoader.GetNPatchData( mId, data ) ) { Geometry geometry = CreateGeometry(); Shader shader = CreateShader();