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

Reply via email to