X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fwireframe%2Fwireframe-visual.cpp;h=227a780c64e76a240497f3af05e6d7f94c070aae;hb=7c4829108a1196e07f0eb93207ea234e3741642b;hp=52a7710dcc29eea4f715e4c3439d82aa7eb598f1;hpb=9217ec0c1d483607ed6c8f08a1d9c238657ba5d6;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp index 52a7710..227a780 100644 --- a/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp +++ b/dali-toolkit/internal/visuals/wireframe/wireframe-visual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,7 +20,7 @@ #include "wireframe-visual.h" // INTERNAL INCLUDES -#include +#include #include #include #include @@ -67,23 +67,47 @@ void main()\n ); const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(\n -uniform lowp vec4 uColor;\n + uniform lowp vec4 uColor;\n + uniform lowp vec3 mixColor;\n \n void main()\n {\n - gl_FragColor = uColor;\n + gl_FragColor = uColor * vec4( mixColor, 1.0 );\n }\n ); } -WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache ) +WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, const Property::Map& properties ) { - return new WireframeVisual( factoryCache ); + Visual::BasePtr emtptyVisual; + + return New(factoryCache, emtptyVisual, properties); +} + +WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual ) +{ + return new WireframeVisual( factoryCache, actualVisual ); +} + +WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual, const Property::Map& properties ) +{ + WireframeVisualPtr wireframeVisual( new WireframeVisual( factoryCache, actualVisual ) ); + + // Instead of calling SetProperties, looking for the only valid property 'transform' + Property::Value* transformValue = properties.Find( Toolkit::Visual::Property::TRANSFORM, TRANSFORM ); + Property::Map transformMap; + if( transformValue && transformValue->Get( transformMap ) ) + { + wireframeVisual->SetTransformAndSize( transformMap, Vector2::ZERO ); + } + + return wireframeVisual; } -WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache ) -: Visual::Base( factoryCache ) +WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual ) +: Visual::Base( factoryCache, Visual::FittingMode::FILL ), + mActualVisual( actualVisual ) { } @@ -91,9 +115,57 @@ WireframeVisual::~WireframeVisual() { } +float WireframeVisual::GetHeightForWidth( float width ) +{ + if( mActualVisual ) + { + return mActualVisual->GetHeightForWidth( width ); + } + else + { + return Visual::Base::GetHeightForWidth( width ); + } +} + +void WireframeVisual::GetNaturalSize( Vector2& naturalSize ) +{ + if( mActualVisual ) + { + mActualVisual->GetNaturalSize( naturalSize ); + } + else + { + Visual::Base::GetNaturalSize( naturalSize ); + } +} + +void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const +{ + if( mActualVisual ) + { + mActualVisual->CreatePropertyMap( map ); + } + else + { + map.Clear(); + map.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::WIREFRAME ); + } +} + +void WireframeVisual::DoCreateInstancePropertyMap( Property::Map& map ) const +{ + // Do nothing +} + void WireframeVisual::DoSetProperties( const Property::Map& propertyMap ) { - // no properties supported at the moment + Property::Value* mixValue = propertyMap.Find( Toolkit::Visual::Property::MIX_COLOR, MIX_COLOR ); + if( mixValue ) + { + Vector4 mixColor; + mixValue->Get( mixColor ); + SetMixColor( mixColor ); + } } void WireframeVisual::DoSetOnStage( Actor& actor ) @@ -101,12 +173,9 @@ void WireframeVisual::DoSetOnStage( Actor& actor ) InitializeRenderer(); actor.AddRenderer( mImpl->mRenderer ); -} -void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const -{ - map.Clear(); - map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::Visual::WIREFRAME ); + // Wireframe generated and ready to display + ResourceReady( Toolkit::Visual::ResourceStatus::READY ); } void WireframeVisual::InitializeRenderer() @@ -171,6 +240,16 @@ void WireframeVisual::OnSetTransform() } } +Visual::Base& WireframeVisual::GetVisualObject() +{ + if( mActualVisual ) + { + return *mActualVisual.Get(); + } + + return *this; +} + } // namespace Internal } // namespace Toolkit