X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fevent%2Factors%2Flayer-impl.cpp;h=11f835a12cc4fe5fc4d1f597794df7e5042c7f0f;hb=e08e2992259823c5f9832ad959ffa510b0445a6c;hp=e3c0bea717c9fad3bb26bfe4fa52d5c52bb7c0e0;hpb=2331505c12081d7fae9b6a9a5d744670ec166b32;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/internal/event/actors/layer-impl.cpp b/dali/internal/event/actors/layer-impl.cpp index e3c0bea..11f835a 100644 --- a/dali/internal/event/actors/layer-impl.cpp +++ b/dali/internal/event/actors/layer-impl.cpp @@ -39,7 +39,7 @@ namespace typedef Layer::Behavior Behavior; DALI_ENUM_TO_STRING_TABLE_BEGIN( BEHAVIOR ) -DALI_ENUM_TO_STRING_WITH_SCOPE( Layer, LAYER_2D ) +DALI_ENUM_TO_STRING_WITH_SCOPE( Layer, LAYER_UI ) DALI_ENUM_TO_STRING_WITH_SCOPE( Layer, LAYER_3D ) DALI_ENUM_TO_STRING_TABLE_END( BEHAVIOR ) @@ -84,7 +84,11 @@ TypeAction a4( mType, ACTION_LOWER_TO_BOTTOM, &Layer::DoAction ); LayerPtr Layer::New() { - LayerPtr layer( new Layer( Actor::LAYER ) ); + // create node, nodes are owned by UpdateManager + SceneGraph::Layer* layerNode = SceneGraph::Layer::New(); + OwnerPointer< SceneGraph::Node > transferOwnership( layerNode ); + AddNodeMessage( Stage::GetCurrent()->GetUpdateManager(), transferOwnership ); + LayerPtr layer( new Layer( Actor::LAYER, *layerNode ) ); // Second-phase construction layer->Initialize(); @@ -94,14 +98,13 @@ LayerPtr Layer::New() LayerPtr Layer::NewRoot( LayerList& layerList, UpdateManager& manager ) { - LayerPtr root( new Layer( Actor::ROOT_LAYER ) ); - - // Second-phase construction, keep a raw pointer to the layer node. - SceneGraph::Layer* rootLayer = static_cast( root->CreateNode() ); - root->mNode = rootLayer; + // create node, nodes are owned by UpdateManager + SceneGraph::Layer* rootLayer = SceneGraph::Layer::New(); OwnerPointer< SceneGraph::Layer > transferOwnership( rootLayer ); InstallRootMessage( manager, transferOwnership ); + LayerPtr root( new Layer( Actor::ROOT_LAYER, *rootLayer ) ); + // root actor is immediately considered to be on-stage root->mIsOnStage = true; @@ -116,12 +119,12 @@ LayerPtr Layer::NewRoot( LayerList& layerList, UpdateManager& manager ) return root; } -Layer::Layer( Actor::DerivedType type ) -: Actor( type ), +Layer::Layer( Actor::DerivedType type, const SceneGraph::Layer& layer ) +: Actor( type, layer ), mLayerList( NULL ), mClippingBox( 0, 0, 0, 0 ), mSortFunction( Layer::ZValue ), - mBehavior( Dali::Layer::LAYER_2D ), + mBehavior( Dali::Layer::LAYER_UI ), mIsClipping( false ), mDepthTestDisabled( true ), mTouchConsumed( false ), @@ -226,8 +229,8 @@ void Layer::SetBehavior( Dali::Layer::Behavior behavior ) // Notify update side object. SetBehaviorMessage( GetEventThreadServices(), GetSceneLayerOnStage(), behavior ); - // By default, disable depth test for LAYER_2D, and enable for LAYER_3D. - SetDepthTestDisabled( mBehavior == Dali::Layer::LAYER_2D ); + // By default, disable depth test for LAYER_UI, and enable for LAYER_3D. + SetDepthTestDisabled( mBehavior == Dali::Layer::LAYER_UI ); } void Layer::SetClipping(bool enabled) @@ -313,11 +316,6 @@ bool Layer::IsHoverConsumed() const return mHoverConsumed; } -SceneGraph::Node* Layer::CreateNode() const -{ - return SceneGraph::Layer::New( mId ); -} - void Layer::OnStageConnectionInternal() { if ( !mIsRoot ) @@ -350,8 +348,7 @@ void Layer::OnStageDisconnectionInternal() const SceneGraph::Layer& Layer::GetSceneLayerOnStage() const { - DALI_ASSERT_DEBUG( mNode != NULL ); - return dynamic_cast< const SceneGraph::Layer& >( *mNode ); + return static_cast< const SceneGraph::Layer& >( GetNode() ); // we know our node is a layer node } void Layer::SetDefaultProperty( Property::Index index, const Property::Value& propertyValue ) @@ -377,7 +374,7 @@ void Layer::SetDefaultProperty( Property::Index index, const Property::Value& pr } case Dali::Layer::Property::BEHAVIOR: { - Behavior behavior(Dali::Layer::LAYER_2D); + Behavior behavior(Dali::Layer::LAYER_UI); if( Scripting::GetEnumeration< Behavior >( propertyValue.Get< std::string >().c_str(), BEHAVIOR_TABLE, BEHAVIOR_TABLE_COUNT, behavior ) ) { SetBehavior( behavior );