/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
// INTERNAL INCLUDES
#include <dali/integration-api/debug.h>
#include <dali/internal/event/actors/layer-impl.h>
-#include <dali/internal/event/common/stage-impl.h>
#include <dali/internal/update/manager/update-manager.h>
namespace Dali
namespace Internal
{
-
-
namespace // unnamed namespace
{
typedef std::vector<Layer*> LayerContainer;
-typedef LayerContainer::iterator LayerIter;
-typedef LayerContainer::reverse_iterator ReverseLayerIter;
+using LayerIter = LayerContainer::iterator;
+using ReverseLayerIter = LayerContainer::reverse_iterator;
/**
* A private helper template to return an iterator to the layer passed in.
} // unnamed namespace
-LayerList* LayerList::New( Stage& stage, bool systemLevel )
+LayerList* LayerList::New( SceneGraph::UpdateManager& updateManager )
{
- return new LayerList( stage, systemLevel );
+ return new LayerList( updateManager );
}
LayerList::~LayerList()
{
}
-unsigned int LayerList::GetLayerCount() const
+uint32_t LayerList::GetLayerCount() const
{
- return mLayers.size();
+ return static_cast<uint32_t>( mLayers.size() ); // // only 4,294,967,295 layers supported
}
-Layer* LayerList::GetLayer( unsigned int depth ) const
+Layer* LayerList::GetLayer( uint32_t depth ) const
{
DALI_ASSERT_ALWAYS( depth < mLayers.size() );
return mLayers[ depth ];
}
-unsigned int LayerList::GetDepth( const Layer* layer ) const
+uint32_t LayerList::GetDepth( const Layer* layer ) const
{
- for( unsigned int count = 0; count < mLayers.size(); ++count )
+ for( uint32_t count = 0; count < mLayers.size(); ++count )
{
if( layer == mLayers[ count ] )
{
}
}
-LayerList::LayerList( Stage& stage, bool systemLevel )
-: mStage( stage ),
- mIsSystemLevel( systemLevel )
+LayerList::LayerList( SceneGraph::UpdateManager& updateManager )
+: mUpdateManager( updateManager ),
+ mRoot( NULL )
{
}
// Set the layers (possibly) new depth
for (LayerIter iter = mLayers.begin(); iter != mLayers.end(); ++iter)
{
- SceneGraph::Layer* layerPtr = const_cast< SceneGraph::Layer* >( &( (*iter)->GetSceneLayerOnStage() ) );
+ SceneGraph::Layer* layerPtr = const_cast< SceneGraph::Layer* >( &( (*iter)->GetSceneGraphLayer() ) );
layers.push_back( layerPtr );
}
// Layers are being used in a separate thread; queue a message to set order
- SetLayerDepthsMessage( mStage.GetUpdateManager(), layers, mIsSystemLevel );
+ SetLayerDepthsMessage( mUpdateManager, layers, &( mRoot->GetSceneGraphLayer() ) );
+}
+
+void LayerList::SetRootLayer(Layer* rootLayer)
+{
+ mRoot = rootLayer;
+
+ SetLayerDepths();
}
} // namespace Internal