func (vr *ViewRegions) Cull(viewport text.Region) { nr := []text.Region{} for _, r := range vr.Regions.Regions() { if viewport.Intersects(r) { nr = append(nr, viewport.Intersection(r)) } } vr.Regions.Clear() vr.Regions.AddAll(nr) }