Commit Graph

138 Commits

Author SHA1 Message Date
Tom Hacohen 81240669e8 Revert "Ector and eo suite: Semi automatically migrate to the new eo_add."
This reverts commit df83edaeb6.
2016-03-11 12:29:03 +00:00
Tom Hacohen df83edaeb6 Ector and eo suite: Semi automatically migrate to the new eo_add.
There were some issues with the migration that required manual
intervention.
2016-03-09 16:09:14 +00:00
Tom Hacohen f21ade6123 Automatic migration to Eo4.
I just ran my script (email to follow) to migrate all of the EFL
automatically. This commit is *only* the automatic conversion, so it can
be easily reverted and re-run.
2016-03-03 09:58:08 +00:00
Tom Hacohen e71e6561ee Eo callbacks: Migrate all of the EFL to the new event cb signatures. 2016-02-29 11:33:27 +00:00
Tom Hacohen 0aabd01d13 Ector cairo: define cairo_t as extern. 2016-02-12 14:29:27 +00:00
Cedric BAIL c2c8308e15 ector: fix potential crash if cairo is not found on the system.
@fix

T2938
2016-01-21 15:57:17 -08:00
Jean-Philippe Andre ce08ed30c7 Ector: Protect all headers by EFL_BETA_API_SUPPORT
Those Ector APIs are not stable!
2016-01-06 14:26:25 +09:00
Cedric BAIL fc40f905eb ector: fix typo during computation of bounds_get. 2016-01-05 15:43:44 +09:00
Jean-Philippe Andre 9bd36f7c43 ector eo: fix indentation (tabs --> spaces)
Why? Why would an editor replace 8 spaces by a TAB?
WHYYYYYY?
2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 4bcea3eada Ector: Move cairo surface back to ector
The original plan was to have two different surfaces for GL and SW,
but this is probably not going to happen anytime soon. So, move
the implementation back to lib/ector. This avoid a file duplication.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 615b2442b7 Ector: Move drawhelper to static_libs
Rename a few things:
 - draw helper -> efl_draw
 - Ector_Rop -> Efl.Gfx.Render_Op
 - ECTOR_ bla bla -> DRAW_ bla bla (base pixel ops)
 - ector_memfill -> draw_memset32 (and invert arg order to match memset)

The main rasterizer file is now draw.h in static_libs/draw
This is a non functional change, simple code refactor.
2015-12-03 18:42:50 +09:00
Jean-Philippe Andre bad7911cd0 Ector: Use Ector Buffer inside SW and Cairo renderers
Ector Surface now inherits from Ector Buffer, and the current
two renderers (SW and Cairo SW) use Ector.Software.Buffer
implementations for pixel surfaces.

Basic pixel handling is merged and will allow easy extension
(color conversion, etc...).

Buffer classes are Mixins to be fully implemented by the final
class, such as: Ector.Software.Buffer, Ector.Software.Surface
or Ector.Cairo.Surface.

This is a large ugly commit. Sorry.
The code is quite a mess right now.
2015-12-03 18:42:50 +09:00
Subhransu Mohanty 38902ef291 efl: change efl_gfx_shape_cubic_to() api signature to follow other API (cairo and freetype).
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-30 15:59:49 -08:00
Subhransu Mohanty 055354050e ector: support fill rule for shape object.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 15:47:15 -08:00
Subhransu Mohanty 609f74994b efl: make path stroke related api as non virtual.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 15:42:29 -08:00
Cedric BAIL 9c3c402fd6 ector: don't use eo parent relationship for accessing the surface. 2015-11-19 14:52:10 +01:00
Chris Michael e04146f7de ector: Fix incorrect expression
Coverity reports that 'obj' is written twice with the same value
here., so fix this with a proper call to eo_do_super_ret

NB: Fixes Coverity CID1339786

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-17 10:06:55 -05:00
Chris Michael 41db18ffda ector: Add missing EINA_UNUSED for unused function parameter
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-11-17 08:58:58 -05:00
Cedric BAIL 1ed7ebaa0b ector: do get symbol at object construction time.
This make it part of the object initialization and will prevent the construction
of the object if the needed cairo function are not fund. So if Ector can create
the object, it can display them.
2015-11-12 15:53:01 -08:00
Srivardhan Hebbar f4bd830e22 ector: handling memory leak on error.
Summary:
Memory leak was caused by using the USE macro. So move the macro before
doing any allocation.

Signed-off-by: Srivardhan Hebbar <sri.hebbar@samsung.com>

Reviewers: cedric

Differential Revision: https://phab.enlightenment.org/D3183

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-20 14:01:15 -07:00
Tom Hacohen 7dc60520f6 Ector renderer: fix return value to be of the right type.
This function expects a pointer as a return value, not a bool.

@fix.
2015-10-09 12:37:28 +01:00
Tom Hacohen fa6fac8182 Ector renderer: fix return value to be of the right type.
This function expects a pointer as a return value, not a bool.

