On 2012-05-17 02:08, Valerie wrote:
Don't let that worry you too much :) First of all, rendering a bunch of shapes isn't necessarily that slow, and secondly, there are usually some tricks to make the speed acceptable when it is.
True, though I wonder if you'll still be saying that once people start stacking symmetry templates on top of tiling templates on top of perspective templates, with extrude templates in-between.
Yes, there are always things that will take "too much" time, but initially it's usually a good idea to think about what you'd really want. If you start thinking too early about performance you often end up with something that might(!) be fast, but isn't really what you want... So ideally you start to think about what you want, then identify where the performance problems might lie and try to fix that. Of course it's never that black and white, if you know beforehand that something will be truely outrageously slow (taking hours, or even days or more in typical use cases), then yeah, just forget about it.
What am I talking about? ... (long list of compound operations)
All the while, every function in-between can still be edited: he can change the number of windows on-canvas (tiling), can change the perspective on-canvas, can change the extrude values on-canvas, can edit the vines on-canvas too. He can turn templates on and off, for example turning off the perspective template temporarily to edit the poster.
Sure, that's taxing, but I wouldn't say beforehand that it is impossibly slow. Sure, if the window is extremely complex, and the user makes hundreds of copies, etc., etc., then it might become too slow, but that's not exactly a surprise, and a simple consequence of the image being quite complex. Put another way, it would still be /much/ faster than creating the same image by hand (it might even render faster).
Also, if this kind of complicated work would become a typical use case, then it might pay to implement some tricks. For example, we could allow the user to (temporarily) limit propagation of changes to (all) elements. Or update the image progressively (this has its issues, but in some form it might make sense).
And remember, this is before we've even thought about all the ways in which this kind of thing could be optimized. (In many cases we could get by with just stamping bitmaps for example.)
There's been a lot of head-scratching regarding the proper interface for LPE-stacking. The current interface is not on-canvas enough, and the lack of reusability is a pity (for perspective, for example, or custom wavy flags). There's been another proposal for connecting function boxes, and I'm not sure users would like that either.
On-canvas templates may be a new approach, but seems to open up a lot of possibilities. Are there any other programs where you drop all sorts of functions to be accessed on-canvas?
Have a look at laidout (http://laidout.org/). Admittedly this is not exactly a main-stream application, but it has some really interesting features. The alignment tool was demonstrated at LGM and is in my opinion definitely something to have in Inkscape as well (in some form or other).