Commit Graph

362 Commits

Author SHA1 Message Date
Jean-Philippe Andre e79f27ae0c efl: Remove manual definitions of event "changed"
Honestly I can't see why gfx & gfx.path "changed" need a manual
definition, instead of relying on EO. If the API needs to be
internal only, then EO needs to handle internal APIs. In this
case, the event was exposed as a C API but not a EO... why?
2017-04-18 11:07:46 +09:00
Jean-Philippe Andre 2ef8d6f39a evas filters: Refactor ector and gfx filters A LOT
Alright, so this is a massive patch that is the result of
trying to get rid of unused or poorly implemented classes in
ector. Originally ector was meant to support VG but extend to
things like filters as well. At the moment, ector's design
makes it quite hard to plug in the filters.

For now I think it's easier to implement the GL support for
the filters directly in the engine, where I hope to interfere
as little as possible.

This massive patch keeps only the required minimum to support
a versatile gl buffer that can be mapped, drawn or rendered to (FBO).
It's extremely inefficient as it relies on glReadPixels and lots
of texture uploads, as well as conversions between ARGB and Alpha.

Another type of GL buffer is a wrap around an existing GL image,
but that one is read-only (map or draw: no write map, no FBO).

No, all the filters run fine, and the high-level implementation
(evas_filters.c) does not need to know whether the underlying engine
is SW or GL. One problem though appears with the blending or blurring
of some Alpha buffers, the colors are wrong.

This patch removes more lines than it adds so it must be good ;)
2017-04-14 11:26:43 +09:00
Gustavo Sverzut Barbieri 4792069634 cmake: fix make-clean as add_custom_command() deletes output files.
there is no way to mark output file as "precious", then cmake's
suggestion is to use add_custom_target() instead.

However that will always execute, so our generator script needs to be
smarter and only touch stuff when actually needed.
2017-01-27 13:42:29 -02:00
Gustavo Sverzut Barbieri 525d1e0629 cmake: add EFL_SUPPORT_LIB() and simplify/speedup its usage.
generate a static library for src/static_libs and use that as
LIBRARIES for the actual library, for those such as rg_etc that are
used multiple times will even speed up the final build by compiling
only once.

Although not used, they can be made into shared libraries that would
go inside /usr/lib/efl/support/v-1.19/libname.so
2017-01-27 12:52:14 -02:00
Gustavo Sverzut Barbieri 28960d7851 cmake: add ector. 2017-01-27 10:56:02 -02:00
Daniel Kolesa cb3f8304e0 eolian: change eo file syntax @virtual_pure -> @pure_virtual 2017-01-13 15:44:09 +01:00
Cedric BAIL 8f1c071d6a eina: rename EINA_{FLT,DBL}_CMP to EINA_{FLT,DBL}_EQ. 2017-01-06 15:58:46 -08:00
Daniel Kolesa 5d2bb86404 ector: use new property impl syntax 2016-12-27 16:12:25 +01:00
Daniel Kolesa 9056f25b54 efl: move some eo files to new property impl syntax 2016-12-27 16:06:19 +01:00
Derek Foreman fd5a0f6ff9 headers: update copyright 2016-12-20 10:31:26 -06:00
Chris Michael 8ce2d99150 ector: remove float comparison warnings
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2016-12-20 10:59:55 -05:00
Derek Foreman 98ef74eeba ector_gl: Add some EGL typedefs to internal header
This lets us include EGL/egl.h in gl_common.
2016-12-19 15:52:57 -06:00
Hermet Park e0da83ce56 efl interface: introduce efl_gfx_path mixin.
As we discussed, redesigned efl_gfx_shape mixin.
Split path properties/methods from the shape so that other classes benefit from the path.
2016-11-23 17:36:57 +09:00
Subhransu Mohanty 355a4e3830 evas/vg: fix handling of stroke width in cairo and native backend
T3351

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-11-15 15:21:17 -08:00
Stefan Schmidt dbe01dd2b9 docs: ector: fill gaps in ector eo file documentation 2016-11-15 17:45:32 +01:00
Stefan Schmidt 9638a114f0 docs: ector_software: fill gaps in ector software backend eo file documentation 2016-11-15 17:45:31 +01:00
Stefan Schmidt 9971a789a0 docs: ector_gl: fill gaps in ector gl backend eo file documentation 2016-11-15 17:45:31 +01:00
Stefan Schmidt 03176e578a docs: ector_cairo: fill gaps in ector cairo backend eo file documentation 2016-11-15 17:45:31 +01:00
Subhransu Mohanty 7c51b3de00 ector: update the render api eo signeture 2016-11-07 16:54:09 +09:00
Daniel Kolesa 792c1f2308 ector_renderer_gl: remove pointer 2016-11-03 17:00:28 +01:00
Daniel Kolesa 4762516beb ector_cairo_surface: remove pointer 2016-11-03 16:59:08 +01:00
Daniel Kolesa 1b4cea9b08 ector_gl_surface: remove pointers 2016-11-03 16:58:41 +01:00
Daniel Kolesa 00abb62e53 ector_renderer: remove pointers 2016-11-03 16:57:39 +01:00
Daniel Kolesa bc8601690d ector_buffer: remove pointers 2016-11-03 16:57:00 +01:00
Stefan Schmidt 4a66bd14b7 docs: document all missing type defines in our eo files
With this commit we reach 100% alias doc coverage for our eo files.
2016-11-03 11:57:40 +01:00
Stefan Schmidt ef814db490 docs: harmonise use of enum sentinel description in eo files 2016-10-25 16:08:24 +02:00
Tom Hacohen 9c779dca90 Rename efl_self to efl_added
It has been discussed on the ML (thread: "[RFC] rename efl_self") and
IRC, and has been decided we should rename it to this in order to avoid
confusion with the already established meaning of self which is very
similar to what we were using it for, but didn't have complete overlap.

