void computeNewRegions(int l, SynthWindows synthwins) { // compute update regions // -> common synthesized part, express in new window coords, to be copied Window absSynthCached = bufferrgn(l); Window absSynthNew = synthwins.bufferrgn(l); Window absOverlap = absSynthCached.overlap(absSynthNew); Window absValidCached = valid(l).absoluteFrom(bufferrgn(l)); Window absValidNew = synthwins.valid(l).absoluteFrom(synthwins.bufferrgn(l)); Window absValidOverlap = absValidCached.overlap(absValidNew); Pair <Window, Window> rgn = computeUpdateRegions(absValidNew, absValidOverlap); m_UpdVert[l] = rgn.first.relativeTo(synthwins.bufferrgn(l)); m_UpdHorz[l] = rgn.second.relativeTo(synthwins.bufferrgn(l)); m_UpdCopySrc[l] = absValidOverlap.relativeTo(bufferrgn(l)); m_UpdCopyDst[l] = absValidOverlap.relativeTo(synthwins.bufferrgn(l)); m_BufferRgn[l] = synthwins.bufferrgn(l); m_Valid[l] = synthwins.valid(l); m_Requested[l] = synthwins.requested(l); m_Cached[l] = synthwins.m_Cached[l]; }