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 enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel