... foreach (y, ref row; offsetMap) { auto run = 0; auto nPixels = 0; foreach (x; 0..size.x) { immutable SDL_FPair offset = { center.x - x, y - center.y }; ... and why does it violate the principle of making the right thing the easy thing to do?