Commit Graph

5744 Commits

Author SHA1 Message Date
Cedric BAIL af11e81a51 ector: remove useless constructor. 2015-04-03 16:31:40 +02:00
Cedric BAIL cd1f09d359 evas: all color in evas are premultiplied, enforce with warning when not. 2015-04-03 16:31:39 +02:00
Cedric BAIL b54897dc27 ector: remove unecessary check for cairo context.
We now maintain an always available context.
2015-04-03 16:31:37 +02:00
Cedric BAIL 98b13ec944 ector: do not forget to get cairo symbol in Ector.Renderer.Cairo.Gradient_Linear. 2015-04-03 16:31:36 +02:00
Cedric BAIL 976e9de88a ector: call eo_do_super on the right gradient class in Ector.Renderer.Cairo.Gradient_Radial. 2015-04-03 16:31:35 +02:00
Cedric BAIL f41884153f ector: slightly better implementation for gradient radial draw. 2015-04-03 16:31:33 +02:00
Cedric BAIL 2821fd58db ector: on shutdown our ability to find cairo symbol may no be there anymore. 2015-04-03 16:31:32 +02:00
Cedric BAIL 9967da56ca ector: remove useless printf ! 2015-04-03 16:31:31 +02:00
Subhransu Sekhar Mohanty 3dea7dbfaf evas: update and propagate Evas_VG_Base transformation. 2015-04-03 16:31:29 +02:00
Cedric BAIL 4f98cab04d ector: fix inheritance in cairo backend. 2015-04-03 16:31:18 +02:00
Cedric BAIL 5ef81292a1 ector: fix setting context to always have one available. 2015-04-03 16:31:17 +02:00
Cedric BAIL e4330ea220 ector: fix inheritance of Ector.Generic.Shape. 2015-04-03 16:31:15 +02:00
Cedric BAIL fbeca90de4 ector: fix Eina_Log domain to be usable outside of main. 2015-04-03 16:31:13 +02:00
Cedric BAIL 986704dfb4 evas: do not track change on root node. 2015-04-03 16:31:09 +02:00
Cedric BAIL ebfcfed59b evas: fix coding style. 2015-04-03 16:31:08 +02:00
Cedric BAIL ab1f6f7984 evas: set alpha to zero for Efl.VG.Shape.stroke_color. 2015-04-03 16:31:00 +02:00
Cedric BAIL eb2bd9a8d8 evas: move Evas.VG_* to Efl.VG.*
This also introduce legacy API for all of them.
2015-04-03 16:30:59 +02:00
Cedric BAIL dd1cae7329 evas: initial implementation of a dumb SVG parser.
This commit is experimental and may be rebased until usable.
2015-04-03 16:30:56 +02:00
Cedric BAIL 0a27241f61 evas: eo_data_scope_get will return random value in memory, need to always use eo_isa. 2015-04-03 16:30:54 +02:00
Cedric BAIL 6a90d24aab evas: Evas_VG_Root_Node parent will be NULL during destructor. 2015-04-03 16:30:53 +02:00
Cedric BAIL 457e550616 evas: implement render_pre due to our hack over Evas_VG_Container. 2015-04-03 16:30:53 +02:00
Cedric BAIL d6feb49c0c evas: don't duplicate entry in parent children list
eo_parent_set is always called, even in the constructor.
2015-04-03 16:30:52 +02:00
Cedric BAIL 27f0399d08 efl: Efl.Gfx.Shape should actually be a mixin. 2015-04-03 16:30:51 +02:00
ChunEon Park 4e0b919a62 evas: ref/unref root node while it's being used by vg object.
This also remove dead code.
2015-04-03 16:30:49 +02:00
Cedric BAIL df43ec9487 ector: fix constructor/destructor of Ector_Cairo backend. 2015-04-03 16:30:48 +02:00
Vitor Sousa 09be34b825 eolian_cxx: fix build error for some generated C++ wrappers
Name generation for some C++ wrapper functions were adding an illegal ":"
in the function name.
Fixed the logical error that was causing this to happens when converting
namespaces to function prefixes.

