platform/core/uifw/lottie-player.git
4 years agoExample : Update Strategy::eflVg in lottieview accepted/tizen/unified/20191114.123438 submit/tizen/20191111.211104 submit/tizen/20191113.212006 submit/tizen/20191113.212830
JunsuChoi [Thu, 7 Nov 2019 06:38:02 +0000 (15:38 +0900)]
Example : Update Strategy::eflVg in lottieview

The existing Strategy::eflVg make a vector object treeusing a node tree
from C++ rlottie API. But it didn't work well.
Loading a vector file into evas_object_vg works the same as internally.

[Test]
Prepare for latest EFL
rlottie build
./build/example/lottieviewTest 4

4 years agofixed memory leak in demo application
subhransu mohanty [Mon, 4 Nov 2019 07:41:28 +0000 (16:41 +0900)]
fixed memory leak in demo application

4 years agorlottie/model: lazy generation of layerlist
subhransu mohanty [Mon, 4 Nov 2019 06:53:22 +0000 (15:53 +0900)]
rlottie/model: lazy generation of layerlist

4 years agorlottie/parser: refactor to use local arena allocator for model tree creation.
subhransu mohanty [Mon, 4 Nov 2019 03:52:44 +0000 (12:52 +0900)]
rlottie/parser: refactor to use local arena allocator for model tree creation.

4 years agorlottie: refactor to use a local arena allocator for shadow tree creation
subhransu mohanty [Mon, 4 Nov 2019 01:11:23 +0000 (10:11 +0900)]
rlottie: refactor to use a local arena allocator for shadow tree creation

This usecase is best suitable for local arena allocator as we have a fixed number
of objects to create and they all gets deleted at once. so by keeping a allocator
in the composition and use it to create all the objects using it will basically
flattened the memory layout of the shadow tree as all the memory comes from the one
memory allocator pool.
This improves the bencmark performance by 5%.

4 years agorlottie/vector: Added a local arena allocator to vector
subhransu mohanty [Mon, 4 Nov 2019 01:07:53 +0000 (10:07 +0900)]
rlottie/vector: Added a local arena allocator to vector

This allocator is takes from skia's local arena allocator.

4 years agorlottie: refactor Pathitem Object to keep 2 path objects instead of 3.
subhransu mohanty [Tue, 22 Oct 2019 04:12:01 +0000 (13:12 +0900)]
rlottie: refactor Pathitem Object to keep 2 path objects instead of 3.

4 years agorlottie/vector: refactor to make VPainter as POD object
subhransu mohanty [Fri, 1 Nov 2019 04:46:52 +0000 (13:46 +0900)]
rlottie/vector: refactor to make VPainter as POD object

4 years agorlottie: remove unused data member
subhransu mohanty [Fri, 1 Nov 2019 01:12:22 +0000 (10:12 +0900)]
rlottie: remove unused data member

4 years agorlottie: remove unused classes in rlottie to reduce library size
subhransu mohanty [Thu, 31 Oct 2019 02:33:00 +0000 (11:33 +0900)]
rlottie: remove unused classes in rlottie to reduce library size

4 years agoVDrawable: Fix initial value of an enum
JunsuChoi [Wed, 30 Oct 2019 11:23:32 +0000 (20:23 +0900)]
VDrawable: Fix initial value of an enum

4 years agorlottie: reduce polling count for task scheduler to 2.
subhransu mohanty [Wed, 30 Oct 2019 09:47:00 +0000 (18:47 +0900)]
rlottie: reduce polling count for task scheduler to 2.

when the queue is empty the thread tries to steal from other queue
and it was doing it 32 times .. changed it to 2 as it was spinning for
long time before going to  sleep. As we always give the tasks in batches
we can reduce the spin time.

4 years agolottie/opt: refactor drawable class to optimize object size
subhransu mohanty [Wed, 30 Oct 2019 09:18:10 +0000 (18:18 +0900)]
lottie/opt: refactor drawable class to optimize object size