Kudos to Marcel Hollerbach for initiating the discussion and
fighting for it until he convinced a significant mass. :)

This commit breaks API, and depending on compiler potentially ABI.

@feature
2016-09-05 16:59:56 +01:00
Vitor Sousa f02ff462e7 efl callbacks: update some events calls to no longer trigger legacy callbacks 2016-08-30 13:59:59 -03:00
Tom Hacohen d5e321466e Efl object: Rename Eo_Event -> Efl_Event.
This is the last step of the Eo renaming efforts.
2016-08-30 13:34:10 +01:00
Vitor Sousa 8356b16a49 Efl Object: remove legacy callback calls from event_callback_call
Efl.Object.event_callback_call no longer calls legacy smart callbacks;
calling only event callbacks registered with the given event description
pointer.

Create the method Efl.Object.event_callback_legacy_call to inherit the old
behavior from Efl.Object.event_callback_call, calling both Efl.Object events
and legacy smart callbacks.

Update all other files accordingly in order to still supply legacy
callbacks while they are necessary.
2016-08-26 15:45:07 -03:00
Tom Hacohen e65aae994e Eo: Finish the renaming of Eo to the EFL.
This renames all the rest of the API to the EFL namespace except for
Eo_Event that will follow soon.

Obviously breaks both API and ABI.
2016-08-15 15:07:42 +01:00
Tom Hacohen c662934be8 Change the EFL to follow the new Eo rename. 2016-08-11 17:04:43 +01:00
Jean-Philippe Andre 28c917836c efl: Cleanup some code (return values)
This removes some useless code in various places, where the
switch from eo_do() to standard function call was not properly
refactored.

This changes:

type ret = 0;
ret = my_eo_function();
return ret;

To:

return my_eo_function();
2016-08-05 10:32:30 +09:00
Cedric BAIL dd1d3f0d2d autotools: since it has been broken for some times and nobody noticed, let's remove per directory support. 2016-08-01 13:36:47 -07:00
Jean-Philippe Andre f18747e6dd Evas GL: Use [u]int64_t directly in all APIs
This removes the need for khronos_[u]int64_t as well as the special
typdef EvasGL[u]int64.

Hopefully this should work on all platforms (note: [u]int64_t is
used in Eina APIs, so it is already required for EFL apps).

Fixes T3200
2016-07-18 15:09:19 +09:00
Carsten Haitzler f4568beab6 ecotr gl - fix leak found by coverity
fix CID 1347412
2016-07-08 17:08:37 +09:00
Stefan Schmidt 9f43ef3fd9 ector: add basic description to renderer mixins 2016-06-30 15:17:58 +02:00
Stefan Schmidt dcb7751f35 ector: further document gl buffer base class 2016-06-30 15:17:58 +02:00
Tom Hacohen 6202cc7485 Adjust the code according to the eo event stop changes.
This was changed in the previous commit.
2016-06-20 18:02:00 +01:00
Daniel Kolesa a7c6086c42 eolian: enable inheritance checks and fix EFL to build with them
Somehow, there was code in the tree that apparently isn't tested at all, even
once - if it was, the eo.c logic that performs inheritance checks would be
triggered. I don't know how this could have happened (actually I do, it's
Cedric's fault and he should be publicly shamed for it) but these checks
make sure this will never happen again. But since the code itself appears
to be untested, I don't know if there isn't any other brokenness in it.
But that's beyond the scope of this change, so for now, let's make sure
all our inheritance is at least formally correct.

Also, enable eo_interface.eo generated code in Eo itself so that Eo.Interface
can be used when inheriting.

@fix
2016-06-15 16:37:15 +01:00
Carsten Haitzler e57d2a5106 more sh instead of dash 2016-06-15 14:35:45 +09:00
Carsten Haitzler fa19b37458 shader gen - make this use plain sh not bash for portability
this should fix T3793
2016-06-15 14:33:56 +09:00
Cedric BAIL 2ea85a2075 ector: variable in _SOURCES do not work.
This fix the left over etc .deps during make distcheck.
2016-06-03 11:10:27 -07:00
Daniel Kolesa b1946ca5d6 eolian: utilize the new void_ptr builtin across eo files
This lets me narrow down the remaining cases of pointers across the EFL.
The void pointers will later need to be reevaluated on per-case basis and
replaced appropriately where possible/feasible.
2016-06-02 13:00:26 +01:00
Stefan Schmidt 9fdbbfa7a6 build: keep our CLEANFILES tidy to avoid argument list too long during clean
This is a new incarnation of 0a03e63350. Our list
has grown to big again as people insist of adding the generated eolian files to
DISTCLEAN while BUILT_SOURCES will get removed durign the clean anyway.

Adding this file list twice will just make the argument list for rm to long to
work.
2016-06-01 17:51:56 +02:00
Daniel Kolesa 6fc482aa9b eolian: utilize the new builtin string type across eo files 2016-05-31 16:05:43 +01:00
Jean Guyomarc'h 37adb060dd ector: fix redefinition of type and bizarre typedef
Maybe there is a trick here I am not aware of, but
redefining a type as itself seems a mistake to me.
This raised a warning anyway. Now it's gone.
2016-05-28 22:17:22 +02:00
Jean Guyomarc'h 3a63eacbcb ector: fix redefinition of types 2016-05-28 22:17:22 +02:00
Daniel Kolesa e984e5a11a eolian: remove pointers from complex and class types
Complex types (i.e. list, array, hash, accessor etc.) now do not require
pointers with them anymore (the pointer is implied) and the same goes for
class handles. Eolian now explicitly disallows creating pointers to these
as well. This is the first part of the work to remove pointers from Eolian
completely, with the goal of simplifying the DSL (higher level) and therefore
making it easier for bindings (as well as easier API usage).

