summaryrefslogtreecommitdiff
path: root/src/lib/evas/vg/evas_vg_cache.c (follow)
AgeCommit message (Collapse)Author
2020-01-28canvas vector: fix incorrect caching hit.Hermet Park
animated vector(lottie) caches current playing resource data, for resuing if it's possible, but it must take care of the drawing size. Previous logic missed that part, fixed it.
2020-01-17canvas vector: fix to refresh svg file of vector object.Hermet Park
previously, svg file is not refreshed though the file is changed. Let changed flag true properly to re-render properly. @fix
2019-12-24evas_vg_cache: Prevent memory leakJunsuChoi
Summary: free hash_key pointer Test Plan: N/A Reviewers: Hermet, YOhoho Reviewed By: YOhoho Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10960
2019-12-18evas vg: fix memory leak.Hermet Park
2019-12-13evas vg: revise buffer caching method.Hermet Park
for better precise buffer cache key, We make a unique key name combining root node + size + frame index. Now, we can reuse the root node for animation and caching buffers.
2019-11-29vector cache: skip animation update as possible.Hermet Park
Since the vector file data is shareable among the multiple vg instances, vfd could keep the requested frame data already by the other instance. This case vector cache quickly return the vector data withouth any further progress.
2019-11-29evas vector: operate cached vector file data per evas instances.Hermet Park
each vfd loaders construct vector tree data, these can be belongs to evas instance, they are not likely shareable. We should operate vfd separately.
2019-11-28evas vector: make it stable caching logic.Hermet Park
We need a more precise caching mechanism to save memory. Current root node(key) is limited for caching buffers, when to share by the multiple animated instances. This patch is a step for further optmization work, at the moment we disable the caching buffers for the animated instances.
2019-11-18evas vg: improve caching methods for better precise behaviors.Hermet Park
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-12evas_cache_vg : Implements sector_get/set internal APIsJunsuChoi
Summary: These APIs to get and set frames for a specific section in vg animation. get API looks for a sector by name in the markerlist of VG_File_Data. Then return start and end frames. Depends on D10504 Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10505
2019-10-08evas_vg_cache: Hashkey of cache use value provider listJunsuChoi
Summary: Even if the same window, the same file, and the same size, different images may be requested due to property changes caused by value_provider. Test Plan: N/A Reviewers: Hermet, smohanty, kimcinoo Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10303
2019-09-10evas_vg_cache: Hashkey in cache uses evasJunsuChoi
Summary: Vg_entry is shared by different child windows. When two or more objects load the same file When resizing, cache_vg_entry_render can delete an active entry while creating a new entry and deleting an existing entry. Therefore, use cache data added evas Test Plan: [enable json loader] --- a/meson_options.txt +++ b/meson_options.txt @@ -203,7 +203,7 @@ option('evas-loaders-disabler', type : 'array', description : 'List of modular image/vector load ..... choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'rs ..... - value : ['webp', 'json'] + value : ['webp'] [Test] elementary_test -> Animation View click -> play -> Animation View click again -> ... Reviewers: Hermet, smohanty, kimcinoo Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D9740
2019-06-21evas vector: support lottie animation as using json loader.Hermet Park
Summary: This patch extends efl_canvas_vg_object class to implement efl_gfx_frame_controller to suppor any playable animation on it. Plus, vector object takes care of lottie animation by using json loader. it's caching mechanism is changed to cache only static frame, not all frames. vg_cache supports json loader and make it animation request properly. This feature has been stabilized enough, it's using in Samsung Galaxy Watch active product, proved its stability enough. Depends on {D8940} Co-authored-by: JunsuChoi <jsuya.choi@samsung.com> Reviewers: #committers, jsuya Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8941
2019-03-12evas vg: replace to eina_file instance caching by vg.Hermet Park
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-04efl.gfx: remove Efl.Gfx.Image_Load_ErrorMike Blumenkrantz
Summary: this is now implemented through Eina.Error ref T7718 Depends on D8066 Reviewers: cedric Reviewed By: cedric Subscribers: cedric, #reviewers, #committers Tags: #efl_api Maniphest Tasks: T7718 Differential Revision: https://phab.enlightenment.org/D8067
2019-02-27efl.file_save: rework save flagsMike Blumenkrantz
Summary: instead of passing a string which requires reading docs to know which arbitrary string key=value sets can be passed, use an extensible struct which contains more easily referenced values ref T7672 Depends on D8035 Reviewers: segfaultxavi Reviewed By: segfaultxavi Subscribers: segfaultxavi, cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T7672 Differential Revision: https://phab.enlightenment.org/D8039
2019-02-21evas vg: fix correct increment for tflagsYeongjong Lee
Summary: There is warning. ``` lib/evas/vg/evas_vg_cache.c: In function ‘_vg_file_save’: lib/evas/vg/evas_vg_cache.c:185:30: warning: pointer of type ‘void *’ used in arithmetic [-Wpointer-arith] tflags = alloca(len) + 1; ``` Previous code of a8d5f275c78 is intended to increase flags length. Reviewers: Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7972
2019-02-21evas vg: use strncpy() instead of strcpy() for better security.Hermet Park
2018-12-07evas vg: revise basic vg cache logic.Hermet Park
There was a big trouble that vg cache didn't free cached data properly. Plus, there was a unnecessary copy of vg tree data. This revised version is a improvement of our evas vg cache in stable and optmization.
2018-12-07evas vg: code refactoring.Hermet Park
capsulate vector file data from efl canvas vg. hide vector file data structure, capsulate it, cut off the dependency by vector object. yet it has evas_cache_entry interface.
2018-12-07evas vg: code refactoring.Hermet Park
keep internal variable and structre names consisteny. no logical changes.
2018-11-21evas vg: Check for OOM in evas_cache_vg_entry_createBryce Harrington
2018-07-11canvas vg: check expcetional case.Hermet Park
Summary: if file is not exists. Reviewers: devilhorns, #committers, zmike Reviewed By: #committers, zmike Subscribers: cedric, #committers, zmike Tags: #efl Differential Revision: https://phab.enlightenment.org/D6546
2018-06-11evas vg: fix wrong obj deletion.Hermet Park
Cached roots are constructed out of canvas. Means, they have no parents, generated efl_add_ref() which requests to call efl_unref() instead of explicit deletion.
2018-06-11evas vg: fix broken vg rendering.Hermet Park
This fixes vg to connect node tree properly on copying nodes. Vector rendering was broken when vg cache tries to reconstruct the scene-graph tree on copying from the original cached one. Exactly, nodes lost parents on copying. Here it fixes the lost links of the scene-graph tree. @fix T6993
2018-02-21efl_vg: namespace movesMike Blumenkrantz
efl.vg -> efl.canvas.vg.node efl.vg.* -> efl.canvas.vg.* ref T6714
2017-12-11interface: rename Efl.Dup to Efl.Duplicate.Amitesh Singh
dup is considered too short and maybe confusing, hence rename it to duplicate instead.
2017-11-30efl: Introduce interface Efl.DupJean-Philippe Andre
A few classes allow their objects to be duplicated, so they should all use the same interface. Also, rename VG's dup to copy_from as it's not conforming to the definition of dup.
2017-11-08evas/vg: changed the efl_vg_dup api signature.subhransu mohanty
Reviewers: jpeg, cedric Subscribers: cedric, jpeg Differential Revision: https://phab.enlightenment.org/D5440
2017-11-07vg_savers/svg: empty (for now) module that will save svg in original fileVitalii Vorobiov
Just as a starter to make a working background that, later on, will go through Svg_Node's and build a certain source code to be saved in SVG picture as a file
2017-11-07evas_vg_cache: load svg from any file, not from defined onlyVitalii Vorobiov
so it doesn't only load from eet or edj only but also from those any extensions who is ACTUALLY eet, but named as, for example, like, "file_with_svg.dev" @fix
2017-10-27evas vg: Add FIXME and fix strbuf useJean-Philippe Andre
This is the result of a really quick review of the new VG code. Most of it was moved around, but this merge includes the following: - Move logic from edje to evas - Create static lib for common VG handling - Add file_set() API - Add a basic VG cache in evas side - Add savers modules, implement loaders and savers.
2017-10-27evas/vg: Added vg tree caching supportsubhransu mohanty