4 years agorlottie/opt: refactor renderList() api to return a Span to optimize the LayerObject...
subhransu mohanty [Wed, 30 Oct 2019 00:19:36 +0000 (09:19 +0900)]
rlottie/opt: refactor renderList() api to return a Span to optimize the LayerObject size"

previously renderList() was returning a vector by keeping a vector object which was adding to
the overal size of the layer objects. by changing to a simple span object now only shpelayer has to keep
the vector and rest of the layer object types don't have to.

4 years agorlottie: added a dedicated pass to preprocess the render nodes
subhransu mohanty [Mon, 28 Oct 2019 10:47:07 +0000 (19:47 +0900)]
rlottie: added a dedicated pass to preprocess the render nodes

4 years agovector/rasterizer: safe rletask reset.
subhransu mohanty [Mon, 28 Oct 2019 07:17:22 +0000 (16:17 +0900)]
vector/rasterizer: safe rletask reset.

check if the previous task is finished before reseting the task .
if the previous task is not finished may lead to inconsistant task state.

Change-Id: Id242d9c9d11c691c084a5463b11b544352c0020c

4 years agoExample: Change findFrameAtMarker return type.
JunsuChoi [Fri, 18 Oct 2019 02:39:43 +0000 (11:39 +0900)]
Example: Change findFrameAtMarker return type.

4 years agoCAPI: Support Marker feature for CAPI.
JunsuChoi [Fri, 18 Oct 2019 02:27:32 +0000 (11:27 +0900)]
CAPI: Support Marker feature for CAPI.

Add lottie_animation_get_markerlist() api
User can use this api and get information about each marker.

4 years agoexample: updated step size of slider in lottieviewer example
subhransu mohanty [Fri, 18 Oct 2019 01:38:52 +0000 (10:38 +0900)]
example: updated step size of slider in lottieviewer example

4 years agoExample: Implements marker demo
JunsuChoi [Thu, 17 Oct 2019 10:45:44 +0000 (19:45 +0900)]
Example: Implements marker demo

If there are markers in the lottie animation, user can set the play interval using the markerlist.
This demo is for play with markers.

meson build
ninja -C build install
./build/example/demo_marker

4 years agoRelocatable module of image loader
Nicholas Guriev [Wed, 16 Oct 2019 18:16:12 +0000 (21:16 +0300)]
Relocatable module of image loader

4 years agoStack buffer overflow reproducer. Add option to compile the lib with asan for testing
Anatoly Korniltsev [Wed, 16 Oct 2019 16:04:01 +0000 (19:04 +0300)]
Stack buffer overflow reproducer. Add option to compile the lib with asan for testing

4 years agovector: lower the tolerance value of VDasher from 1.0 to 0.1
subhransu mohanty [Thu, 17 Oct 2019 00:56:15 +0000 (09:56 +0900)]
vector: lower the tolerance value of VDasher from 1.0 to 0.1

4 years agoreview fix: move reproducerts to test folder
Anatoly Korniltsev [Mon, 14 Oct 2019 07:14:28 +0000 (10:14 +0300)]
review fix: move reproducerts to test folder

4 years agoPrevent type confusion with NDEBUG
Anatoly Korniltsev [Wed, 9 Oct 2019 22:03:56 +0000 (01:03 +0300)]
Prevent type confusion with NDEBUG

4 years agoREADME: updated documentation.
Hermet Park [Mon, 14 Oct 2019 06:13:59 +0000 (15:13 +0900)]
README: updated documentation.

Removed C api usage.

This is not good to add in this context before we guide its basic usages.

4 years agovector stb: free the memory properly in the exception cases.
Hermet Park [Mon, 14 Oct 2019 05:14:16 +0000 (14:14 +0900)]
vector stb: free the memory properly in the exception cases.

Change-Id: I64103c03679f0fe14b31d904e5e35aa1c03e29ef

4 years agovector/rasterizer: safe rletask reset. 73/216573/1
subhransu mohanty [Mon, 28 Oct 2019 07:17:22 +0000 (16:17 +0900)]
vector/rasterizer: safe rletask reset.

check if the previous task is finished before reseting the task .
if the previous task is not finished may lead to inconsistant task state.

