Commit Graph

4146 Commits

Author SHA1 Message Date
Shinwoo Kim c3c9fed7d9 evas_object_image: save EVAS_IMAGE_CONTENT_HINT_DYNAMIC image
Summary:
evas_gl_common_image_content_hint_set makes RGBA_Image NULL if content hint
is EVAS_IMAGE_CONTENT_HINT_DYNAMIC with 'sec_tbm_surface' and 'egl_tbm_ext'.

efl_file_save(_efl_canvas_image_internal_efl_file_save_save) does not work
in this case because ENFN->image_data_direct_get returns FALSE.

This patch makes ENFN->image_data_direct_get work but you need to free its
returned data after using it.

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8516
2019-05-02 20:50:24 +09:00
Hosang Kim c006589607 evas_events: fix grab count does not become 0 with proxy object.
Summary:
1. src_event_in should not be initialized when grabbed object exists.

2. when object of pointer grab is deleted and if object has proxy,
   proxy object of pointer grab should be deleted together.

Reviewers: Hermet

Reviewed By: Hermet

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8698
2019-04-26 13:24:01 +09:00
Ali Alzyod 555ac0a452 evas: change way of searching for Escape strings/values in textblock
Instead of using old way for linear search for Escape Strings or Escape values, we will sort these values and string in compile time then binary search them.

In simple words:
Instead of having one array with pair of {escapeChar,escapeValue} and linear search it.
We will have two arrays with pair of {escapeChar,escapeValue}, one with escapeChar Sorted, and one with escapeValue sorted.
and we will use one of the array to binary search escape chars, and use the other to binary search escape values,

1- This will increase the speed for the search a lot for both Escape characters and Escape values.
2- Make code more easy to understand and trace
3- This will also fix bug for

```
int value;
const char * value = evas_textblock_string_escape_get("",&value)
//because of some unhanded case in previous code, this will return "&qout;" , which is first element in predefined escape character array
```

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8610
2019-04-25 14:04:05 +02:00
Jaehyun Cho 1bdb278f5c efl_canvas_animation_player: fix to apply animation when player starts
Previously, animation was not applied immediately when player starts
animation because elapsed time is 0.
This caused flickering object if animation begins with alpha 0 because
the alpha 0 animation is not applied immediately.

Now, animation is applied immediately when player start animation.
2019-04-24 14:44:50 +09:00
Marcel Hollerbach bb6c7c6782 meson: make it possible to link our engines against evas
Summary:
it FINALLY happend! With this python bindings should be able to work
again with a meson build, you can also enable b_lundef right now. And it
appears to work, with this we can also get another step closer to a
windows build.
Depends on D8669

Reviewers: zmike, stefan_schmidt, cedric, vtorri

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8670
2019-04-19 14:39:31 -04:00
Marcel Hollerbach c8c374ef48 meson: move build definitions of software_generic to libevas
Summary:
with this we don't have any static module anymore in the engine
directory. This means either *all* modules in the enignes directory are
static OR shared. There is no mixture anymore. This is a requirement for
the directory to be build whenever we want it to be build.
Depends on D8667

Reviewers: zmike, stefan_schmidt, cedric, vtorri

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8668
2019-04-19 14:39:22 -04:00
Daniel Kolesa c0acf619ae meson: remove usage of eolian_gen .eo.legacy.h generation 2019-04-18 17:50:42 +02:00
Mike Blumenkrantz 8135b4698c evas: implement Efl.File.unload for evas image classes
this fixes unloading images using the evas_object_image_file_set legacy
api

ref D8616

Differential Revision: https://phab.enlightenment.org/D8618
2019-04-18 16:04:14 +02:00
Daniel Kolesa ed0c813417 evas_legacy: remove unused generated legacy includes
These define types never used in Evas_Legacy.h.
2019-04-18 15:53:46 +02:00
Hermet Park 9c66a4751c evas map: move to floating point coordinate system in high-quality drawing.
evas map has used integer coodinate system since it's born,

since object's transition is jiggled, not perfectly smooth.

It's obvious because Positioning must be stepping with integer units
without any subpixel rendering.

Currently, this patch is a sort of preparatory to improve this,
only valid for high-quality evas map (smooth + anti-aliasing)
2019-04-18 19:47:54 +09:00
Hermet Park cb33853ee8 canvas map: remove the workaround code.
Summary:
the perspective could be handled in the gl backend,
Here map coordinates don't need to get perspective ones but
local coordinates instead as it does same to integer coordinates.

I have no idea origin issues exactly,
but this changed fx, fy values are working correctly in client side.

Reviewers: devilhorns, #committers

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8563
2019-04-18 19:21:18 +09:00
Hermet Park 77a9093af7 evas common: small optimization.
don't repeat computing every iteration.
2019-04-18 18:51:16 +09:00
Ali Alzyod 80ffed5d85 Freeing Global Memory list on destructor
Issue with global list item, used to same styles. (in destructor we do not remove styles from it, which will cause memory leak)

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8578
2019-04-18 08:33:47 +02:00
Hermet Park f10bd61c9d evas map: shut up annoying compile warnings.
These variables must be logically initialized,
but compiler couldn't catch it, prints warnings.
2019-04-18 15:08:35 +09:00
Carsten Haitzler ae77e58366 evas - fix crash/junk pixel content but with tiled rotate at 270 + neon
@fix
2019-04-12 12:56:40 +01:00
Carsten Haitzler ebf2ca3c5b evas common - tiled rotate - fix signedness of neon intrinsics - warning 2019-04-12 11:24:32 +01:00
Carsten Haitzler eaf78210e8 evas common - convert - rotate tiled - fix const ptr warnings 2019-04-12 11:24:29 +01:00
Carsten Haitzler f43c19ac32 evas map - mark npoints param as unused because it is remove warning 2019-04-12 10:29:42 +01:00
junsu choi b849ad9022 efl_canvas_vg_container : Support mask tree for multiple mask.
Summary:
If another mask is set in the mask source, the rendering of the mask is performed in order.
The mask will render one buffer in order.
And depending on some types, the initial values of the buffers may be different. (alpha zero or 255).

If the implementation for masking is
efl_canvas_vg_node_mask_set(layer, mask1, MASKADD);
efl_canvas_vg_node_mask_set(mask1, mask2, MASKSUBSTRACT);
efl_canvas_vg_node_mask_set(mask3, mask4, MASKINTERSECT);
Supports rendering for consecutive masks.

Reviewers: Hermet, cedric

Reviewed By: Hermet

Subscribers: #reviewers, #committers, smohanty, kimcinoo

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8517
2019-04-11 19:20:03 +09:00
Hermet Park dc1e1a652c evas map: disable anti_aliasing.
We need a proper interface to toggle high-quality mapping,
until that, we disable the anti_aliasing feature.
Since adjecent polygons(such as textpath) shouldn't get this aa feature.
2019-04-08 15:02:47 +09:00
Hermet Park d5551bdda3 evas map: remove redundant code.
Remove old anti-alias code since high quality map is replaced with new one.
New anti-aliasing is logically same but having a regression bug,
it should be stablized.
2019-04-08 14:56:42 +09:00
Hermet Park 84e162b01f canvas map: introduce a new texture mapping for better quality.
Summary:
This new implementation of evas map texture mapping
 is designed for high quality rendering same level to GL.

If you use a high-end device, performance is not too bad, you can turn this on.
You might have practical image quality even in software rendering.

Since this implementation still have a few optimization points (+simd)
and stablizings, it may be useful in somewhat limited envrionments right now.
However the functionality definitely works fine, so please turn this on by
demand (anti_alias + smooth) for a while.

{F3667773} {F3667776} {F3667778}

Reviewers: #committers, devilhorns, raster

Reviewed By: #committers, raster

Subscribers: raster, devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8106
2019-04-08 13:21:08 +09:00
Hermet Park 6b4953b468 canvas vg: code refactoring.
Summary: Remove unnecessary argument of an internal function.

Reviewers: #committers, jsuya, cedric

Reviewed By: #committers, cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8530
2019-04-08 13:15:45 +09:00
Hosang Kim 55751f1204 evas_callbacks: fix emission of EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED
Summary:
When I add "efl_event_callback_add(btn, EFL_GFX_ENTITY_EVENT_VISIBILITY_CHANGED, _cb, NULL)",
_cb is not called. Because of callback_mask is not set correctly.

Test Plan: unit test

Reviewers: zmike, cedric

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8528
2019-04-03 09:32:21 -04:00
Carsten Haitzler 07f0044d28 evas image - fix proxy change propagation to fix e video wallpapers
this fixes propagati[on of changes from img sources to proxies which
broke e's video wallpapers. fixes T7685
2019-04-02 18:25:20 +01:00
Xavi Artigas 68c530080b docs: Fix common misspellings in H files
Fixed all appearances of words from this list in H files:
https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2019-04-02 13:28:48 +02:00
Xavi Artigas 57da0bee3d docs: Fix common misspellings in EO files
Fixed all appearances of words from this list in EO files:
https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machines
2019-04-02 11:32:05 +02:00
Hermet Park 08c65ed501 canvas vg: fix wrong key pass for caching surface.
There is a wrong case that fails caching ector surfaces.
Those vector objects manually constructing shapes,
passed wrong pointer as the cacahing key instead of root node pointer.

This fixes it.
2019-04-02 15:43:23 +09:00
Christopher Michael 750b21830f evas-font-dir: Minor formatting fixes
NB: No functional changes
2019-04-01 09:05:57 -04:00
Mike Blumenkrantz 4032d52a87 build: fix meson pixman dependency name
Summary: thx @vtorri for reporting

Reviewers: devilhorns, vtorri

Reviewed By: vtorri

Subscribers: cedric, #reviewers, vtorri, #committers

Tags: #efl_build

Differential Revision: https://phab.enlightenment.org/D8479
2019-03-27 14:34:43 -04:00
Woochanlee 9367dcc755 evas_render: Process deferred callback in the sync render case.
Summary:
The EVAS_CALLBACK_RENDER_POST callback has been deferred when the callback is registered during the render(inside_post_render flag on).

In the sync render case, the logic to call deferred callbacks is missing, and callbacks are not being called in certain cases.

@fix

Reviewers: ManMower, Hermet

Reviewed By: Hermet

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8478
2019-03-27 13:11:15 +09:00
Marcel Hollerbach 17e60a5585 evas_3d: stop just segfaulting straight away
Summary:
there have been wrong function calls, that did not work at all, since
the function pointer had the wrong type. This fixes the segfaulting
examples of evas3d. However, they still do not render, at least, they
don't crash anymore.

Depends on D8381

Reviewers: cedric, segfaultxavi, zmike, stefan_schmidt

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8382
2019-03-26 10:09:42 -04:00
Mike Blumenkrantz e6d8ac512d evas_clip: check for object validity before adding fallback damage rect
this path should not be triggered for objects which are being deleted,
which was the case in all of the referenced bug reportst

fix T4904, T7100, T7421

Reviewed-by: Cedric BAIL <cedric.bail@free.fr>
Differential Revision: https://phab.enlightenment.org/D8445
2019-03-22 14:11:54 -07:00
Xavi Artigas 205193f1ab docs: Add @since 1.22 to all stable classes' EO docs
Summary: Previous @since tags have already been removed from eo files.

Test Plan: Everything builds, but stable classes now have Since tags in the docs.

Reviewers: zmike, bu5hm4n

Reviewed By: bu5hm4n

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8446
2019-03-22 16:57:36 +01:00
Xavi Artigas bbd4b6e514 docs: Remove obsolete @since tags from EO files
Summary:
All legacy @since tags have already moved to the *.legacy.h files.
EO files are now devoid of @since tags (except some eldbus still
needed for legacy).
Upcoming patches will add @since 1.22 to those APIs which come out
of beta in this release.
APIs marked @beta do not need @since tags.

Test Plan: Everything builds, EO docs (like DocFX) have no Since tags.

Reviewers: zmike, bu5hm4n, lauromoura, cedric

Reviewed By: cedric

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8430
2019-03-20 20:16:05 +01:00
Christopher Michael 2d7678074e efl_canvas_vg_object: Fix dereference after null check
Coverity reports that both pname & file variables can be null here,
and that we are potentially passing NULL to strcmp. Check for valid
variables before passing to strcmp

Fixes Coverity CID1399423, CID1399421

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8350
2019-03-20 18:07:07 +01:00
Marcel Hollerbach 60384a4d40 evas: apply new event calling convention
Summary:
ref T7758

Depends on D8407

Reviewers: cedric, zmike, segfaultxavi

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7758

Differential Revision: https://phab.enlightenment.org/D8408
2019-03-19 16:31:50 -04:00
junsu choi ee6e9ff9ad Evas: Add type convert function for BIDI_Direction_Type.
Summary:
   evas_object_paragraph_direction_set/get function shoud keep parameter type Evas_BiDi_Direction.
   So, I add convert function.

Test Plan: N/A

Reviewers: zmike, Jaehyun_Cho, herb

Reviewed By: Jaehyun_Cho

Subscribers: cedric, #reviewers, Hermet, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8399
2019-03-19 12:27:51 +09:00
Daniel Kolesa 58b8a3d163 efl: remove EFL_EO_API_SUPPORT macro
Summary:
Since we're now going to be shipping some eo classes as stable,
there is no point in keeping the eo api behind a macro, and it
should be enabled by default. Another case is beta classes, but
those are behind the EFL_BETA_API_SUPPORT guard.

This also changes includes around the place where things are
clearly broken (such as an included header needing something
from another header but that other header being guarded, notably
efl_ui_widget.h needing focus manager but focus manager being
behind beta in Elementary.h)

Reviewers: zmike, cedric, bu5hm4n, stefan_schmidt, segfaultxavi

Reviewed By: cedric, segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8322
2019-03-18 12:13:59 +01:00
Yeongjong Lee 721f1776db evas_events: prevent double event_freeze in evas_object_freeze_events_set
Summary:
This patch prevent that event_freeze_count is greater than 1 in
`evas_object_freeze_events_set`

Test Plan: make check

Reviewers: bu5hm4n, zmike

Reviewed By: zmike

Subscribers: zmike, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8325
2019-03-15 11:23:09 -04:00
Cedric BAIL c5560bf2ef eo: efl_object_legacy_only_event_description_get is an internal only function, make it so.
Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: segfaultxavi, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8361
2019-03-15 11:54:24 +01:00
Marcel Hollerbach 30bb8395c3 build: add a option to disable eo file installation
Summary:
this is done because .eo files are not stable, and in order to stop
people depending on it, its better for now to disable the installation
of them for now.

ref T7676

Reviewers: stefan_schmidt, cedric, zmike, devilhorns

Reviewed By: zmike

Subscribers: #reviewers, #committers

Tags: #efl

Maniphest Tasks: T7676

Differential Revision: https://phab.enlightenment.org/D7897
2019-03-14 12:44:00 -04:00
Christopher Michael 5473141072 evas_device: Fix dereferencing null pointer
Coverity reports that 'pos' could be null here and we are potentially
dereferencing a NULL pointer, so lets add a check for 'pos' here
before trying to use it.

Fixes Coverity CID1399091

@fix

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D8313
2019-03-13 16:55:09 +01:00
Hermet Park d45e3df689 evas vg: replace to eina_file instance caching by vg.
Here is a replacement to use eina_file from a vg obj instance
to map file data by vg loaders.

This brings a benefit that integrated access to load data
between vg object and vg loaders.
2019-03-12 12:58:31 +09:00
Mike Blumenkrantz c73ca5d229 efl.input.interface: mark seat_event_filter @beta
ref T7562

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D8290
2019-03-11 21:34:58 +01:00
Mike Blumenkrantz 68750338c1 efl.input.types: mark enums beta again and use legacy types in legacy code
Summary:
these types are not currently being released and eolian should not have
generated legacy code using them

Reviewers: segfaultxavi

Reviewed By: segfaultxavi

Subscribers: cedric, #reviewers, #committers

Tags: #efl_api

Differential Revision: https://phab.enlightenment.org/D8288
2019-03-11 16:27:00 +01:00
Daniel Kolesa d3c5384cd0 eolian: enable checking of beta/stable contexts in all classes
Summary:
This enables all the checks unconditionally, without ignoring
classes that don't have an Efl namespace. This required a lot
of beta marking to make it build. It most likely doesn't
mark types correctly, as that is not fully enabled yet.

Reviewers: zmike, cedric, segfaultxavi, bu5hm4n

Reviewed By: segfaultxavi

Subscribers: #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D8266
2019-03-11 13:42:29 +01:00
Hermet Park 6524589e86 canvas vg: remove efl_file_loaded() overriding.
vg_entry ptr can't gurantee that new setting file is loaded or not.
2019-03-11 20:05:20 +09:00
Carsten Haitzler afe26b831d Revert "elementary,evas: remove obsolete legacy includes"
This reverts commit c876ac52d9.

This is not safe to remove - this breaks enlightenment. perhaps test
with the reason efl exists in the first place before delcaring it
safe? specifically this removed some function symbols in
efl_canvas_event_grabber_eo.legacy.c ...
2019-03-09 15:59:10 +00:00
Carsten Haitzler 4758f06e63 solve neon rotation issue by moving to the tiled rotator
the tiles rotator is faster no matter what. this will fix D8099 by
movoing to tiled rotation and nuking the neon code and we end uop
being faster anyway in all cases.

@fix
2019-03-09 15:21:46 +00:00