Face normal projection for texture painting

I’m not too familiar with this code, but I know it relies heavily on caching projected data from a particular viewpoint. So whenever the viewpoint changes during painting a lot of cached bucket needs to be freed.

Further I believe it stores some data like mask and original color per projected pixel rather than pixel in the painted image, and that would somehow need to be preserved.

So I expect some deeper changes to the data structures will be needed, it’s not just a matter of updating coordinates at the right moment.