Let me continue with this evas gradients overview and with my 'critique'
of its current state (largely due both to me and to legacy and other
constraints),
and to continue proposing *api-breaking* changes.
Before doing so though, let me quickly point out something to Dave
regarding
his (really nice) work on adding grad support to edje-editor: Be careful with
the
issue of premul vs non-premul color spaces. Edje deals with non-premul color
stops
for gradients, whereas evas deals with premul color stops and separate alpha
stops.
You can get the former via the latter easily, but not the other way around.
If you want to 'input' non-premul color stops, ie. (r,g,b,a, d) where the
'a'
isn't restricted to satisfy a >= r,g,b, like edje does, then in order to emulate
this in evas (currently), you must do:
evas_object_gradient_color_stop_add(grad, r, g, b, 255, d);
evas_object_gradient_alpha_stop_add(grad, a, d);
this is what edje does internally - it's NOT the same thing as:
evas_object_gradient_color_stop_add(grad, r, g, b, a, d);
in fact, this latter will give you some very unexpected results, in general, if
the
r,g,b,a are indeed non-premul. :)
It's a shame that all gfx apis/specs that deal with gradients use only the
legacy non-premul approach :( But it doesn't appear that this is *ever* going
to
change with any of the "standards", or any libs that want to support such
standards
and little else...
Hence my suggestion that evas do likewise. It would be the simplest way
to be
able to have direct support for grads via most engine 'backends' that are
around.
Again, though not completely to my personal liking (and contradicting my
original
version), I'd like to propose changing the evas gradient 'spectrum' api to be
of the form:
evas_object_gradient_color_stop_insert(grad, r, g, b, a, float pos);
where the 'r,g,b,a' part of the color-stop is assumed NON-PREMUL.
Unless there's overwhelming resistance to this, or raster actually shows
me
that software 3D stuff he has from back when, I will change evas grad spectra
to this form.. and hurt anyone who tries to stop it from being committed. :)
I'll also go over the other half of the evas grad api (ie. related to
type of
grad, fill geometries, spread modes, and such stuff) a bit later, but any
comments
on this part from developers, designers, grandmothers, ... would be welcomed.
____________________________________________________________
Explore all of Europe's beauty! Click now for great vacation packages!
http://thirdpartyoffers.juno.com/TGL2141/fc/Ioyw6i3nKHLljrNsrAODiA6pFsQs8I4BnXKWo8Vt4B1zhhjjD1aW96/
-------------------------------------------------------------------------
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