Commit Graph

262 Commits

Author SHA1 Message Date
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