@fix
2015-04-03 16:30:46 +02:00
Cedric BAIL 5f2fda2c18 efl: all those interface are clearly BETA_API. 2015-04-03 16:30:45 +02:00
Cedric BAIL f2380b0920 evas: introduce begin and end operation on an Ector surface.
This is necessary for GL has you want to map once and run with it, but it
will also help the software backend to not remap the surface all the time !
2015-04-03 16:30:44 +02:00
Cedric BAIL 0f6328b04f efl: introduce EFL_GFX_CHANGED event and properly propagate up to Evas. 2015-04-03 16:30:42 +02:00
Cedric BAIL 9fd2b74b08 efl: trigger EFL_GFX_CHANGED on path change. 2015-04-03 16:30:40 +02:00
Cedric BAIL 94418f1cd5 efl: add a changed event triggered when something affect the visual aspect of an object. 2015-04-03 16:30:39 +02:00
Subhransu Sekhar Mohanty 7ee3f8d952 evas: add documentation for Evas_Object_Vg class. 2015-04-03 16:30:38 +02:00
Subhransu Sekhar Mohanty b108fe8a10 efl: add documentation for shape and gradient interface. 2015-04-03 16:30:37 +02:00
Subhransu Sekhar Mohanty a068378c83 evas: add documentation for Evas_Object_VG 2015-04-03 16:30:36 +02:00
Subhransu Sekhar Mohanty dd58721613 efl: add documentation for Efl.Gfx enums. 2015-04-03 16:30:35 +02:00
Cedric BAIL 32de8d9e5f efl: move Efl.Gfx.Gradient_* to Efl.Gfx.Gradient.* much nicer for bindings. 2015-04-03 16:30:35 +02:00
Cedric BAIL 1e18631554 evas: make Evas.VG_Shape use Efl.Gfx.Base.color_part for stroke. 2015-04-03 16:30:34 +02:00
Cedric BAIL d7f434986e evas: use Efl.Gfx.Base.color_part in Evas.VG_Node. 2015-04-03 16:30:33 +02:00
Cedric BAIL cd3f8db506 efl: provide Efl.Gfx.Base.color_part and implement it in top Evas_Object. 2015-04-03 16:30:32 +02:00
Cedric BAIL ac8d923090 efl: add path operation to Efl.Gfx.Shape. 2015-04-03 16:23:28 +02:00
Cedric BAIL 1fb52dbe71 evas: move Evas.VG to use Efl.Gfx.View. 2015-04-03 16:23:27 +02:00
Cedric BAIL a395f5ded5 efl: add Efl.Gfx.View and use it in Evas.Image. 2015-04-03 16:23:26 +02:00
Cedric BAIL 5f2527f791 evas: move Evas.VG to use Efl.Gfx.Fill. 2015-04-03 16:23:25 +02:00
Cedric BAIL 7ba7ed4a1c efl: add Efl.Gfx.Fill and migrate Evas.Image to it. 2015-04-03 16:23:24 +02:00
Cedric BAIL a38c037953 evas: make Evas.VG_Node inherit from Efl.Gfx.Stack. 2015-04-03 16:23:23 +02:00
Cedric BAIL 500fe6ef1b efl: add Efl.Gfx.Stack interface and update Evas_Object accordingly. 2015-04-03 16:23:22 +02:00
Cedric BAIL c1118e7282 evas: implement Efl.Gfx.Base in Evas.VG_Node. 2015-04-03 16:23:20 +02:00
Cedric BAIL 651436f410 efl: rename visibility to visible.
After discussion bindings and people in general prefer visible.