Change-Id: I934636745fcc87474d511eaa1c7f9a44027f8d60

4 years agovector stb: free the memory properly in the exception cases. 61/215661/1 accepted/tizen_5.5_unified_mobile_hotfix tizen_5.5_mobile_hotfix accepted/tizen/5.5/unified/20191031.015024 accepted/tizen/5.5/unified/mobile/hotfix/20201027.075200 accepted/tizen/unified/20191014.062459 submit/tizen/20191014.053053 submit/tizen/20191014.060638 submit/tizen_5.5/20191031.000005 submit/tizen_5.5_mobile_hotfix/20201026.185105 tizen_5.5.m2_release
Hermet Park [Mon, 14 Oct 2019 05:14:16 +0000 (14:14 +0900)]
vector stb: free the memory properly in the exception cases.

Change-Id: Ib2699f068217f20f565a2045f7e0fc53f32a8f95

4 years agolottie/perf: Avoid triggering render of a paint node when final opacity is zero submit/tizen/20191013.215822
subhransu mohanty [Fri, 11 Oct 2019 06:05:13 +0000 (15:05 +0900)]
lottie/perf: Avoid triggering render of a paint node when final opacity  is zero

4 years agorlottie_capi: Add Alpha member in ImageInfo
JunsuChoi [Fri, 11 Oct 2019 02:57:09 +0000 (11:57 +0900)]
rlottie_capi: Add Alpha member in ImageInfo

4 years agovector: support rendering of texture brush with alpha.
subhransu mohanty [Fri, 11 Oct 2019 00:58:14 +0000 (09:58 +0900)]
vector: support rendering of texture brush with alpha.

4 years agoREADME: remove an emptry space accepted/tizen/unified/20191014.005025 submit/tizen/20191010.214907 submit/tizen/20191011.230442
Hermet Park [Thu, 10 Oct 2019 11:30:02 +0000 (20:30 +0900)]
README: remove an emptry space

4 years agovector: refcator VBrush to reduce memory footprint
subhransu mohanty [Thu, 10 Oct 2019 06:42:18 +0000 (15:42 +0900)]
vector: refcator VBrush to reduce memory footprint

4 years agoupdated README.
Hermet Park [Thu, 10 Oct 2019 07:06:00 +0000 (16:06 +0900)]
updated README.

4 years agorlottie: refactor to reduce lottie item memory footprint
subhransu mohanty [Thu, 10 Oct 2019 04:34:18 +0000 (13:34 +0900)]
rlottie: refactor to reduce lottie item memory footprint

4 years agoREADME.md: Update Supported feature (Markers)
JunsuChoi [Thu, 10 Oct 2019 06:37:48 +0000 (15:37 +0900)]
README.md: Update Supported feature (Markers)

4 years agorlottie: support composition marker feature in lottie accepted/tizen/unified/20191011.015420 submit/tizen/20191009.211935
subhransu mohanty [Tue, 8 Oct 2019 04:33:57 +0000 (13:33 +0900)]
rlottie: support composition marker feature in lottie

4 years agodoc: fix typo accepted/tizen/unified/20191010.032850 submit/tizen/20191007.211537 submit/tizen/20191008.054409 submit/tizen/20191008.233305
Hermet Park [Mon, 7 Oct 2019 11:02:00 +0000 (20:02 +0900)]
doc: fix typo

4 years agovector stb_image: + fseek() error handling. accepted/tizen/unified/20191008.101627 submit/tizen/20191004.073158 submit/tizen/20191006.213409 submit/tizen/20191007.015014 submit/tizen/20191007.061708
Hermet Park [Fri, 4 Oct 2019 07:16:28 +0000 (16:16 +0900)]
vector stb_image: + fseek() error handling.

Shutdown code static analizer report...

Change-Id: I389049eb958b7c5d47435115343854af3527ec31

4 years agopixman vregion: remove unused function. submit/tizen/20191004.064529
Hermet Park [Fri, 4 Oct 2019 06:39:12 +0000 (15:39 +0900)]
pixman vregion: remove unused function.

Thatis acutally wrong that might access invalid data.

The below line, memory indexing