@feature
2016-05-23 15:58:33 +01:00
Tom Hacohen 96c4c88070 Efl: Remove "legacy_prefix: null;" as it's now the default. 2016-05-12 17:27:35 +01:00
Daniel Kolesa 7e94eb22b4 eolian: mark pure virtual funcs outside of implements
This is a better syntax and should've been like this in the first place.
2016-05-12 16:15:24 +01:00
Tom Hacohen 6cacef2503 Eo abstract class: Rename to Eo.Class. 2016-05-12 14:33:40 +01:00
Tom Hacohen 485ce14889 Ector cairo software: Fix namespacing to use . and not _. 2016-05-12 12:27:54 +01:00
Tom Hacohen fdf23b2dac Efl vg/ector: Fix namespacing to use . and not _. 2016-05-11 13:21:29 +01:00
Tom Hacohen 28a2d34ae2 Ector generic: Remove .Generic and .Base (hack no longer needed). 2016-05-11 12:57:55 +01:00
Tom Hacohen 1c0ec6788f Ector renderer cairo: Remove the no longer needed .Base hack. 2016-05-11 12:57:55 +01:00
Tom Hacohen 9f15b9fbe7 Ector renderer gl: Remove the no longer needed .Base hack. 2016-05-11 12:57:55 +01:00
Tom Hacohen 718033886a Ector renderer software: Remove the no longer needed .Base hack. 2016-05-11 12:57:55 +01:00
Tom Hacohen b0cd0a3b4b Efl gfx gradient: Remove the no longer needed .Base hack. 2016-05-10 16:30:18 +01:00
Stefan Schmidt 6e19e4f46d docs: ector: improve docs for the abstract renderer base class
Not everything is docuement here yet. Might need some help from people more
familiar with ector.
2016-04-22 12:52:42 +02:00
Stefan Schmidt c2823cfb18 docs: ector: document generic surface mixin
Leave out the params and returns marked with a FIXME.
2016-04-22 10:53:09 +02:00
Stefan Schmidt 6ece03e925 docs: ector: fill gaps in the generic buffer documentation
Fill various gaps to make this mixin fully documented.
2016-04-22 10:38:36 +02:00
Stefan Schmidt db0858823e docs: ector: document ector cairo surface classes
For both the cairo and the cairo software surfaces.
2016-04-22 09:46:40 +02:00
Cedric BAIL aa614fa023 ector: rg_etc is always needed for color conversion. 2016-04-18 14:43:48 -07:00
Cedric BAIL 847fb931c2 ector: make it possible to build the library alone. 2016-04-14 16:07:32 -07:00
Tom Hacohen 2583246997 Ector: add ector_types.eot for ector type definitions.
This fixes the GLShort duplicate declaration.
2016-03-23 15:00:16 +00:00
Tom Hacohen 8706d03b43 Change the EFL according to the renaming of the eo_add() current object. 2016-03-15 15:25:54 +00:00
Jean-Philippe Andre e9508ea80e Efl.Gfx.Fill: Remove fill_spread
It's not actually implemented anywhere. There's a flag that's
never read. Proper support would require quite some work.

Once we actually implement fill_spread support, we can bring
the API back without breaking compatibility.
2016-03-15 11:11:59 +09:00
Vincent Torri 1d6d7bf60f Ector: try to load libcairo-2.dll first on Windows
Summary: win-builds provide libcairo-2.dll and not libcairo.dlL

Test Plan: ector test progral

Reviewers: cedric, jpeg

Differential Revision: https://phab.enlightenment.org/D3787
2016-03-14 13:43:37 +09:00
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
Jean-Philippe Andre 7940a6d9a5 ector gl: Use proper PRIx64 to print a uint64_t
Thanks @vtorri for the report.
Closes D3698
2016-02-17 16:12:32 +09:00
Tom Hacohen cbca4e3c12 Ector renderer generic: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-16 14:42:06 +00:00
Tom Hacohen 4bfcc8a347 Eolian eina_types: Add Eina.Matrix3 and start using it. 2016-02-12 14:41:40 +00:00
Tom Hacohen 11cb01008b Ector gl renderer: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-12 14:34:10 +00:00
Tom Hacohen 08ca3a5623 Ector gl surface: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-12 14:29:27 +00:00
Tom Hacohen b69da2f189 Ector generic surface: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-12 14:29:27 +00:00
Tom Hacohen 24bf636a3e Ector generic buffer: Fix Eolian warnings.
This includes either migrating types to eolian, fixing namespace or
importing extra types.
2016-02-12 14:29: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 3fc6e48c8a Ector: Fix warning on Windows (use PRIx64 to print uint64_t)
Thanks @vtorri for pointing this out.
2016-01-20 19:57:22 +09:00
Vincent Torri 3117b8ca5a win32: Fix compilation due to recent changes in Evil
Summary:
dlfcn.h is not available anymore on Windows, Evil provides all the
necessary declarations.

Reviewers: cedric, jpeg

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

@fix
2016-01-18 13:54:52 +09:00
Jean-Philippe Andre 80acb7fbe0 Ector GL: Remove duplicated functions (eo) 2016-01-13 18:51:20 +09:00
Cedric BAIL c451d5885b efl: move Ector_Color to be defined in Efl.Gfx as it makes more sense.
This create some possible naming clash and is why I come up with
efl_gfx_color*_type_set functions. We will have to think about this more
carefully as it makes sense to now pass this colors directly to our color
API. Ideally the default 8 bits interface would become just a convenience
wrapper around the more complex possibility.
2016-01-07 16:27:57 -08:00
Jean-Philippe Andre 998bc2d42b Ector GL: Fix warning with clang
Also mark API struct as initialized.
2016-01-06 14:33:26 +09: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
se.osadchy 996d17bcc5 evas: Update Ector_Color structure.
Summary: Add a field at the end of the structure for defining the color encoding.

