This has significantly less overhead than repeatedly calling localToCanvas, and may be vectorized in the future by a smarter jit