box_type_t *box = PIXREGION_RECTS(reg) + index;

won't work properly since the reg memory is not the exact box_type_t.

Change-Id: I872235580de839a1cc19aad8c5e7564ae56cc68e

4 years agovector vrle: remove a line affecting nothing.
Hermet Park [Fri, 4 Oct 2019 06:19:06 +0000 (15:19 +0900)]
vector vrle: remove a line affecting nothing.

Change-Id: Ib0079788720e9e6c0175c4a925e6bbd3ac9c9ec4

4 years agovector stb_image: + fseek() error handling.
Hermet Park [Fri, 4 Oct 2019 04:15:52 +0000 (13:15 +0900)]
vector stb_image: + fseek() error handling.

Shutdown code static analizer report...

Change-Id: If8b7f00f45eb845c89d35f6451f06853771e9315

4 years agovector/vdasher: initialize a member var with a default value.
Hermet Park [Fri, 4 Oct 2019 03:55:12 +0000 (12:55 +0900)]
vector/vdasher: initialize a member var with a default value.

Change-Id: Iaf9d4f10b17be6c60defdbfd99777dbcecaf7d4d

4 years agoupdated AUTHORS
Hermet Park [Fri, 4 Oct 2019 03:44:04 +0000 (12:44 +0900)]
updated AUTHORS

Change-Id: I8d9e0c1ce10005a5a738d35518d72e3f632f4179

4 years agolottie/parser: reduce memory allocation during shapedata parsing submit/tizen/20191003.212707
subhransu mohanty [Wed, 2 Oct 2019 07:04:38 +0000 (16:04 +0900)]
lottie/parser: reduce memory allocation during shapedata parsing

4 years agoExample : Enhancement dynamic property demo
JunsuChoi [Wed, 2 Oct 2019 06:21:33 +0000 (15:21 +0900)]
Example : Enhancement dynamic property demo

Change json sample and add more cases.

4 years agovector/ft: refactor to reduce branch miss.
subhransu mohanty [Wed, 2 Oct 2019 06:11:26 +0000 (15:11 +0900)]
vector/ft: refactor to reduce branch miss.

vtune profile shows branch miss in ft_trig_pseudo_polarize and ft_trig_pseudo_rotate
as both the if cases does similar expensive computation move then to start so that
we will not pay high penalty during branch miss.

4 years agoREADME.md : Add dynamic property accepted/tizen/unified/20191004.003714 submit/tizen/20191001.213324
JunsuChoi [Thu, 26 Sep 2019 11:24:36 +0000 (20:24 +0900)]
README.md : Add dynamic property

4 years agoIntroduce export map to completely hide private symbols
Nicholas Guriev [Fri, 27 Sep 2019 18:28:05 +0000 (21:28 +0300)]
Introduce export map to completely hide private symbols

Also put configureModelCacheSize into the rlottie namespace.

4 years agolottie/optimization: keep painter and surface in composition to avoid memory allocation accepted/tizen/unified/20191001.062516 submit/tizen/20190929.220413 submit/tizen/20190930.064714 submit/tizen/20191001.000056
subhransu mohanty [Fri, 27 Sep 2019 07:01:14 +0000 (16:01 +0900)]
lottie/optimization: keep painter and surface in composition to avoid memory allocation

4 years agovector: added reset() api to VBitmap
subhransu mohanty [Fri, 27 Sep 2019 06:59:44 +0000 (15:59 +0900)]
vector: added reset() api to VBitmap

4 years agolottie/optimization: keep a pathmesure object in trim item to avoid memory allocation submit/tizen/20190926.223052
subhransu mohanty [Thu, 26 Sep 2019 01:17:19 +0000 (10:17 +0900)]
lottie/optimization: keep a pathmesure object in trim item to avoid memory allocation

4 years agovector: refactor pathmesure to keep a scratch path object for memory efficieny
subhransu mohanty [Thu, 26 Sep 2019 01:16:10 +0000 (10:16 +0900)]
vector: refactor pathmesure to keep a scratch path object for memory efficieny