Reviewers: cedric, Hermet, raster, jpeg

Reviewed By: jpeg

Subscribers: jpeg

Differential Revision: https://phab.enlightenment.org/D3530
2016-01-06 13:50:34 +09:00
Jean-Philippe Andre dc4790e08b Ector GL: Add skeletton for Evas.Ector.GL.Image.Buffer
This is an ector buffer backed by an existing Evas_GL_Image
2016-01-05 15:43:44 +09:00
Cedric BAIL fc40f905eb ector: fix typo during computation of bounds_get. 2016-01-05 15:43:44 +09:00
Jean-Philippe Andre e3a7f657d9 ector: add Ector.GL.Buffer.* support. 2016-01-05 15:43:44 +09:00
Cedric BAIL 116fe3c65c ector: initial implementation of our own Ector GL backend. 2016-01-05 15:43:44 +09:00
Jean-Philippe Andre 1adc3cd915 ector: add drawable flag to buffers
This indicates that a buffer can be used as a source to draw pixels.
Can't they all do that? Well, not exactly. A CPU buffer can't be drawn
by the GPU... not directly at least. That's what this flag is for.
2016-01-05 15:43:43 +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 1f25b523b4 ector buffer: add COW access mode
In case you map a buffer once for read-only and once for write,
we can generate a temporary copy and return that instead. This
buffer will be copied back to the original surface once the COW
surface is unmapped.
2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 5e075c193c ector: on-the-fly convert sw buffers during map()
Also use map to generate spans.
This should simplify some filters code, making things work,
albeit inefficiently. At least they should work.

Fix doc too.
2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 9121e503a3 ector: track maps in software buffer 2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 7a8879ba8b ector: add engine-specific evas image buffer wrapper
Since Evas still relies entirely on Image_Entry and Evas_GL_Image,
we will need an engine-specific wrapper object creating a Buffer
around an existing cached image.

Currently only SW support is implemented. GL will be more fun to
do (with glReadPixels and whatnot).
2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 85f23d96e7 ector: add typedef Ector_Buffer 2016-01-05 15:43:43 +09:00
Jean-Philippe Andre 952f27507d ector: remove offset from Ector.Buffer.{map,unmap}
It just makes things a bit more complicated and doesn't correspond
to a classic "map" operation anyways.

Also return void* instead of uint8_t*. This is more correct and
avoid extra casts.
2016-01-05 15:43:43 +09:00
Cedric BAIL e3238c5620 ector: add an abstraction to get GL function. 2016-01-05 15:43:43 +09:00
se.osadchy 4ecb51025b evas: factorize of data structure with evas_color and ector.
Summary: Move data structure and functionality to ector_color from evas_color.

Reviewers: Hermet, raster, cedric

Reviewed By: cedric

Subscribers: jpeg

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2016-01-04 12:17:15 -08:00
Jean-Philippe Andre f88333326f Ector: Fix Windows build (missed in previous patch) 2015-12-03 20:53:20 +09:00
Jean-Philippe Andre c09199f0e0 Ector: use uint32_t instead of uint
This fixes the build for Windows. Thanks @vtorri for the report.

I'm not using "unsigned int" as uint was mostly used like DATA32,
ie. color data (one pixel color or a pixel buffer).
2015-12-03 20:28:27 +09:00
Jean-Philippe Andre dc621e2316 Ector: Kill compilation warnings
Remove unimplemented function (no test case yet).
Convert #warning into comments.
2015-12-03 18:42:50 +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 52ec3d2d7e Ector: Rename C files to match their EO counterparts 2015-12-03 18:42:50 +09:00
Jean-Philippe Andre 33cd26a4b2 Ector: Another minor code cleanup
Remove DATA8, DATA16, DATA32
Remove empty data structure
Remove unnecessary typedef
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
Jean-Philippe Andre 0cf5719e52 Ector: Implement pixel buffer support
The objective of this patch is to propose a standardized
format for pixel buffers to use within Ector and Evas.

The basic EO API provided here is not meant to be the
fastest path for all operations, simply the most convenient
to generalize. Performance will be achieved by implementing
(or porting) custom draw functions.

