common scene: code refactoring.

keep it clean and less LOC.
This commit is contained in:
Hermet Park 2021-06-22 11:46:42 +09:00 committed by Hermet Park
parent b791924983
commit 39bf94e506
2 changed files with 6 additions and 12 deletions

View file

@ -67,4 +67,4 @@ Result Scene::clear(bool free) noexcept
pImpl->clear(free);
return Result::Success;
}
}

View file

@ -172,19 +172,13 @@ struct Scene::Impl
void clear(bool free)
{
//Clear render target before drawing
if (renderer && renderer->clear()) {
for (auto paint = paints.data; paint < (paints.data + paints.count); ++paint) {
(*paint)->pImpl->dispose(*renderer);
}
auto dispose = renderer ? true : false;
for (auto paint = paints.data; paint < (paints.data + paints.count); ++paint) {
if (dispose) (*paint)->pImpl->dispose(*renderer);
if (free) delete(*paint);
renderer = nullptr;
}
//free paints
if (free) {
for (auto paint = paints.data; paint < (paints.data + paints.count); ++paint) {
delete(*paint);
}
}
paints.clear();
}
};