|
|
|
Some color models support more tools, filters and other things like
|
|
|
|
colour selectors than other color models. Some support far less of
|
|
|
|
those things, in fact.
|
|
|
|
|
|
|
|
Among these things are:
|
|
|
|
|
|
|
|
* tools
|
|
|
|
* palettes
|
|
|
|
* filters
|
|
|
|
* paint ops
|
|
|
|
|
|
|
|
Thus, if a paint device is of a certain color model, certain GUI things
|
|
|
|
must be activated and deactived when that paint device becomes active.
|
|
|
|
|
|
|
|
A paint op may need to knwo something about the layer it is going to paint
|
|
|
|
on: it is not sufficient to generate a mask and have that composited by
|
|
|
|
the color strategy because the footprint may be determined by the deposit
|
|
|
|
and height field that is already present.
|
|
|
|
|
|
|
|
For some color models, pixels in a paint device must be
|
|
|
|
initialized using more or less complex algorithms. It is not enough to
|
|
|
|
initialize a single default pixel (which we cannot do yet), we must
|
|
|
|
additionally initialize the whole default tile; and since nothing in
|
|
|
|
Chalk outside the tilemanager code should know about the very existence
|
|
|
|
of tiles, we must find a generic solution of the canvas initialisation.
|
|
|
|
|
|
|
|
Additionally, some color models need permanently running filters to model
|
|
|
|
physical pocesses, like drying and flowing of paint or ink, or adsorbtion into
|
|
|
|
lower layers.
|
|
|
|
|
|
|
|
Finally, some color models (like the selection, or wetdreams) want a way to
|
|
|
|
efficiently add some kind of visualisation at the paintView level, instead
|
|
|
|
of the rendering level.
|