> > deeper crevases of the texture. Is there a practical benefit for storing
> > multiple copies of a texture for differing amounts of pressure inside a
> > brush pipe file?
> yes. a) not another special case
> b) you can easily implement any function between pressure and
> change-in-texture without changing the core
> c) not another special case.
I think a better solution would be a definable pressure curve, much like
Wacom's Windows driver has. That'd probably be a feature of the
general mechanism you described and perhaps what you have in mind. A
user (or a brush designer) can define their own function and the mechanism
would be usable for all tools, not just ones that draw by copying from
The major problem with having different texture maps for each pressure is
the amount of memory necessary to store them. Texture tiles generally are
much bigger than brushes to reduce visible repetition. A texture of size
256x256 is not uncommon, and if there were 8 copies of that texture stored
in a brush pipe file, each bitmap corresponding to a different pressure,
then the file will be ~500k. That's a big download (and a lot of cache
misses) just for one texture. Since many people download their copies of
GIMP, that's a lot of bandwidth, too.
I'm not convinced creating bitmaps specific to certain values of
parameter subsets (such as angle, pressure, velocity, random, ordering,
etc) is really the proper solution. It works okay if you want to change
a tool depending on the value of one variable, but each time a parameter
is added, the number of bitmaps increases manyfold. Basically the
whole mechanism explodes in an exponential disaster. ;)
For example: a 256x256 texture with 9 angles and 8 pressure levels will
require more than 4 megs of memory.