4 years agovector: refactor Vdasher to take result path as parameter
subhransu mohanty [Thu, 26 Sep 2019 01:15:00 +0000 (10:15 +0900)]
vector: refactor Vdasher to take result path as parameter

4 years agooptimization: avoid memory allocation when shape data has animation keyframe. accepted/tizen/unified/20190927.064512 submit/tizen/20190923.005744 submit/tizen/20190923.215628 submit/tizen/20190924.053902 submit/tizen/20190924.220547 submit/tizen/20190925.214157 submit/tizen/20190926.103214
subhransu mohanty [Fri, 20 Sep 2019 06:50:47 +0000 (15:50 +0900)]
optimization: avoid memory allocation when shape data has animation keyframe.

because of generic LOTAnimatable interface when shape has animation data
we were always created temporary shape data duting lerp. by crating a specialization
of AnimatableShape data and directly updating path value during animation we avoid
lot of memory allocation and deallocation.

4 years agolottie/optimization: optimize rendering when layer has clipper and mask
subhransu mohanty [Thu, 19 Sep 2019 07:56:46 +0000 (16:56 +0900)]
lottie/optimization: optimize rendering when layer has clipper and mask

When layer has clipper and mask we create a temporary rle in each frame rendering
by avoiding the extra Rle object avoids memory allocation and speeds up rendering.

4 years agovector/rle: added operator&=() api to VRle
subhransu mohanty [Thu, 19 Sep 2019 07:45:45 +0000 (16:45 +0900)]
vector/rle: added operator&=() api to VRle

4 years agovector/helper: let VGradientCache has perfect singletone interface.
Hermet Park [Tue, 17 Sep 2019 10:53:42 +0000 (19:53 +0900)]
vector/helper: let VGradientCache has perfect singletone interface.

4 years agoFix possible stack corruption.
John Preston [Sun, 1 Sep 2019 09:04:26 +0000 (12:04 +0300)]
Fix possible stack corruption.

4 years agoFix possible out of bounds reading.
John Preston [Sun, 1 Sep 2019 09:03:18 +0000 (12:03 +0300)]
Fix possible out of bounds reading.

Asserts could be disabled in the Release build.

4 years agoCheck that root layer was found.
John Preston [Sun, 1 Sep 2019 07:37:11 +0000 (10:37 +0300)]
Check that root layer was found.

4 years agovector: refactor code to remove a global instance.
Hermet Park [Mon, 16 Sep 2019 11:05:55 +0000 (20:05 +0900)]
vector: refactor code to remove a global instance.

This kind of global static instance is really dangerous in c++ because
We have no idea when the instance will be initalization exactly.

This might interrupt the program sequence, more worsely, it could break the program
while That breakage is totally up to the member instances of the class.

Very poor design.

Change-Id: I8ca788bad2fe2e90f9cd5449b84b1ed15c043f1e

4 years agoexample: bump up c++ version to 14 in cmake.
Hermet Park [Mon, 16 Sep 2019 09:34:18 +0000 (18:34 +0900)]
example: bump up c++ version to 14 in cmake.

Change-Id: Ice8b4b685d54138a1b883611f7abb7eff642bb95

4 years agolottie/parser: check for layer data integrity
subhransu mohanty [Thu, 5 Sep 2019 08:20:42 +0000 (17:20 +0900)]
lottie/parser: check for layer data integrity

this patch checkes if the layer has assigned itself as parent.

Change-Id: Id2d4b931614e9d6781d8dd73686972855a475fb2

4 years agolottie/model: keep a stat of model for future local allocator.
sub.mohanty@samsung.com [Sun, 18 Aug 2019 09:24:36 +0000 (18:24 +0900)]
lottie/model: keep a stat of model for future local allocator.
In a complex lottie resource layer counts can exceed above 100 or in
some cases 1000. As in each frame rendering we visit the whole tree
allocating all of them using a local allocator will speed up the tree
visit as well as creation and destruction.

As the number of layer objects are fixed in a resource we can make use of
a dumb monotonic allocator to allocate all objects in one place.

Change-Id: If824c7bba8bbd9c93dff8693fc72deac1fa4c893

4 years agoRevert "trial & error to figure out the lottie packaging issue in vd." accepted/tizen/unified/20190923.011146 submit/tizen/20190919.052822
Hermet Park [Thu, 19 Sep 2019 02:18:40 +0000 (11:18 +0900)]
Revert "trial & error to figure out the lottie packaging issue in vd."

This reverts commit 2e5c1c74ba887cf8170c8aa9e8ee4eb4d2c36a78.

This doens't work.

Change-Id: I764b8bdbadedbb0954cb1fe410d2a10f2da807e7

4 years agotrial & error to figure out the lottie packaging issue in vd. 59/214159/1
Hermet Park [Wed, 18 Sep 2019 11:31:45 +0000 (20:31 +0900)]
trial & error to figure out the lottie packaging issue in vd.

Change-Id: I3109d1dfc4fb00fc41a8aaed5c20b08018564b45

4 years agoRevert "Revert "rlottie/gbs: move gbs build from cmake to meson""
Hermet Park [Wed, 18 Sep 2019 11:24:10 +0000 (20:24 +0900)]
Revert "Revert "rlottie/gbs: move gbs build from cmake to meson""

This reverts commit 57603b6c4bf0fdca3ce91c5abe2e51e21cd8e442.

This dosen't affect vd packaging issue.

Change-Id: Ia9dad9a9a787a0d3b0c5561c26e09c1d9839f4b4

4 years agoRevert "rlottie/gbs: move gbs build from cmake to meson" 97/214097/1
subhransu mohanty [Wed, 18 Sep 2019 04:41:35 +0000 (13:41 +0900)]
Revert "rlottie/gbs: move gbs build from cmake to meson"

This reverts commit 734dc7289e72d51b03e49099e358d863e040e5b0.

Change-Id: I40957152a0aff3f52df3665b1213874efa63a9e7

4 years agoRevert "trial & error to figure out the lottie packaging issue in vd." 93/214093/1
Hermet Park [Wed, 18 Sep 2019 03:00:48 +0000 (12:00 +0900)]
Revert "trial & error to figure out the lottie packaging issue in vd."

This reverts commit 88a8144cb8b0757f983e68354c532a3aeb894e3a.

This doesn't affect that issue.

Change-Id: I688b1b9e2f64632415aa7205330f55e39820995e

4 years agotrial & error to figure out the lottie packaging issue in vd. 61/214061/1
Hermet Park [Tue, 17 Sep 2019 12:50:35 +0000 (21:50 +0900)]
trial & error to figure out the lottie packaging issue in vd.

Change-Id: Id466e545f341aa4db05a2cd3590d37f9a828663d

4 years agoRevert "trial & error to fix the lottie packaging issue in vd."
Hermet Park [Tue, 17 Sep 2019 12:06:58 +0000 (21:06 +0900)]
Revert "trial & error to fix the lottie packaging issue in vd."

This reverts commit c87f74e1b5228913404c313c31ed8ebe97ffd8a2.

This doesn't work.

Change-Id: I508850a45162a5c7502aa1b2661dbfbc26aea8aa

4 years agovector: refactor code to remove a global instance. submit/tizen/20190917.012523 submit/tizen/20190917.040942 submit/tizen/20190917.043123
Hermet Park [Mon, 16 Sep 2019 11:05:55 +0000 (20:05 +0900)]
vector: refactor code to remove a global instance.

This kind of global static instance is really dangerous in c++ because
We have no idea when the instance will be initalization exactly.

This might interrupt the program sequence, more worsely, it could break the program
while That breakage is totally up to the member instances of the class.

Very poor design.

Change-Id: I9d7dd12dc72a2936be95478d26aefc982e4eeeb9

4 years agoexample: bump up c++ version to 14 in cmake.
Hermet Park [Mon, 16 Sep 2019 09:34:18 +0000 (18:34 +0900)]
example: bump up c++ version to 14 in cmake.

Change-Id: Ibf1ce24e14e3484b381c8df7c7a307956a1a1528

