Getting back to the evas filters/transforms stuff... One other aspect that needs to be addressed has to do with the very notion Gustavo mentioned about "negotiating" buffer sizes that a filter/transform might need for putting results to.. and in fact this also covers things like calculating update rects when dealing with these things at the canvas level. The problem is that it may be difficult, in general, to obtain 'bounds' for these kinds of operations on objects. Let's take the simple case of transformations. Though it's easy to deal with this for affine ones, projective ones are a bit more of a pain. There are ways to deal with this, eg. by restricting the way the transforms are obtained (say to those that are equivalent to texture-mapping a given quad), or other things, but in general it's something that poses difficulty or inefficiency.
In general, the complexity and inefficiency of determining bounds or update regions increases rapidly as one allows complex filters/transforms and arbitrary chaining of these, and an object's 'geometry' no longer determines its actual drawn geometry or bounds on the canvas in a simple way. Many who use gl for rendering often don't bother with update rects, and simply re-draw the whole scene when updates are needed, or require one to manually provide the update rects. Related to this is the issue of 'picking', ie. determining whether a given canvas point lies 'over' the drawn object. This is fairly easy to deal with for transforms, affine or projective, but may also pose issues with general filters (consider one that turns an image into a blurry pretzel shape, or breaks it up into many scattered pieces all over ...). One could require that the filter provide a function to do the 'picking', but this would have to be in an inverse way, ie. from target space to source space.. and most likely would end up being a simple bounds check, which is generally very coarse. The issues here are not trivial - arbitrary filters/tranfs are difficult to deal with for ui aspects. They're fine for gfx presentations kinds of things, but not so naturally dealt with for user interfacing. These kinds of things at one point led me to consider one possibility of NOT having filters/tranfs on arbitrary objects, but rather only on objects 'bound' to a 2d-scene kind of obj. This was a fairly conservative approach, but nonetheless one that I felt should be considered... among several others. ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel