Let me give Carsten and Jorge a few more philosophical speculations here
on this stuff.
If you've followed this "vgfx api" proposal you'll see that it introduces
such concepts to evas by allowing for one to set relevant properties on evas
objects that might support such - rects, lines, paths,... It's an extremely
"object oriented" approach in that even our 'paints', images and gradients,
are evas objects themselves.
Now, the thing about this is that eg. if one wanted to draw something like
100 rects, possibly with slightly different transparencies, slightly offset from
each other, slightly rotated rel to each other, etc.. one'd have to add 100 such
relevant rect objs with appropriate state. One could proceed to create kinds of
objs in this way using smart objs to encapsulate such given constructions and
whatnot. But, it's a fairly 'heavyweight' way of doing it, in general.
What one would like is a more 'immediate-mode' method of creating kinds
of canvas objs, whether vgfx related or not.
I've mentioned things like flash, silverlight, qgraphicsscene, javafx, and
whatever others before, and the thing about *all* of these is that they build
their 'canvas' model from a vgfx immediate-mode drawing api.
Let's see if one can turn that around with evas, and see if one can build
an 'immediate-mode' gfx api around whatever rendering model the canvas
supports..
and see if one can use that for the kind of extensibility and custom drawing
capabilities that one can get with such direct rendering, immediate-mode
aspects.
To that end, let's consider adding a new evas object type - let's call
it a "gfx" object, and let's imagine it has three distinguishing properties:
a) One can add children (or member) objects to it (much like with smart objs),
the added objs will become as if invisible to the evas (much like clip objs).
b) One can set a "draw" function on it which will take and update rect as an
argument. This function will be called whenever the gfx object will be
rendered
(similar to what's allowed with image objs).
c) One can call a "child_draw" function on every member object of such a gfx
object - this call will call the member obj's own internal rendering
function.
So, for example, one can create such a gfx object, create a rect object, add
the rect to the gfx object, and define the gfx object's 'draw' function to do
something like: move the rect to a certain pos, set its color to something,
call 'child_draw' on the rect, move the rect again, reset color, rotate it
somewhat, and call 'child_draw', move it some more, .....
____________________________________________________________
Need local Internet advertising for your business? Click Here.
http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3m6F9Ck7ADd8SDYcU2KzUGIHfX3IAAsOsyLIMxq7MxEt9zmQ/
-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel