Commit Graph

78 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 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 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
Tom Hacohen 8706d03b43 Change the EFL according to the renaming of the eo_add() current object. 2016-03-15 15:25:54 +00: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 ce08ed30c7 Ector: Protect all headers by EFL_BETA_API_SUPPORT
Those Ector APIs are not stable!
2016-01-06 14:26:25 +09:00
Jean-Philippe Andre e3a7f657d9 ector: add Ector.GL.Buffer.* support. 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
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 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 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 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 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 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 c57cf86d6f ector: fix naming and forcing this inline function to be static. 2015-08-19 16:12:29 +02:00