4 years agolottie/parser: check for layer data integrity
subhransu mohanty [Thu, 5 Sep 2019 08:20:42 +0000 (17:20 +0900)]
lottie/parser: check for layer data integrity

this patch checkes if the layer has assigned itself as parent.

Change-Id: I3c46242adf741efb0ac06ca742cc224675bd7474

4 years agolottie/model: keep a stat of model for future local allocator.
sub.mohanty@samsung.com [Sun, 18 Aug 2019 09:24:36 +0000 (18:24 +0900)]
lottie/model: keep a stat of model for future local allocator.
In a complex lottie resource layer counts can exceed above 100 or in
some cases 1000. As in each frame rendering we visit the whole tree
allocating all of them using a local allocator will speed up the tree
visit as well as creation and destruction.

As the number of layer objects are fixed in a resource we can make use of
a dumb monotonic allocator to allocate all objects in one place.

Change-Id: I6c6c8ea83c8d6382609ea58b6640c033f7fd51f3

4 years agoremove -fPIE option. 19/213919/1
Hermet Park [Mon, 16 Sep 2019 12:42:54 +0000 (21:42 +0900)]
remove -fPIE option.

Seems this occurs the linking error.

Change-Id: I35d468580704eb8ecd809bbe27aefacc26f20629

4 years agotrial & error: to fix the lottie packaging issue in vd. 12/213912/1
Hermet Park [Mon, 16 Sep 2019 10:30:58 +0000 (19:30 +0900)]
trial & error: to fix the lottie packaging issue in vd.

no exact clue yet, check whether this affects the issue or not.

Change-Id: I7944ebab8b52b3edc2b5395ed49a566608154244

4 years agotrial & error to fix the lottie packaging issue in vd. 06/213906/1
Hermet Park [Mon, 16 Sep 2019 09:53:14 +0000 (18:53 +0900)]
trial & error to fix the lottie packaging issue in vd.

specify standard c++14 and pthread.

Change-Id: Id3402f20f3dbb4481dedbec300f453213a239166

4 years agostb: added exceptional handling. accepted/tizen/unified/20190905.232211 submit/tizen/20190905.064609
Hermet Park [Wed, 4 Sep 2019 08:26:26 +0000 (17:26 +0900)]
stb: added exceptional handling.

ftell() could return -1  but fseek() doesn't allow minus values.

Modified to skip irritating coverity report.

Change-Id: I7f66c2d0a3514d324ad23159c20be9fe1bb17724

4 years agostb: added exceptional handling.
Hermet Park [Wed, 4 Sep 2019 08:23:10 +0000 (17:23 +0900)]
stb: added exceptional handling.

ftell() could return -1  but fseek() doesn't allow minus values.

Modified to skip irritating coverity report.

Change-Id: Id2dbe0bb0852b3b30f5afe86b1677c99d5229e03

4 years agovector: refactor VBitmap to use rc_ptr instead of std::shared_ptr
sub.mohanty@samsung.com [Sun, 25 Aug 2019 06:53:52 +0000 (15:53 +0900)]
vector: refactor VBitmap to use rc_ptr instead of std::shared_ptr

4 years agolottie2gif: add option to set resolution
Hermet Park [Sat, 31 Aug 2019 09:11:26 +0000 (18:11 +0900)]
lottie2gif: add option to set resolution

Usage:
   lottie2gif [lottieFileName] [Resolution] [bgColor]

Examples:
    $ lottie2gif input.json
    $ lottie2gif input.json 200x200
    $ lottie2gif input.json 200x200 ff00ff

4 years agovector: added support rc_ptr and arc_ptr to vector
sub.mohanty@samsung.com [Sun, 25 Aug 2019 06:49:31 +0000 (15:49 +0900)]
vector: added support rc_ptr and arc_ptr to vector
why?
std::shared_ptr uses 2 pointer instead of 1.
we don't always need atomic ref count thats why rc_ptr
in situation where atomic ref cound needed use arc_ptr

4 years agolottie:move renderTree() implementation to its own file
sub.mohanty@samsung.com [Sun, 25 Aug 2019 03:32:25 +0000 (12:32 +0900)]
lottie:move renderTree() implementation to its own file

