From: Adeel Kazmi Date: Mon, 8 Aug 2016 16:34:03 +0000 (+0100) Subject: Stop creating image visuals by default X-Git-Tag: dali_1.2.1~9^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=88b1c02f51c1f66e8c6f331006b55f7e6942a1a8 Stop creating image visuals by default Effects view and emboss filter create an image visual specifically and then set a custom shader. Change-Id: I20b4548b0ddda41bdf4f476b3a3a2fbaa83db677 --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp index 76d6aac..53eee06 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-VisualFactory.cpp @@ -880,13 +880,13 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void) //This should still load but display an error image ToolkitTestApplication application; - tet_infoline( "UtcDaliVisualFactoryGetNPatchVisualN: Request n-patch visual with an invalid Property::Map" ); + tet_infoline( "UtcDaliVisualFactoryGetNPatchVisualN: Request n-patch visual with an invalid URL" ); VisualFactory factory = VisualFactory::Get(); DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert( Visual::Property::TYPE, 111 ); + propertyMap.Insert( Visual::Property::TYPE, Visual::IMAGE ); propertyMap.Insert( ImageVisual::Property::URL, "ERROR.9.jpg" ); Visual::Base visual = factory.CreateVisual( propertyMap ); @@ -911,6 +911,26 @@ int UtcDaliVisualFactoryGetNPatchVisualN2(void) END_TEST; } +int UtcDaliVisualFactoryGetNPatchVisualN3(void) +{ + // Passing in an invalid visual type so we should not get a visual + + ToolkitTestApplication application; + tet_infoline( "UtcDaliVisualFactoryGetNPatchVisualN: Request n-patch visual with an invalid visual type" ); + + VisualFactory factory = VisualFactory::Get(); + DALI_TEST_CHECK( factory ); + + Property::Map propertyMap; + propertyMap.Insert( Visual::Property::TYPE, 111 ); + propertyMap.Insert( ImageVisual::Property::URL, "ERROR.9.jpg" ); + + Visual::Base visual = factory.CreateVisual( propertyMap ); + DALI_TEST_CHECK( !visual ); + + END_TEST; +} + int UtcDaliVisualFactoryGetSvgVisual(void) { ToolkitTestApplication application; 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 70dbd3f..ed94ff8 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp @@ -36,6 +36,7 @@ #include #include #include +#include namespace Dali { @@ -161,8 +162,6 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) RemoveFilters(); Actor self = Self(); - Property::Map visualMap; - visualMap.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE ); switch( type ) { @@ -185,11 +184,12 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) } } + Image dummyImage; // Dummy image, force creation of an image visual + InitializeVisual( self, mVisualPostFilter, dummyImage ); 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; - visualMap[ Toolkit::Visual::Property::SHADER ] = customShader; - InitializeVisual( self, mVisualPostFilter, visualMap ); + Toolkit::GetImplementation( mVisualPostFilter ).SetCustomShader( customShader ); mEffectType = type; } diff --git a/dali-toolkit/internal/filters/emboss-filter.cpp b/dali-toolkit/internal/filters/emboss-filter.cpp index c10d122..4bb7c30 100644 --- a/dali-toolkit/internal/filters/emboss-filter.cpp +++ b/dali-toolkit/internal/filters/emboss-filter.cpp @@ -30,6 +30,7 @@ // INTERNAL INCLUDES #include #include +#include namespace Dali { @@ -123,13 +124,16 @@ void EmbossFilter::Enable() mActorForComposite.SetColor( Color::BLACK ); customShader[ Toolkit::Visual::Shader::Property::FRAGMENT_SHADER ] = COMPOSITE_FRAGMENT_SOURCE; - visualMap[ Toolkit::Visual::Property::SHADER ] = customShader; - visualMap[ Toolkit::Visual::Property::TYPE ] = Toolkit::Visual::IMAGE; mRootActor.Add( mActorForComposite ); - InitializeVisual( mActorForComposite, mVisualForEmboss1, visualMap ); - InitializeVisual( mActorForComposite, mVisualForEmboss2, visualMap ); + Image dummyImage; // Dummy image, force creation of an image visual + + InitializeVisual( mActorForComposite, mVisualForEmboss1, dummyImage ); + Toolkit::GetImplementation( mVisualForEmboss1 ).SetCustomShader( customShader ); + + InitializeVisual( mActorForComposite, mVisualForEmboss2, dummyImage ); + Toolkit::GetImplementation( mVisualForEmboss2 ).SetCustomShader( customShader ); TextureSet textureSet1 = TextureSet::New(); TextureSetImage( textureSet1, 0, mImageForEmboss1 ); diff --git a/dali-toolkit/internal/visuals/visual-factory-impl.cpp b/dali-toolkit/internal/visuals/visual-factory-impl.cpp index 530feb9..df9cbb3 100644 --- a/dali-toolkit/internal/visuals/visual-factory-impl.cpp +++ b/dali-toolkit/internal/visuals/visual-factory-impl.cpp @@ -136,7 +136,6 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property break; } - default: // Default to Image type if unknown (check if there is a URL) case Toolkit::Visual::IMAGE: { Property::Value* imageURLValue = propertyMap.Find( Toolkit::ImageVisual::Property::URL, IMAGE_URL_NAME ); @@ -173,13 +172,6 @@ Toolkit::Visual::Base VisualFactory::CreateVisual( const Property::Map& property } } } - else if( propertyMap.Find( Toolkit::Visual::Property::SHADER, CUSTOM_SHADER ) ) - { - // Create Image Visual if it has a shader - // TODO: This is required because of EffectsView which should be fixed - CreateAtlasManager(); - visualPtr = new ImageVisual( *( mFactoryCache.Get() ), *( mAtlasManager.Get() ) ); - } break; }