Øyvind Kolås wrote:
* Daniel Rogers <daniel@xxxxxxxxxxxxxxxxx> [040115 23:08]:
oops. Sent the last mail a little early.
Also, I don't like the idea of temporary ops. I think ops should be
persistent and creating an linking in a temp op, which I think of as a
pretty heavyweight operation seems pretty wasteful.
Given a good caching system, the operation should not be heavyweight,
you need animateable parameters for the op's anyway,. en effectlayer
must be editable from within the gimp, effectively animating the effect
constantly getting a preview of what the changes lead to, scrubbing the
range widget is still animating.
I disagree. Changing the graph is a pretty destructive operation that
will trigger invalidations of large regions. Futher, you may leave the
graph is an undeseriable, undefined state, which would cause havoc if
some other system is asynchronously requesting renderings from it.
The invalidations are much easier to keep track of and propagate if you
just use the writable image-type idea.
The stroke of the paintbrush is well expressed as a vector,. you want
the coordinates to be subpixel coordinates anyway. Sampling them from a
mouse is even easier given a proper affine transform for zoom, and
rotation (a desireable thing to do with the canvas and a Wacom for
instance.). In zoomed out mode, this would mean that the motion events
we get won't draw polylines, but can be approximated with bezier curves
for better interpolation, also a desireable feature.
Yes, but I think you are mixing two actions. Sometimes what you want is
a brush stroke. In which case it is sampled from the mouse and may or
may not be stored as a vector. Sometimes what you want is a path, which
should be stored as a vector and will be easy to animate.
The latter is the right thing, the procedural drawing routines are
possible to create within that model, and the procedural drawing
routines can be used with dynamic parameters as the user interacts with
the ui, in the model I outline above. So at least it doesn't disallow
any of the implementations :)
see above :-)
--
Dan