4 years agolottie: move cnodelist to capidata to reduce layer object size
sub.mohanty@samsung.com [Sun, 25 Aug 2019 01:27:51 +0000 (10:27 +0900)]
lottie: move cnodelist to capidata to reduce layer object size

Change-Id: Ie8321d759ae0c859a89cd0e3c27380300f65c56f

4 years agorlottie: refactor to avoid reversing the vector
sub.mohanty@samsung.com [Sat, 24 Aug 2019 11:35:56 +0000 (20:35 +0900)]
rlottie: refactor to avoid reversing the vector

Change-Id: I981c1dfbb0465af32032afab191f7dfd82fd513c

4 years agovector/matrix: added scale() api in vmatrix
sub.mohanty@samsung.com [Sun, 25 Aug 2019 02:50:28 +0000 (11:50 +0900)]
vector/matrix: added scale() api in vmatrix

Change-Id: Ide0ea9f1ae039fd9fd9a2a95cca8e45619254990

4 years agooptimization: refactor renderTree() api support to reduce lottie object size.
sub.mohanty@samsung.com [Sun, 18 Aug 2019 10:12:12 +0000 (19:12 +0900)]
optimization: refactor renderTree() api support to reduce lottie object size.

Moving all the data structure under LOTCApiData and allocationg it when needed
we will incur only a pointer overhead when renderApi() is not used.

Change-Id: I846cfabd14ba85397fa2ab8b3ee2caba41cd87cb

4 years agooptimization/model:refactor LOTData class to optimize memory accepted/tizen/unified/20190818.221648 submit/tizen/20190812.090759 submit/tizen/20190813.054738 submit/tizen/20190814.085144
sub.mohanty@samsung.com [Sat, 3 Aug 2019 06:47:11 +0000 (15:47 +0900)]
optimization/model:refactor LOTData class to optimize memory
As std::string uses short buffer optimization internally and because of
structure allignment the size of the LOTData was 32 byte.
by handling short buffer optimization ourself now size is reduced
from 32byte to 16 byte.

Change-Id: Icf7d43fb7f93d3dd9ee568130be7bf250809c98c

4 years agorlottie: change the name() api signature to return const char*
sub.mohanty@samsung.com [Sat, 3 Aug 2019 06:34:46 +0000 (15:34 +0900)]
rlottie: change the name() api signature to return const char*

this patch is a preparation for the optimization patch which
will manage the memory for name string itself instead of using std::string.

4 years agolottie/model: make LOTData class member data private and provide acessor function
sub.mohanty@samsung.com [Sat, 3 Aug 2019 06:25:06 +0000 (15:25 +0900)]
lottie/model: make LOTData class member data private and provide acessor function

4 years agoFix crash on invalid data.
John Preston [Mon, 5 Aug 2019 16:42:44 +0000 (17:42 +0100)]
Fix crash on invalid data.

4 years agorlottie: Fix typo
JunsuChoi [Tue, 6 Aug 2019 01:26:43 +0000 (10:26 +0900)]
rlottie: Fix typo

meter -> miter

4 years agoexample: remove a not permitted resource.
Hermet Park [Tue, 6 Aug 2019 05:31:45 +0000 (14:31 +0900)]
example: remove a not permitted resource.

4 years agocapi: rename the member name.
Hermet Park [Mon, 5 Aug 2019 11:35:30 +0000 (20:35 +0900)]
capi: rename the member name.

there is a conflict naming between name and keypath,
we should keep them same in one name.

4 years agocapi: keep code consistency.
Hermet Park [Mon, 5 Aug 2019 11:33:21 +0000 (20:33 +0900)]
capi: keep code consistency.

4 years agocapi: remove unused declaration.
Hermet Park [Mon, 5 Aug 2019 11:26:51 +0000 (20:26 +0900)]
capi: remove unused declaration.

Add it when it's really necessary.

4 years agoFix possible SW_FT_Outline points overflow.
John Preston [Tue, 30 Jul 2019 10:27:44 +0000 (12:27 +0200)]
Fix possible SW_FT_Outline points overflow.