From b4350fdb64e7c6513f49e451b56c08adbe83df92 Mon Sep 17 00:00:00 2001 From: Agnelo Vaz Date: Fri, 13 Jan 2017 13:40:43 +0000 Subject: [PATCH] TextVisual shows text after being Disabled and Enabled Disabling TextVisual then enabling it ( Set on and off stage ) did not show the Visual. Textures were not set to renderer as considered not required Change-Id: Iedf5f91afce6e6a1fa3f4c784682bbcab3787d9c --- .../src/dali-toolkit/utc-Dali-Visual.cpp | 51 ++++++++++++++++++++++ dali-toolkit/internal/visuals/text/text-visual.cpp | 8 ++-- dali-toolkit/internal/visuals/text/text-visual.h | 3 +- 3 files changed, 57 insertions(+), 5 deletions(-) diff --git a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp index 6d88a51..909c656 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-Visual.cpp @@ -2073,6 +2073,57 @@ int UtcDaliVisualTextVisualRender(void) END_TEST; } +int UtcDaliVisualTextVisualDisableEnable(void) +{ + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualTextVisualDisableEnable Ensure Text visible can be re-enabled" ); + + VisualFactory factory = VisualFactory::Get(); + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, DevelVisual::TEXT ); + propertyMap.Insert( "mixColor", Color::WHITE ); + propertyMap.Insert( "renderingBackend", static_cast( Toolkit::Text::DEFAULT_RENDERING_BACKEND ) ); + propertyMap.Insert( "enableMarkup", false ); + propertyMap.Insert( "text", "Hello world" ); + propertyMap.Insert( "fontFamily", "TizenSans" ); + + Property::Map fontStyleMapSet; + fontStyleMapSet.Insert( "weight", "bold" ); + propertyMap.Insert( "fontStyle", fontStyleMapSet ); + + propertyMap.Insert( "pointSize", 12.f ); + propertyMap.Insert( "multiLine", true ); + propertyMap.Insert( "horizontalAlignment", "CENTER" ); + propertyMap.Insert( "verticalAlignment", "CENTER" ); + propertyMap.Insert( "textColor", Color::RED ); + Visual::Base textVisual = factory.CreateVisual( propertyMap ); + textVisual.SetDepthIndex( 1.f ); + + DummyControl dummyControl = DummyControl::New(true); + Impl::DummyControl& dummyImpl = static_cast(dummyControl.GetImplementation()); + dummyImpl.RegisterVisual( DummyControl::Property::TEST_VISUAL, textVisual ); + DALI_TEST_EQUALS( dummyControl.GetRendererCount(), 0, TEST_LOCATION ); + + dummyControl.SetSize(200.f, 200.f); + dummyControl.SetParentOrigin( ParentOrigin::CENTER ); + + Stage::GetCurrent().Add( dummyControl ); + application.SendNotification(); + application.Render(); + + DALI_TEST_EQUALS( dummyControl.GetRendererCount(), 1, TEST_LOCATION ); + + dummyImpl.EnableVisual( DummyControl::Property::TEST_VISUAL, false ); + + DALI_TEST_EQUALS( dummyControl.GetRendererCount(), 0, TEST_LOCATION ); + + dummyImpl.EnableVisual( DummyControl::Property::TEST_VISUAL, true ); + + DALI_TEST_EQUALS( dummyControl.GetRendererCount(), 1, TEST_LOCATION ); + + END_TEST; +} + int UtcDaliVisualPremultipliedAlpha(void) { ToolkitTestApplication application; diff --git a/dali-toolkit/internal/visuals/text/text-visual.cpp b/dali-toolkit/internal/visuals/text/text-visual.cpp index abca281..9e91e3b 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.cpp +++ b/dali-toolkit/internal/visuals/text/text-visual.cpp @@ -282,7 +282,7 @@ void TextVisual::DoSetOnStage( Actor& actor ) mImpl->mRenderer = Renderer::New( geometry, shader ); mImpl->mRenderer.SetProperty( Dali::Renderer::Property::DEPTH_INDEX, Toolkit::DepthIndex::TEXT ); - UpdateRenderer(); + UpdateRenderer( true ); // Renderer needs textures and to be added to control } void TextVisual::DoSetOffStage( Actor& actor ) @@ -304,7 +304,7 @@ void TextVisual::DoSetOffStage( Actor& actor ) void TextVisual::OnSetTransform() { - UpdateRenderer(); + UpdateRenderer( false ); } void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Property::Value& propertyValue ) @@ -382,7 +382,7 @@ void TextVisual::DoSetProperty( Dali::Property::Index index, const Dali::Propert } } -void TextVisual::UpdateRenderer() +void TextVisual::UpdateRenderer( bool initializeRendererAndTexture ) { Actor control = mControl.GetHandle(); if( !control ) @@ -418,7 +418,7 @@ void TextVisual::UpdateRenderer() const Text::Controller::UpdateTextType updateTextType = mController->Relayout( relayoutSize ); - if( Text::Controller::NONE_UPDATED != ( Text::Controller::MODEL_UPDATED & updateTextType ) ) + if( Text::Controller::NONE_UPDATED != ( Text::Controller::MODEL_UPDATED & updateTextType ) || initializeRendererAndTexture ) { // Removes the texture set. RemoveTextureSet(); diff --git a/dali-toolkit/internal/visuals/text/text-visual.h b/dali-toolkit/internal/visuals/text/text-visual.h index 5ce01ed..ebeb867 100644 --- a/dali-toolkit/internal/visuals/text/text-visual.h +++ b/dali-toolkit/internal/visuals/text/text-visual.h @@ -141,8 +141,9 @@ private: /** * @brief Updates the text's renderer. + * @param[in] initializeRendererAndTexture Set flag to true to initialize textures and add renderer to control. */ - void UpdateRenderer(); + void UpdateRenderer( bool initializeRendererAndTexture ); /** * @brief Removes the texture set from the renderer. -- 2.7.4