Skip to content

Commit

Permalink
restore openmp parallelization in display.cpp
Browse files Browse the repository at this point in the history
This was removed in 4a99787
  • Loading branch information
cbeck88 committed Jun 23, 2014
1 parent 4bb55f4 commit 34a7454
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions src/display.cpp
Expand Up @@ -3082,22 +3082,50 @@ void display::invalidate_animations()
}
}

#ifndef _OPENMP
BOOST_FOREACH(const unit & u, dc_->units()) {
u.anim_comp().refresh();
}
BOOST_FOREACH(const unit* u, *fake_unit_man_) {
u->anim_comp().refresh();
}
#else
std::vector<const unit *> open_mp_list;
BOOST_FOREACH(const unit & u, dc_->units()) {
open_mp_list.push_back(&u);
}
BOOST_FOREACH(const unit* u, *fake_unit_man_) {
open_mp_list.push_back(u);
}

#pragma omp parallel shared(chunks)
{
#pragma omp for
for(size_t i = 0; i < open_mp_list.size(); ++i)
open_mp_list[i]->anim_comp().refresh();
}
}
#endif


bool new_inval;
do {
new_inval = false;
#ifndef _OPENMP
BOOST_FOREACH(const unit & u, dc_->units()) {
new_inval |= u.anim_comp().invalidate(*this);
}
BOOST_FOREACH(const unit* u, *fake_unit_man_) {
new_inval |= u->anim_comp().invalidate(*this);
}
#else
#pragma omp parallel shared(chunks)
{
#pragma omp for
for(size_t i = 0; i < open_mp_list.size(); ++i)
new_inval |= open_mp_list[i]->anim_comp().invalidate(*this);
}
#endif
}while(new_inval);
}

Expand Down

0 comments on commit 34a7454

Please sign in to comment.