NFC: remove a critical section, runs faster.

This commit is contained in:
phkahler 2020-08-15 18:58:27 -04:00
parent d974615d0e
commit 6894b0c9c3

View File

@ -624,16 +624,17 @@ SSurface SSurface::MakeCopyTrimAgainst(SShell *parent,
} }
void SShell::CopySurfacesTrimAgainst(SShell *sha, SShell *shb, SShell *into, SSurface::CombineAs type) { void SShell::CopySurfacesTrimAgainst(SShell *sha, SShell *shb, SShell *into, SSurface::CombineAs type) {
std::vector <SSurface> ssn(surface.n);
#pragma omp parallel for #pragma omp parallel for
for (int i = 0; i < surface.n; i++) for (int i = 0; i < surface.n; i++)
{ {
SSurface *ss = &surface[i]; SSurface *ss = &surface[i];
SSurface ssn; ssn[i] = ss->MakeCopyTrimAgainst(this, sha, shb, into, type, i);
ssn = ss->MakeCopyTrimAgainst(this, sha, shb, into, type, i); }
#pragma omp critical
{ for (int i = 0; i < surface.n; i++)
ss->newH = into->surface.AddAndAssignId(&ssn); {
} surface[i].newH = into->surface.AddAndAssignId(&ssn[i]);
} }
I += surface.n; I += surface.n;
} }