No screenshot, but I can describe:
Imagine a grid of 100x100 tiles (it can be bigger, e.g., 150x400 should also work), forming a diagram.
The diagram is a big line drawing formed by those tiles. Each tile has one of a few possible types, but its look depends on the neighbors. Examples:
-there could be arrows or lines pointing at any combination of 0 to 8 neighbors --> that alone gives already 3 to the power of 8 combinations
-there can be border around the tile, or on any subset of its 4 sides
-it might have a special background color
-it might have a letter on it
So the above gives a combinatory explosion of what a tile could look like. If there were only 100 or so different looks, I would use 100 premade textures. But that's not how it is, the tiles need to be created when loading the map and they could in theory all look slightly different (in practice many may look the same due to regularities in maps but it's hard to guess which before starting to draw them).
So for the same reason as 100 premade textures is not possible, I think having a few hidden ones as a buffer is difficult for the same reason.
Depending on what happens, it is possible that almost every tile needs to be updated to the other one in a single frame. So each map tile has two possible looks (usually) and the updates per frame is that some change to the other look (and it is currently smart enough to only flip those that changed, but if I would instead go to a different type of rendering where everything is redrawn per frame then that doesn't matter of course)
I will try if copying parts of a few pre-made ones existing out of only parts of a tile (like 1 of the 8 arrows, ...) will work, and if that will be fast enough every frame.
Thanks for the suggestions!
P.S. no matter how horrible it sounds, chrome can do it fast! I only discovered that it can be slow when trying it in firefox