Selections: allow drawing on selections as if they were layers
With #1303, selections are persistent. Under the hood, they're actually a kind of layer, so it'd be technically possible to draw on them.
UI-wise, this would require presenting selections in the layer list, similar to the idea with floating transforms in #1266. It would also need some kind of "selection" blend mode that only pays attention to the alpha channel.
Protocol-wise, this could just be a new command (except on builtin servers, where we'd presumably need some PutImage hacks again), since it doesn't affect anything visible and so doesn't cause desync. Alternatively, it may be possible to hack something by using invalid blend modes, but I don't think that would work for MyPaint brushes. Although maybe there's some other invalid combination we could use for those to keep things compatible without adding a mound of new commands.
This feature doesn't have particularly high priority, since you can turn selections into layers (by using Fill Selection) and vice-versa (by using Layer to Selection) already.
Huh krita does have this 'selection-pseudo-layer', Maybe it can be used in other things? Such as adding blend modes like in #211 . Just a idea though, since the layer is actually for selection not transformation.
Would be pretty useful, both for drawing above selections, and under transformation.
#1266
Here's how it is on GIMP:
This is implemented for 2.3.0 now. It extends layer ids to have 24 bits instead of 16, which leaves plenty of room for a flag bit at the top that allows any layer id to refer to a selection.
Drawing on a selection is done by enabling Selection → Draw on Selection, similar to how GIMP does via the (weirdly-named) Select → Toggle Quick Mask action. I think that's better than sticking a pseudo-layer at the top of the layer tree, since it requires a lot of annoying scrolling when you have a lot of layers and looks kind of ugly to have such a rarely-needed thing sitting at the top of such an important dock.
(The two comments above aren't really about this feature, what they're showing is masking, which is tracked in #1433.)