@fix.
2015-10-09 12:27:30 +01:00
Cedric BAIL 77a732eb8b ector: fix leak of dash info in Cairo backend.
CID 1316270
2015-10-04 18:50:48 +02:00
Cedric BAIL cb65e6b1fe ector: don't leak cairo context. 2015-10-01 17:18:54 -07:00
Cedric BAIL 6416997382 ector: make it possible to have an unique id per Ector_Renderer.
This is going to be used by an Eina_Hash to deduplicate the number of Ector_Renderer.
2015-09-21 22:50:34 +02:00
Cedric BAIL 4d75e359ff ector: fix cairo backend to properly multiply gradient color.
@fix
2015-09-21 22:50:34 +02:00
Cedric BAIL b5d2cef660 ector: don't forget to reset cairo matrix to identity. 2015-08-21 16:40:34 +02:00
Subhransu Mohanty 7b20430341 ector: add dash stroking in cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-12 10:26:07 +02:00
Subhransu Mohanty fa70a3a705 ector: fix memory leak in cairo backend when using shape.
Mixin destructor are not called, so we need to explicitely call it.

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-12 10:24:46 +02:00
Jean-Philippe Andre 028cf2c9a4 Ector: Another build fix for @mythri 2015-07-16 19:41:17 +09:00
Tom Hacohen 6efbfe227a Eo: Add a return value to eo_constructor().
From now on, constructors should return a value, usually the object
being worked on, or NULL (if the constructor failed). This can also
be used for implementing singletons, by just always returning the same
object from the constructor.

This is one of the final steps towards stabilizing Eo.

@feature
2015-05-20 13:03:24 +01:00
Daniel Kolesa 058a9c9d88 eolian: new syntax for params/values/keys
Instead of "@in type name;" we now use "@in name: type;". This change
is done because of consistency with the rest of Eolian; pretty much
every other part of Eolian syntax uses the latter form.

This is a big breaking change in the .eo format, so please update your
.eo files accordingly and compile Elementary together with the EFL.

@feature
2015-05-18 16:14:31 +01:00
Daniel Kolesa ed0988a22d eolian: change all EFL .eo files to use new syntax for properties 2015-05-07 16:36:58 +01:00
Jean-Philippe Andre 5bc153c6fb Ector: Fix clang warning
Invalid type used for field and implicit conversions
2015-04-21 20:11:02 +09:00
Tom Hacohen 1807adf70b Ector: remove use of #warning directive as TODO.
There's already a fixme in code, and an error output at runtime.
As discussed on the ML, using #warning this way is bad.
2015-04-20 15:00:13 +01:00
Subhransu Mohanty eb7af88ca4 ector: don't apply transformation on clips in Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-10 12:05:04 +02:00
Subhransu Mohanty 85312d56c6 ector: update cairo enum definitions and fix gradient spread issue.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:38:19 +02:00
Cedric BAIL 41a75f0b07 efl: follow Efl.VG naming by using bounds_get as an API name. 2015-04-03 16:38:08 +02:00
Cedric BAIL 65fb92831b ector: there is no need for bounds get to return a Eina_Bool. 2015-04-03 16:38:06 +02:00
Cedric BAIL 510a3e42e8 ector: implements bounds_get for gradients in Cairo backend. 2015-04-03 16:37:55 +02:00
Cedric BAIL 2d9bccbfdc ector: implements bounds_get for Ector_Renderer_Cairo_Shape. 2015-04-03 16:34:30 +02:00
Cedric BAIL 5310a3ea9c ector: remove some warning from the Cairo backend. 2015-04-03 16:34:25 +02:00
Subhransu Mohanty 6c64f2db74 ector: fix transform issue in cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:19 +02:00
Subhransu Mohanty b20872bf68 ector: add cairo_save() and cairo_restore() to fix the transformation issue.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:16 +02:00
Subhransu Mohanty 1f62465916 ector: add mul_col feature in Cairo backend and fixed color handling issue.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:10 +02:00
Subhransu Mohanty a500249b69 ector: add clipping support for Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:07 +02:00
Subhransu Mohanty 26d8641381 ector: gradient now uses spread while filling a shape for Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:06 +02:00
Subhransu Mohanty e22752d1eb ector: use line width, join and cap style while stoking the path for Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:05 +02:00
Subhransu Mohanty f1e48f8de8 ector: don't draw the gradient if its used as fill object in Cairo backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:34:03 +02:00
Cedric BAIL 5e5b3750c7 ector: add warning if library is not found.
We use the system configuration to find it. So if it doesn't find it, adjust
your system.
2015-04-03 16:33:48 +02:00
Cedric BAIL 728fa26409 ector: use the new infrastructure to detect changed path for Cairo backend. 2015-04-03 16:33:40 +02:00
Cedric BAIL de08a3bc04 ector: add reference point to define (0, 0) and don't repeat the same value everywhere. 2015-04-03 16:33:19 +02:00
Cedric BAIL 5613ca50ae ector: remember last position and translate to Ector_Renderer origin position. 2015-04-03 16:33:07 +02:00
Cedric BAIL cb1226ad41 ector: set the transformation matrix before any translation ! 2015-04-03 16:33:04 +02:00
Cedric BAIL f5fe46ec3c ector: cairo require an identity matrix to be set instead of NULL.
NULL mean crash :-D
2015-04-03 16:33:00 +02:00
Cedric BAIL 8e05c58f2b ector: use shift instead of divide when possible. 2015-04-03 16:31:50 +02:00
Cedric BAIL e99774946c ector: implementation of some common code in Ector.Renderer.Cairo.Base.
This require to make some class mixin instead of interface or abstract. So a lot
of class renaming is also necessary here.
2015-04-03 16:31:44 +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
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 df43ec9487 ector: fix constructor/destructor of Ector_Cairo backend. 2015-04-03 16:30:48 +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 ac8d923090 efl: add path operation to Efl.Gfx.Shape. 2015-04-03 16:23:28 +02:00
Cedric BAIL c000ee8099 efl: rename namespace Graphics to Gfx. 2015-04-03 16:23:16 +02:00
Cedric BAIL ba47b47eb2 efl: make path a property actually. 2015-04-03 16:23:10 +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 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 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 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 62459acda7 ector: start the implementation of a Cairo backend. 2015-04-03 16:19:11 +02:00