Commit Graph

2539 Commits

Author SHA1 Message Date
Taehyub Kim df06418b6f Support WebP Animation Image Files
Summary:
Support WebP Animate Format Imaeg Files.
To support webp animation, apply webp animation decoder.

Test Plan:
1. compile src/exmaple/elementary/image_webp_example_01.c and 02.c
2. run the samples

Reviewers: Hermet, kimcinoo, jsuya, bu5hm4n

Reviewed By: Hermet, kimcinoo, jsuya

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11876
2020-05-29 11:40:37 +09:00
Marcel Hollerbach e1ea935dae build: split off static parts from external parts in evas
this way we can use that list easily in the modules, and keep the list
for later module building.

Differential Revision: https://phab.enlightenment.org/D11897
2020-05-28 13:09:23 +02:00
Marcel Hollerbach 8e3606698e refactor build
libraries are split into deps, external deps, and pub deps.
Evas engines are refactored to use the predefined engine deps.

this is preparation work for efl-one.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11806
2020-05-27 11:06:46 +02:00
Hermet Park f917a389b2 canvas vg: fix vector file data memory leak.
this file data must be freed when eet file is closed.

@fix
2020-05-26 18:48:39 +09:00
Hermet Park 9fbdb02240 evas vg: clean up dangling instances
unref containers when file is closed.

@fix
2020-05-26 18:41:29 +09:00
Stefan Schmidt 935c17c655 build: modules: harmonize use of package_c_args
Adding it to all missing places so we can control it from the central
meson.build file.

Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Reviewed-by: João Paulo Taylor Ienczak Zanette <joao.tiz@expertisesolutions.com.br>
Differential Revision: https://phab.enlightenment.org/D11855
2020-05-26 10:15:24 +02:00
Shinwoo Kim 9c0484c9cb png: handle file name .9.png
Summary: .9.png is not 9 patch file, but a png file which name is .9

Test Plan: evas_object_image_file_set(image, "./.9.png", NULL);

Reviewers: Hermet, jsuya, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11848
2020-05-19 11:57:56 +09:00
Carsten Haitzler 63b5d81983 Revert "Fix EAPI definition by defining EFL_BUILD for each built DLL"
This reverts commit 3ade45cbc8.
2020-05-18 11:13:59 +01:00
Vincent Torri 3ade45cbc8 Fix EAPI definition by defining EFL_BUILD for each built DLL
Summary: EAPI must be defined to dllexport when building DLL, and to dllimport when using these DLL. To achieve this, define EFL_BUILD for each library and module, and set DLL_EXPORT unconditionally. Static library are and will be not supported

Test Plan: compilation

Reviewers: zmike, raster, jptiz

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11834
2020-05-18 09:51:48 +01:00
Mike Blumenkrantz e893d1ab7e evas/gl: resolve float compare warnings
Summary: Depends on D11794

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11795
2020-05-12 16:10:02 +02:00
Mike Blumenkrantz 71dcddd648 evas/filter: resolve float compare warnings
Summary: Depends on D11793

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11794
2020-05-12 16:10:02 +02:00
Mike Blumenkrantz 235ba0e407 evas: resolve float compare warnings
Summary: Depends on D11792

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11793
2020-05-12 16:10:02 +02:00
Shinwoo Kim 5f159ae624 evas: use SEQUENTIAL for decoding png file
Summary:
There was a mistake caused by "2a0eeba evas: fix png regression issue".

The flag is_for_data was close_file before this commit.
_evas_image_load_file_internal_head_png closes file if it is called only for
header. So the close_file does not mean is_for_data.

This patch is changing is_for_data to is_for_head, and make
_evas_image_load_file_internal_head_png use EINA_FILE_SEQUENTIAL
for data decoding.

Reviewers: Hermet, jsuya, herb, raster

Reviewed By: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11783
2020-05-08 19:26:46 +09:00
Vincent Torri d135957ffa Use __func__ C99 identifier instead of __FUNCTION__ compiler extension
Summary: see http://www.open-std.org/JTC1/SC22/wg14/www/docs/n1124.pdf section 6.4.2.2 page 52

Test Plan: compilation

Reviewers: raster, devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11785
2020-05-07 09:27:07 -04:00
Shinwoo Kim 5801bc07f5 evas: fix png regression issue
Summary:
Accidentally commit "382c580 evas: add support for .9.png file to PNG loader."
adding the 9 patch feature with small code refactoring made use of setjmp
incorrectly.

[Problem]
evas_image_load_file_data_png calls _evas_image_load_file_internal_head_png,
and _evas_image_load_file_internal_head_png calls setjmp and returns without
problem. And png_read_row calls longjmp. This causes jumping into a function
which was exited. Problematic png file will be attached.

[Solution]
Save calling environment i.e. call setjmp, after returning from
_evas_image_load_file_internal_head_png.

Test Plan:
Problematic png file
{F3876983}

And example code.
{F3876986}

Reviewers: Hermet, jsuya, herb

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11782
2020-05-07 12:15:02 +09:00
Hermet Park 98ff237fc1 canvas map: draw direct image as possible.
Since we moved to floating calculation for msaa, this comparsion
is not working for direct image drawing though it's doable.

To resolve this, we can compare floatings regardless of msaa enable.
2020-05-07 11:29:08 +09:00
Vincent Torri 8db62cb22b remove arguments of LOGFN in ecore_wayland modules as the are always the same
Reviewers: raster, devilhorns

Reviewed By: devilhorns

Subscribers: devilhorns, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11777
2020-05-06 09:18:31 -04:00
Carsten Haitzler 7f984ce4a5 evas gl - fix coverity complaint in shader cache update 2020-04-25 00:19:08 +01:00
Carsten Haitzler 3b0073bb5a evas gl - shader cache was needless losing and overwriting
we were losing cached chaders and overwriting the cache all the time
when apps finished compiling new shaders and at other points... when
they should have already had a populated shader cache that was all
fine and happy. this fixes that so once the cache is fully populated
it wont write anymore and it wont lose existing shaders in the cache

@fix
2020-04-24 16:56:56 +01:00
Ali Alzyod 3ca52b7a1a evas_gl_context: reduce conditions for image orientation check
Reviewers: woohyun, eunue, kimcinoo, Hermet

Reviewed By: Hermet

Subscribers: kimcinoo, cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11755
2020-04-24 20:55:12 +09:00
Shinwoo Kim 90cc0c465c evas: fix dereference after null check
Summary:
Static analysis tool reports passing a null pointer 'im->gc' to
_evas_gl_image_cache_add which directly dereferences it, so lets
be sure that 'im->gc' is valid before passing it to cache_add

Reviewers: Hermet, jsuya, herb, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11676
2020-04-10 08:45:22 -04:00
Hermet Park 476e2b0521 canvas 3d: remove all canvas3d features across efl.
Reviewers: jsuya, kimcinoo, bu5hm4n, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11552
2020-03-25 19:14:02 +09:00
Shinwoo Kim a89a2ef1de evas.image: add evas_object_image_animated_frame_get
this adds an api for getting the current frame of an animation

Differential Revision: https://phab.enlightenment.org/D11455
2020-03-10 13:31:19 -04:00
Ali Alzyod 794792aacb evas_gl_font: free data paths if alloca fails
Reviewers: Hermet, woohyun, bu5hm4n, zmike

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11473
2020-03-10 11:42:31 +09:00
Hermet Park b2bd0c548f evas gl: clip rect with proper size.
gc width/height indicates the main output size,
if the target surface(fbo) is larger than this, rect won't be drawn.

We should clip this with current context size.

@fix
2020-03-08 20:20:43 +09:00
Christopher Michael 0bf6f5bbe4 evas_gl_drm: Fix incorrect define statement.
This actually should be #ifndef so that if it's not defined in the
system, then we can still compile properly.
2020-03-06 11:46:33 -05:00
junsu choi 62039e6199 evas_model_load_ply: Prevent memory leak
Summary:
If use ein_str_split, have to free the first element of the array
and free the array.

