58 if (!mIsInitialise)
return;
71 mIsInitialise =
false;
74 void LayerManager::clear()
76 for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
100 MYGUI_LOG(Warning,
"Attribute 'name' not found (file : " << _file <<
")");
104 for (VectorLayer::iterator iter=layers.begin(); iter!=layers.end(); ++iter)
106 MYGUI_ASSERT((*iter)->getName() != name,
"Layer '" << name <<
"' already exist (file : " << _file <<
")");
110 if (type.empty() && _version <=
Version(1, 0))
113 type = overlapped ?
"OverlappedLayer" :
"SharedLayer";
117 MYGUI_ASSERT(
object !=
nullptr,
"factory is '" << type <<
"' not found");
122 layers.push_back(item);
129 void LayerManager::_unlinkWidget(
Widget* _widget)
137 MYGUI_ASSERT(
nullptr != _item,
"pointer must be valid");
144 for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
146 if (_name == (*iter)->getName())
154 MYGUI_LOG(Error,
"Layer '" << _name <<
"' is not found");
160 MYGUI_ASSERT(
nullptr != _item,
"pointer must be valid");
166 MYGUI_ASSERT(
nullptr != _item,
"pointer must be valid");
172 return getByName(_name,
false) !=
nullptr;
175 void LayerManager::merge(VectorLayer& _layers)
177 for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
179 if ((*iter) ==
nullptr)
continue;
181 std::string name = (*iter)->
getName();
182 for (VectorLayer::iterator iter2=_layers.begin(); iter2!=_layers.end(); ++iter2)
184 if (name == (*iter2)->getName())
202 mLayerNodes = _layers;
205 void LayerManager::destroy(ILayer* _layer)
207 MYGUI_LOG(Info,
"destroy layer '" << _layer->getName() <<
"'");
212 VectorLayer::reverse_iterator iter = mLayerNodes.rbegin();
213 while (iter != mLayerNodes.rend())
216 if (item !=
nullptr)
return static_cast<Widget*
>(item);
224 for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
226 (*iter)->renderToTarget(_target, _update);
232 for (VectorLayer::const_iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
234 if (_name == (*iter)->getName())
237 MYGUI_ASSERT(!_throw,
"Layer '" << _name <<
"' not found");
243 static const char* spacer =
" ";
245 MYGUI_LOG(Info,
"---------- Statistic for layers start ----------" << spacer);
246 for (VectorLayer::iterator iter=mLayerNodes.begin(); iter!=mLayerNodes.end(); ++iter)
248 (*iter)->dumpStatisticToLog();
251 MYGUI_LOG(Info,
"---------- Statistic for layers end ----------" << spacer);