HaikuArchives / ArtPaint

ArtPaint is a painting and image processing program.
https://haikuarchives.github.io/ArtPaint/
29 stars 18 forks source link

View manipulators need to operate on Selection bitmaps #621

Closed dsizzle closed 8 months ago

dsizzle commented 9 months ago

This is a superset of #525; perhaps I will close that one as a Duplicate but for now I will keep it.

Translation, Rotation, and Scale for Selections need to operate on the selection_maps as they do on standard bitmaps. Currently they move the polygonal outlines, which they still should do for real-time updates, but when the manipulation is complete they need something like ManipulateBitmap that works on Selection bitmaps. Perhaps ManipulateBitmap can be made to handle both types of bitmaps, but it might be easier to duplicate the function as ManipulateSelection.

This is yet another feature needed for #597, and future features like painted + blurred selections..

dsizzle commented 9 months ago

Reopened this issue. It's technically done in that it properly operates on the bitmaps, but the "recalculation" of selections draws over the bitmaps, thus erasing any gray/alpha values stored there. Scale is the only one that restores the gray/alpha values, but Translate and Rotate get overwritten by Recalculate. "Selection::Recalculate" can't exist in a world with gray selection values, but the outlines need to stay in sync with the bitmaps.

dsizzle commented 8 months ago

ok, this is finally actually done with #597.