Test Plan: N/A

Reviewers: Hermet, YOhoho, bu5hm4n, zmike

Reviewed By: zmike

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11419
2020-02-27 09:55:37 +09:00
Stefan Schmidt 8ff8aa3076 evas: software_engine: free allocation on error path
When we allocated s but fail to allocate l we need to make sure to free
the first allocation before erroring out.

CID: 1419874

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D11409
2020-02-25 16:43:25 +01:00
Mike Blumenkrantz dc14257c96 Revert "evas: remove image_load from the engine."
Summary:
This reverts commit 867d826395.
Depends on D11337

Reviewers: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11338
2020-02-14 08:33:32 -05:00
Mike Blumenkrantz be3915cc90 Revert "evas: remove unused fonction evas_gl_common_image_load."
Summary:
This reverts commit fc7e244e99.
Depends on D11336

Reviewers: raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11337
2020-02-14 08:33:26 -05:00
Marcel Hollerbach 0c77cee3ab evas_model_loader: fix 8f3bef248b
The commit fixed a mem leak with freeing one element in the array, which
was never going to work, as only the array is a pointer you can
allocate.

This could have been discovered by simply running ninja test.
2020-02-14 09:01:10 +01:00
Hermet Park 8f3bef248b canvas model_loaders: fix memory leak in ply loader.
eina_str_split() newly allocate memory to return,
caller must take over its resource free..
2020-02-14 13:51:46 +09:00
Hermet Park 570a4c94ad image loaders pmaps: decide data size at the compile time. 2020-02-14 13:42:43 +09:00
Hermet Park 63d1b32e62 canvas engine: + null check for safety 2020-02-14 13:39:17 +09:00
Hermet Park e64f45a889 gl image: free the resource properly at the corner case. 2020-02-14 13:27:11 +09:00
junsu choi fcdf523b98 software_evas_engine: Remove unnecessary member for ector_surface_set
Summary:
The clear of the Evas_Thread_Command_Ector_Surface structure is an unmanaged variable.
When ector calls _draw_thread_ector_surface_set and it checks the clear value.
the clear value is garbage value. This can cause the pixels to fail to initialize.
This is why afterimages remain after updating shapes while using ector surfaces.

Test Plan:
./build/src/examples/evas/efl-canvas-vg-simple
1 - Basic Shape test
Scale up 's' or do something

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11278
2020-02-05 10:47:15 +09:00
Shinwoo Kim e0b4ddaeb8 evas filter: fix crash issue
Summary:
If image object geometry is same with image size, then a crash occurs on both
GL and SW engine.

[Test Code]
evas_object_image_size_get(img, &w, &h);
evas_object_resize(img, w, h);

[GL engine]
eng_ector_buffer_wrap should use output instead of engine for calling
evas_ector_buffer_engine_image, because it expects the output not the engine.

[SW engine]
eng_ector_buffer_wrap should check if im->image.data is NULL because
_evas_ector_software_buffer_evas_ector_buffer_engine_image_set returns before
calling evas_cache_iamge_ref if im->image.data is NULL, and it causes
a segmentation fault finally with following backtrace.

