Drawing a buffer to the canvas, while maintaining vectors (instead of rasterizing the buffer)?

it seems like what you want though might instead be threads. These are processes which you can call which run alongside the main thread, and execute in the background. You CANNOT use draw with thread but you can do calculations, and so long as you have variables to track what has been calculated or not, the thread should not revisit the same elements.

Threads do have some limitations though, mainly they can be a bit difficult to implement for beginners and they run asynchronously. meaning if you have more than one thread they’re wont run in the order you want unless you create a synchronized thread.

This will mean that you cannot combine thread and canvas as no draw calls can be made with thread, but you should be able to store as many calculations as you want, and providing a flag is set when done, you can then retrieve the coordinates and raster it wherever you want.