Commit Graph

378 Commits

Author SHA1 Message Date
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
Subhransu Mohanty 2766ce57ce ector: refactored software drawing backend to use composition function.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:07:36 +02:00
Subhransu Mohanty 48b558a997 ector: add alpha field to gradient data.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:05:58 +02:00
Subhransu Mohanty e9896ee363 ector: add dash stroking feature in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:04:46 +02:00
Subhransu Mohanty 8b075c6534 ector: refactored shape generation in software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 15:02:53 +02:00
Subhransu Mohanty 230b75acab ector: remove wrong implementation of singleton in software_surface class.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 14:58:38 +02:00
Subhransu Mohanty fcb2605f4f ector: fix memory leak in software 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-19 14:57:12 +02:00
Subhransu Mohanty f1a4f461c2 ector: add bounding box info in RLE data for software backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 14:56:29 +02:00
Subhransu Mohanty 146f3c52b5 ector: now software rasterizer allocates memory on stack to work in multi threading env.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-08-19 14:56:11 +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
Tom Hacohen c25b2bcc3a Migrate more eo files to use Eina.Rectangle. 2015-08-04 10:57:14 +01:00
Jean-Philippe Andre c73d140365 Ectore: And more build fixes for @mythri! :) 2015-07-16 20:02:47 +09:00
Jean-Philippe Andre 028cf2c9a4 Ector: Another build fix for @mythri 2015-07-16 19:41:17 +09:00
Jean-Philippe Andre 83f4ee89d0 Ector: Fix potential build errors with double typedef
Depending on the compiler and its version, having twice a
typedef on the same name may lead to a build failure.

Thanks @mythri for the report.
2015-07-16 18:22:55 +09:00
Subhransu Mohanty 4f2ad23585 ector/software: Update the PIXEL_BIT to 8 for better quality. 2015-06-25 19:17:51 +09:00
Daniel Kolesa 7d40ec0ad9 ector,ecore,eio,emotion: convert some docs 2015-06-10 14:35:11 +01:00
Daniel Kolesa 917a2bcab5 ector: always initialize the array contents even without fetchfunc
Also use a static array instead of a VLA as we know the size at compile time.

Fixes CID 1294210.

@fix
2015-06-09 15:12:07 +01: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 841403e415 Ector: More clang silencing 2015-04-21 20:40:27 +09:00
Jean-Philippe Andre 45b15037ef Ector: Fix (probably valid) clang warning
This time it looks like this is a valid warning.
if (abs(double) <= 0.00001f) might too often be true since abs() returns
an int.
2015-04-21 20:11:02 +09: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
Chris Michael d3d909bf9e ector: Fix Coverity CID1293003
Summary: This fixes an issue of coverity reporting Explicit null
dereference as fetchfunc is defaulted to NULL, yet no check is made
later before calling it.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-12 21:13:18 -04: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
Cedric BAIL 6a52271a86 ector: make sure that all of Ector is a beta API. 2015-04-03 16:57:55 +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
Subhransu Mohanty c8764e9279 ector: fix memory leak in Ector.Renderer.Generic.Base class
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:38:18 +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 7bca6c00f4 ector: fix the return type of ector_renderer_bounds_get. 2015-04-03 16:34:29 +02:00
Cedric BAIL 5310a3ea9c ector: remove some warning from the Cairo backend. 2015-04-03 16:34:25 +02:00
Cedric BAIL 39f7ce192c ector: implement surface size property. 2015-04-03 16:34:24 +02:00
Cedric BAIL 0d95e53932 ector: remove useless function for now. 2015-04-03 16:34:23 +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 40b9eea3cb ector: expose more useful immediate rendering functions to the outside world. 2015-04-03 16:33:57 +02:00
Subhransu Sekhar Mohanty 0ec75ca05f ector: fix coding style of freetype backend. 2015-04-03 16:33:50 +02:00
Subhransu Sekhar Mohanty 1d0ce5bc05 ector: fix ector_color_multiply() function 2015-04-03 16:33:49 +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
Subhransu Sekhar Mohanty 9f88fd068c ector: add handling of EFL_GFX_PATH_CHANGED signal to Freetype backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:33:44 +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 f5f48a8265 ector: correctly handle case with NULL being set for efl_gfx_shape_stroke_dash_set. 2015-04-03 16:33:37 +02:00
Subhransu Sekhar Mohanty 5753b43812 ector: fix pre multiplied color issue with FreeType backend.
Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
2015-04-03 16:33:29 +02:00
Cedric BAIL 0e18880efe ector: fix forgotten return value. 2015-04-03 16:33:26 +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
Subhransu Sekhar Mohanty 10dca9f68e ector : add path cliping feature in FreeType software backend. 2015-04-03 16:33:05 +02:00
Cedric BAIL cb1226ad41 ector: set the transformation matrix before any translation ! 2015-04-03 16:33:04 +02:00
Jose Gonzalez 472f3a72ff ector: correct implementation for color multiplication. 2015-04-03 16:33:01 +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
Subhransu Sekhar Mohanty 891ec14585 ector: add software backend using FreeType rasterizer. 2015-04-03 16:31:45 +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 bc016aa277 ector: implement a simple virtual to prepare the mask in Ector.Renderer.Generic.Base. 2015-04-03 16:31:43 +02:00
Cedric BAIL af11e81a51 ector: remove useless constructor. 2015-04-03 16:31:40 +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 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 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 32de8d9e5f efl: move Efl.Gfx.Gradient_* to Efl.Gfx.Gradient.* much nicer for bindings. 2015-04-03 16:30:35 +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 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 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 6f3fd4ac81 ector: add linear and radial gradial renderer to Ector. 2015-04-03 16:15:39 +02:00
Cedric BAIL f701e1f099 ector: add top gradient renderer. 2015-04-03 16:15:04 +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