This implements support for:
- Generic pixel buffers
- Generic buffer renderer to draw images with ector
- Software engine pixel buffers, ie. malloc buffers
- Software buffer renderer

Cairo support has not been implemented yet.

The only renderer is still extremely limited, as it does not
support Fill modes, Scaling, etc... yet.

Not a single line from this patch has been tested yet.
It compiles. That's pretty damn good for a start!

@feature
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
Stefan Schmidt f356af17c9 ector: use void to force empty function parameters
We have to use void in a function declaration if we want no function
parameters. Using just empty parenthesis means the function takes an
unspecified number of parameters.

We had it correct for most declarations and this series fixes it for
the rest.
2015-11-26 17:24:37 +01: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
Subhransu Mohanty a6e168675d ector: fix the rounding issue when applying transformation to shape data in freetype backend.
@fix

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-11-24 14:37:33 -08:00
Jean-Philippe Andre ec92726ca9 Ector: Simplify confusing code
The base class data was already stored, no need to figure it out again
2015-11-20 14:14:28 +09:00
Cedric BAIL b2202a5064 ector: don't use parent relationship to get access to the surface for freetype backend. 2015-11-19 14:52:10 +01:00
Cedric BAIL 9c3c402fd6 ector: don't use eo parent relationship for accessing the surface. 2015-11-19 14:52:10 +01:00
Cedric BAIL 4f0ef04788 ector: starting decoralating surface and parent by adding a property to access the surface independently.
NOTE: It would be nice to be able to protect independently the setter from the getter in eolian.
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 14a1954c6f ector: disable NEON build.
There is more problem with this code, better disable it for now.

@fix

T2851
2015-11-17 10:33:09 +01: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
Cedric BAIL 599141a96b ector: move freetype rasterizer library to itw own directory. 2015-11-09 10:42:35 -08:00
Cedric BAIL 12d8191cb5 ector: remove inline on function pointer. 2015-11-09 10:42:35 -08:00
Cedric BAIL dcc0894049 ector: cleanup code convention of the gradient code. 2015-11-09 10:42:35 -08:00
Cedric BAIL 9023f6d28c ector: simplify code by avoiding unecessary intermediate function. 2015-11-09 10:42:35 -08:00
Cedric BAIL ef975a9fd2 ector: follow function naming convention. 2015-11-09 10:42:35 -08:00
Vivek Ellur 96f936e6d3 ector: fix null pointer dereference issue
Summary:
Fix Coverity CID1293003

Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com>

Reviewers: cedric

Subscribers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-31 02:12:06 +01: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
Srivardhan Hebbar d541d9281e ector: removing useless assignement.
Summary:
Null assignment has no effect in the caller function. So removed it.

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

Reviewers: cedric

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

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-10-19 11:17:25 -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
Tom Hacohen be87d3bf1d Ector software gradient: Fix cast from integer to pointer of wrong type.
When casting pointer<->int, always use uintptr_t, not just int.

@fix
2015-09-22 15:45:11 +01: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 b3dc08bf8b ector: cleanup default backend drawer. 2015-09-21 22:50:34 +02:00
Subhransu Mohanty 576331955e ector: convert to freetype co-ordinate before storing path data in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-09-21 22:50:33 +02:00
Stefan Schmidt 7a6a67cc7f ector: software: remove executable bit from source files
This really shows what parts are developed under windows. While it does not
matter where you develop please make sure that you do not introduce CRLF
endings and normal source files as executables.
2015-09-04 14:54:07 +02:00
Stefan Schmidt ef207ebbd8 ector: software: convert dos to unix line endings 2015-09-04 14:54:07 +02:00
Cedric BAIL b5d2cef660 ector: don't forget to reset cairo matrix to identity. 2015-08-21 16:40:34 +02:00
Cedric BAIL c57cf86d6f ector: fix naming and forcing this inline function to be static. 2015-08-19 16:12:29 +02:00
Subhransu Mohanty 35ae391d64 ector: remove depricated file ector_blend_private.h
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:12:45 +02:00
Subhransu Mohanty f3201e9ab9 ector: add SSE2 support for gradient filling in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:11:58 +02:00
Subhransu Mohanty bed8325e3c ector: add NEON support for composition function in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:11:06 +02:00
Subhransu Mohanty 74dcf5ed15 ector: add sse2 support for composition function in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:09:16 +02:00