Sven and Dmitry had a discussion of how we should treat our selections in Selection Based Layers and in Masks. We managed to formulate what we need from this design.
- The colorspace of the selection of these device should be represented for a user as a grayscale image. For example: black pixel means the mask in completely transparent, white pixel means -- completely opaque.
- When we select a Selection Based Layer or a Mask, all the color selectors (including pop-up palette) should change their colorspace and represent the current color as described in 1). It should be possible to select a "transparency color" of the brush with any particular selector.
- The brush's dab may have it's own colorspace like grayscale+alpha to support different blending modes and fading of the brush tip. When the dab is bitBlt'ed to the mask, the colorspace is converted to a simple grayscale one (without alpha).
- Selection tools should have access to global selection only. They should *not* affect the selection of the mask in any way. When a user uses a selection tool on a selection based layer it just creates the global selection only. This created selection may be used to fill the area with a solid "transparency color" or just limit painting with a usual brush.
These bullets just describe what we are going to achieve. The next stage is to work out a plan how we can achieve this and which classes we need to change and how.