T2035
2015-04-03 16:23:19 +02:00
Cedric BAIL c08f8e26a6 efl: add Efl.Gfx.Base and fix inheritance for Evas_Object. 2015-04-03 16:23:17 +02:00
Cedric BAIL c000ee8099 efl: rename namespace Graphics to Gfx. 2015-04-03 16:23:16 +02:00
Cedric BAIL dfd40467fc efl: add a parser for SVG data path that generate EFL Path. 2015-04-03 16:23:15 +02:00
Cedric BAIL 2067e85d68 evas: use the new Efl_File mmap function correctly for Evas_VG API. 2015-04-03 16:23:14 +02:00
Cedric BAIL c2e75544e1 efl: move mmap API to be part of Efl_File class. 2015-04-03 16:23:13 +02:00
Cedric BAIL 28257ec8fe evas: fix warning due to forgotten return. 2015-04-03 16:23:12 +02:00
Cedric BAIL ba47b47eb2 efl: make path a property actually. 2015-04-03 16:23:10 +02:00
Cedric BAIL 091fd5f31d evas: handle setting sub VG object to NULL. 2015-04-03 16:23:09 +02:00
Subhransu Sekhar Mohanty 125701c667 efl : fix append circle api in efl_graphics_utils 2015-04-03 16:23:08 +02:00
Cedric BAIL 5bb35d5598 efl: simplify the enum to only use Cubic Bezier curve.
So SVG support all kind of primitive, but really they are just sugar
on top of the simpler cubic bezier curve. Let's simplify our backend
by just supporting them and the simple line. We still provide all
the sugar, but via helper function that do convert to the right
number of Bezier curve.
2015-04-03 16:23:07 +02:00
Cedric BAIL 4248bc2870 evas: actually return the right type and fix warnings. 2015-04-03 16:23:06 +02:00
Cedric BAIL ce4d4aac04 efl: fix typos that emitted the wrong PATH type. 2015-04-03 16:23:05 +02:00
Cedric BAIL 5aafae94f1 evas: actually we want the Ector_Renderer, not the Evas_VG_Node. 2015-04-03 16:23:04 +02:00
Cedric BAIL 502ac45916 evas: properly propagate Eina_Matrix from the VG scene graph to the Ector_Renderer. 2015-04-03 16:23:03 +02:00
Cedric BAIL 0bb66ffedf efl: add efl_graphics_path_interpolate and efl_graphics_path_equal_commands.
This function will be handy to implement path interpolation in Edje later on. This
would be usable by Edje if we do push an Evas_Object_Shape. Not really difficult to
add at this stage.
2015-04-03 16:23:01 +02:00
Cedric BAIL 2cae706ab6 evas: start correctly implementing the render callback. 2015-04-03 16:23:00 +02:00
Cedric BAIL 6097178ec3 evas: start properly implementing render_pre for Evas_VG_Node. 2015-04-03 16:22:58 +02:00
Cedric BAIL 621d3b5660 evas: those function should have been static. 2015-04-03 16:22:57 +02:00
Cedric BAIL a00b6219fa evas: remove printf. 2015-04-03 16:22:56 +02:00
Cedric BAIL 6071e71e98 evas: cleanup parent handling of Evas_VG_Node. 2015-04-03 16:22:54 +02:00
Cedric BAIL f85f8135a0 evas: NULL is always needed as during destruction parent is set to NULL. 2015-04-03 16:22:53 +02:00
Cedric BAIL 09d7ffe520 evas: add fill and size definition for a VG scene graph. 2015-04-03 16:22:51 +02:00
Cedric BAIL 40e3240e6e evas: fix copy and paste mistake. 2015-04-03 16:22:50 +02:00
Cedric BAIL 185eadf9ad evas: fix typos in Evas_VG_Root_Node. 2015-04-03 16:22:38 +02:00
Cedric BAIL 97714021d1 evas: Evas_Object_VG should always create a root node. 2015-04-03 16:22:37 +02:00
Cedric BAIL 78bf41b223 eina: add eina_simple_xml_attribute_w3c_parse to parse attribute value. 2015-04-03 16:22:29 +02:00
Cedric BAIL 81760ea5d9 evas: also allow Evas_VG and NULL as parent.
I have yet to be sure of the Evas_VG one.
2015-04-03 16:22:26 +02:00
Cedric BAIL 36ba2fc01d evas: add file manipulation API to Evas_Object_VG. 2015-04-03 16:22:22 +02:00
Cedric BAIL b6ffe1cc87 evas: first implementation of an ector drawer inside Evas software engine.
Note: this won't work with the OpenGL backend.
2015-04-03 16:22:18 +02:00
Cedric BAIL 3f3fb4cac7 ector: handle color multiplier in the function declaration. 2015-04-03 16:22:16 +02:00
Cedric BAIL 5d98201236 ector: reorder macro for easier reuse. 2015-04-03 16:22:15 +02:00
Cedric BAIL aad1cf28f6 ector: prepare doesn't need surface, as it should always be the parent. 2015-04-03 16:22:14 +02:00
Cedric BAIL 8f82b5a089 efl: fix some whitespace. 2015-04-03 16:22:12 +02:00
Cedric BAIL 74b2eed158 ector: first implementation of an Cairo shape renderer.
Note: still a lot on the todo, but it should display something that follow
the correct path at least. Thanks librsvg for helping a lot.
2015-04-03 16:22:11 +02:00
Cedric BAIL 7ba0f46a39 ector: remove surface from draw command as it should be drawn on the parent, always ! 2015-04-03 16:22:10 +02:00
Cedric BAIL 60e4edd7b9 ector: start implementing radial gradient in cairo backend. 2015-04-03 16:22:08 +02:00
Cedric BAIL 48beef6b21 ector: fix cairo linear gradient implementation. 2015-04-03 16:22:07 +02:00
Cedric BAIL d6cd365a48 ector: now import header of all cairo renderer. 2015-04-03 16:22:04 +02:00
Cedric BAIL 7417c034bf ector: cairo need a specialized fill function. 2015-04-03 16:22:03 +02:00
Cedric BAIL ea8f37e47d ector: first try at implementing linear gradient renderer. 2015-04-03 16:22:02 +02:00
Cedric BAIL fdf3942aa0 ector: first implementation of a Cairo surface. 2015-04-03 16:22:01 +02:00
Cedric BAIL 33d538643a ector: add a base interface for all cairo renderer. 2015-04-03 16:22:00 +02:00
Cedric BAIL 85036dbeb1 ector: fix building of the generic backend. 2015-04-03 16:21:59 +02:00
Cedric BAIL fedfbf4bf6 ector: fix building of cairo backend. 2015-04-03 16:21:58 +02:00
Cedric BAIL fcbc29f85e ector: move dependency around. Evas now depend on Ector. 2015-04-03 16:21:57 +02:00
Cedric BAIL cba397fcf1 ector: and here come the beginning of a Cairo backend.
The idea is that Evas engine will actually inherit from it to instanciate their
own Cairo backend (Software and GL) from there.
2015-04-03 16:21:56 +02:00
Cedric BAIL b06e770614 ector: add beginning of a cairo implementation. 2015-04-03 16:21:54 +02:00
Cedric BAIL fe0672b80e ector: all those function needs to be static. 2015-04-03 16:21:53 +02:00
Cedric BAIL 1df94f5baa ector: share base type structure to the rest of ecore_private.h. 2015-04-03 16:21:52 +02:00
Cedric BAIL 11ac85b40b ector: duplicate PATH could be useful. 2015-04-03 16:21:50 +02:00
Cedric BAIL c5d085999a ector: add stop implementation. 2015-04-03 16:21:49 +02:00
Cedric BAIL 75728e7fff efl: move PATH manipulation from Evas into Efl interfaces. 2015-04-03 16:21:48 +02:00
Cedric BAIL 62459acda7 ector: start the implementation of a Cairo backend. 2015-04-03 16:19:11 +02:00
Cedric BAIL 3ada4184d7 ector: start the implementation of the Generic surface. 2015-04-03 16:18:30 +02:00
Cedric BAIL a5f8532e27 ector: make the drawing function virtual as it rely on the backend implementation. 2015-04-03 16:15:43 +02:00
Cedric BAIL 272967afe5 ector: move all interface to be in the Generic namespace.
This will enable the possibility to have many implementation for the
backend. Will come first Cairo, followed by Software and GL one day.
2015-04-03 16:15:41 +02:00
Cedric BAIL 0f27e887e4 evas: make the interface part of the Generic name space.
This should enable having multiple backend that will use another namespace instead
of Generic.
2015-04-03 16:15:40 +02:00
Cedric BAIL 6f3fd4ac81 ector: add linear and radial gradial renderer to Ector. 2015-04-03 16:15:39 +02:00
Cedric BAIL 4036a22b10 efl: introduce an Efl Gradient Radial interface. 2015-04-03 16:15:37 +02:00
Cedric BAIL e15bdbe457 efl: add a linear gradient interface. 2015-04-03 16:15:36 +02:00
Cedric BAIL f701e1f099 ector: add top gradient renderer. 2015-04-03 16:15:04 +02:00
Cedric BAIL d59351732d efl: add a gradient interface. 2015-04-03 16:15:03 +02:00
Cedric BAIL 1d49ff7df2 efl: rename geometry to graphics to be more general. 2015-04-03 16:15:02 +02:00
Cedric BAIL 3635b63708 ector: add initial interface for a shape object. 2015-04-03 16:15:00 +02:00
Cedric BAIL 0510ea90bd ector: add initial interface for Surface and Renderer. 2015-04-03 16:14:58 +02:00
Cedric BAIL 5e75d607c6 ector: initial introduction.
Idea for this library is to become a retained mode drawing library that use
Eo/Eolian for its API and take a lot of the good design from Enesim by
Jorge Zapata and Jose Gonzalez (http://enesim.org/).
2015-04-03 16:14:56 +02:00
Cedric BAIL 411bb5b64e efl: use Efl_Geometry_Shape. 2015-04-03 16:14:55 +02:00
Cedric BAIL 14dcad09c0 efl: add an interface for Efl_Geometry_Shape. 2015-04-03 16:14:54 +02:00
Cedric BAIL a247ddeceb evas: fix Evas_VG eo files. 2015-04-03 16:14:52 +02:00
Cedric BAIL 3447936adb evas: implement all Evas_VG_Shape property. 2015-04-03 16:14:51 +02:00
Cedric BAIL b50931a5ca evas: actually compile Evas_VG_Shape. 2015-04-03 16:14:50 +02:00
Cedric BAIL 8097b8ab47 evas: move Evas_VG_Node structure declaration into a shared header to use it directly from Evas_VG. 2015-04-03 16:14:48 +02:00
Cedric BAIL 2e6cc1a173 evas: fix prototype and correctly call the function. 2015-04-03 16:14:47 +02:00
Cedric BAIL ea9330bfe8 evas: declare internal evas_vg helper. 2015-04-03 16:14:46 +02:00
Cedric BAIL 3d37f150c7 eo: internal variable should not have that much chance to conflict prefix them with ___. 2015-04-03 16:14:19 +02:00
Cedric BAIL ae5472379f evas: handle path set on shape object. 2015-04-03 16:13:13 +02:00
Cedric BAIL 1e5c596ca3 evas: implement stupid bound get at container level. 2015-04-03 16:13:12 +02:00
Cedric BAIL 7f072eb607 evas: add Efl.File interface to Evas_Object_VG. 2015-04-03 16:13:11 +02:00
Cedric BAIL 161b7b93e2 evas: add Evas_VG_Image. 2015-04-03 16:13:07 +02:00
Cedric BAIL fa2f4e969e evas: implement Evas_VG_Node stacking functions. 2015-04-03 16:13:06 +02:00
Cedric BAIL 9dcf840ade evas: Evas_VG_Root_Node should only be attached to an Evas_Object_VG. 2015-04-03 16:13:05 +02:00
Cedric BAIL 95e70ee5cb evas: remove unecessary duplicated code. 2015-04-03 16:13:03 +02:00
Cedric BAIL 45ccb8f6d1 evas: add utility function to build path. 2015-04-03 16:13:00 +02:00
Cedric BAIL 9ba6e1a0ae evas: add initial Evas_Object_VG.
Evas_Object_VG is meant to become an object that can hold a SVG
scenegraph inside of it.
2015-04-03 16:12:59 +02:00
Cedric BAIL 659d3c4fd7 eina: add eina_matrix.
This code come from Enesim and was done by Jorge. I did just take care
of changing the namespace and coding style.
2015-04-03 16:12:48 +02:00
ChunEon Park 2b0fb1ea1d evas/common Fixed incorrect blend pixel color logic in neon.
previously, it had the remaining value issues on blending computation.
The blending color result was in correct.

Signed-Off-By: Vladimir Kuramshin <v.kuramshin@samsung.com>
2015-04-03 19:48:30 +09:00
Mike Blumenkrantz ac11a9cb36 edje: move Edje_Color_Class->desc to end of struct
this allows memory layout compatibility with Elm_Color_Class
2015-04-02 15:20:21 -04:00
Mike Blumenkrantz 5a61ee107c edje: return immediately when setting color class if class is not in use 2015-04-02 15:15:31 -04:00
woochan lee 48f4f1b837 Eeze.h: Delete white space.
Summary: Delete white space in Eeze.h

Reviewers: cedric, Sergeant_Whitespace

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2246
2015-04-02 14:47:43 +02:00
Andrii Kroitor 7271c99b3c edje_calc: fix SEGFAULT on new parts
Summary: new part added with edje_edit_part_add has NULL previous description

Reviewers: cedric, zmike, seoz, Hermet, raster

Subscribers: FurryMyad, cedric, reutskiy.v.v

Differential Revision: https://phab.enlightenment.org/D2272
2015-04-01 07:25:12 -04:00
Stefan Schmidt eae15fbb28 ecore: Move documentation for ecore_timer_add at the correct place.
Many thanks to Vinicius dos Santos Oliveira for spotting this and
pointing it out on the mailing list.
2015-04-01 10:23:00 +02:00
Mike Blumenkrantz 89809bdf55 edje calc now more correctly forces recalc for child groups on state change
in the event of fixed size -> non-fixed size (eg. previous commit optimization),
this calc would no longer occur, so we need to queue it. also if fixed.w or
fixed.h changes value for a group part, we must recalc the group to ensure correct
sizing occurs
2015-03-31 23:31:11 -04:00
Mike Blumenkrantz 15f8d943aa edje calc no longer performs calculations for group parts of fixed size > 0
when I said > 0 in the last commit message, I was thinking ahead to this commit
which I knew I would later have to make, but had not yet written because I had not
spent the requisite number of hours debugging the code to know that I needed to
have the check in both the code and the commit message

ref 3a451650d2
2015-03-31 23:31:11 -04:00
Carsten Haitzler 4e716fb779 ecore_file - fix nasty memory issues in ecore_file_app_exe_get()
valgrind was most unhappy with ecore_file_app_exe_get(). like:

==8331== Invalid write of size 1
==8331==    at 0x68DE90A: ecore_file_app_exe_get (ecore_file.c:994)
==8331==  Address 0x1348e58f is 0 bytes after a block of size 31 alloc'd
==8331==    at 0x4C28C20: malloc (vg_replace_malloc.c:296)
==8331== Invalid write of size 1
==8331==    at 0x68DE948: ecore_file_app_exe_get (ecore_file.c:1000)
==8331==  Address 0x1348e599 is 10 bytes after a block of size 31 alloc'd
==8331==    at 0x4C28C20: malloc (vg_replace_malloc.c:296)

etc. etc. - so i rewrote it cleanly using strbuf to save code and
effort. cleaner now and ACTUALLY works correctly... and no valgrind
complaints.

@fix
2015-04-01 09:37:27 +09:00
Mike Blumenkrantz abf3c3c470 edje object swallowing no longer forces a full recalc
this (and/or related prior commits) seems to have hugely improved
edje performance across the board. particularly noticeable in the
settings pane animations for terminology

 #aprilfools
2015-03-31 19:16:55 -04:00
Mike Blumenkrantz f534103c95 edje object scale factor changes now trigger deferred recalcs
as with the previous commit, any user who wants geometry immediately
will be calling calc functions, so this is just going to be redundant
except in cases where calc is not wanted, in which case it is unnecessary
overhead
2015-03-31 19:16:54 -04:00
Mike Blumenkrantz 43779dfa6f edje group part init no longer forces synchronous hint updating during load
hints will be updated later and any user who wants these hints is going to
be calling edje calc functions anyway, causing this to be a redundant calc
2015-03-31 19:16:54 -04:00
Mike Blumenkrantz 20350a8006 edje calc no longer forces proxy part source calcs for currently-hidden proxies
this saves a bit of calc time when a proxy part is not currently visible
2015-03-31 19:16:54 -04:00
Mike Blumenkrantz 3a451650d2 edje calc no longer performs calculations for group parts of fixed size
if the min/max of a part are identical and > 0, the part's min size is guaranteed
to be this size. there is no need to perform expensive recursive calcs here
2015-03-31 19:16:54 -04:00
Cedric BAIL b72df468f2 edje: add edje_file_iterator_new().
This list the actually opened Edje file by the current process.
2015-03-31 23:23:32 +02:00
Cedric BAIL bfbb2d8a51 edje: fix build break. 2015-03-31 23:21:12 +02:00
Cedric BAIL 11a4e1ae83 edje: add edje_mmap_color_class_iterator_new().
This function make it possible to list the Color class of a specific Edje file.
2015-03-31 21:57:23 +02:00