This involved some refactoring. The original code was relying on a cache of pre-allocated arrays which in turn were still re-populated every redraw loop. We now ditch those arrays, and make the draw "on the fly". Part of T49043 @merwin can you just check if you foresee any performance impact with this approach?