-
Notifications
You must be signed in to change notification settings - Fork 235
Open
Description
//Slot::_onClear中的一段代码
std::vector<std::pair<void*, DisplayType>> disposeDisplayList;
for (const auto& pair : this->_displayList)
{
if (
pair.first != nullptr && pair.first != _rawDisplay && pair.first != _meshDisplay &&
std::find(disposeDisplayList.cbegin(), disposeDisplayList.cend(), pair) == disposeDisplayList.cend()
)
{
disposeDisplayList.push_back(pair);
}
}
for (const auto& pair : disposeDisplayList)
{
if (pair.second == DisplayType::Armature)
{
static_cast<Armature*>(pair.first)->returnToPool();
}
else
{
_disposeDisplay(pair.first, true);
}
}
if (_meshDisplay && _meshDisplay != _rawDisplay)
{
_disposeDisplay(_meshDisplay, false);
}
if (_rawDisplay) {
_disposeDisplay(_rawDisplay, false);
}
代码相比于5.0版本增加了这个参数,但是这个参数是否还未起作用呢?我看CCSlot中的方法实现并没有根据这个参数进行一些逻辑判断。如果我没猜错的话,这个修改的本意是将上面代码中pair.first != _rawDisplay && pair.first != _meshDisplay 去掉,并且CCSlot中根据isRelease去判断是否释放该display对象
Metadata
Metadata
Assignees
Labels
No labels