(#0) evas_cache_image_drop (im=0x0)
(#1) _evas_ector_software_buffer_efl_object_destructor
(#2) efl_destructor
(#3) _efl_del_internal
(#4) _efl_unref_internal
(#5) _efl_add_internal_end
(#6) _efl_add_end
(#7) eng_ector_buffer_wrap

Test Plan: {F3841366}

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11258
2020-01-31 21:35:18 +09:00
Shinwoo Kim 1dc6ccfba0 Efl.Canvas.Group: make mask filter work on GL engine
Summary:
The _gl_filter_mask defines value of gc->dc->clip.mask, and make_color but
those are not used at all, because the evas_gl_common_Filter_blend_push calls
evas_gl_common_context_image_push which doesn't care of those values.

So this patch is using evas_gl_common_image_draw to use mask and mask_color.

Test Plan:
[Filter Program]
efl_gfx_filter_program_set(text,
     "buffer:a(alpha); buffer:fat(alpha); buffer:rgbfat(rgba);
      curve (0:255-255:0, dst = a); blend (a, color = #00ca00ff);
      grow (1, dst = fat); blur (3, src = fat, color=#0000b9ff, ox = -2, oy = -2, dst = rgbfat);
      mask (a, src = rgbfat);padding_set(t=5);",
     "name");

[Before]
{F3835430}

[After]
{F3835431}

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D11139
2020-01-31 18:31:31 +09:00
Hermet Park f6f67d60f3 evas ector: ++safety.
add return value by ector_begin() for vector safety.
2020-01-09 15:01:47 +09:00
Carsten Haitzler e18af750f3 gl native surf - create pixmap failes - make them warns
these can be race conditions so really should be warns and not errors.
they just are noise we'll never fix as it's racey anyway...
2020-01-03 18:22:28 +00:00
Boris Faure a2afcfc872 evas: fix compilation with -Dwl=false
Reviewed-by: Chris Michael <cp.michael@samsung.com>
Reviewed-by: Marcel Hollerbach <mail@marcel-hollerbach.de>
Differential Revision: https://phab.enlightenment.org/D10994
2020-01-02 12:41:16 +01:00
Hermet Park 745eea61b0 evas gl: enable GL_LINE_SMOOTH only at gles 1.x
As the GLES specification,
GL_LINE_SMOOTH is not supported since GLES2.
2019-12-31 16:31:09 +09:00
junsu choi 062782d470 evas vg: remove build warning
Remove parameter already deleted
2019-12-06 15:58:35 +09:00
Hermet Park 19ef155526 vg ector: Call a pair of ector begin/end for ector buffer drawing.
While we render vector drawing on ector,it uses ector buffers for subsequent compositions.
In this sequence, it switches ector buffer with a composition target,
while resuing the global ector context.

Previously, it trickly switched ector buffer, it broke the ector begin/end pair.
Now, it needs to recover global ector buffer once the composition finished.
Thus ector buffer need to return the current pixels information for this.
2019-12-06 15:31:30 +09:00
Hermet Park ce30a952b2 vector json: checking valid pointer before accessing it. 2019-11-21 17:28:54 +09:00
Hermet Park 618bce8038 evas vg: improve caching methods for better precise behaviors.
Previously, json file data won't be shared between instances.
Now, objects can share the json data if they use the same file resource.
2019-11-18 13:08:29 +09:00
Stefan Schmidt f6b066df2a gl_drm: remove dead return statement
Summary:
This return can never be reached in this function.

CID: 1402607
Depends on D10682

Reviewers: raster, devilhorns

Reviewed By: devilhorns

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10683
2019-11-15 11:56:56 -05:00
junsu choi f4fa719eae wl_egl : Prevent access to NULL pointer
Summary: The pointer s can be null.

Test Plan: N/A

Reviewers: Jaehyun_Cho, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10654
2019-11-13 13:42:16 +09:00
junsu choi ddaa5d1e6e vg_loader: Get markers information form json data.
Summary: If json data has marker information, it is stored in vg file data.

Test Plan: N/A

Reviewers: Hermet, smohanty, kimcinoo

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10504
2019-11-12 14:28:44 +09:00
Shinwoo Kim 97f5894972 evas_filter: remove shader compile error
Summary:
When grayscale fillter works there is a compile error:
implicit cast from "float" to "vec3"

Test Plan:
1. Create filter_example with following .
efl_gfx_filter_program_set(image, "grayscale ()", "grayscale");

2. Run.
ELM_ACCEL=gl ./filter_example

Reviewers: Hermet, jsuya

Reviewed By: Hermet

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D10595
2019-11-12 10:08:39 +09:00