JunsuChoi [Wed, 11 Mar 2020 12:42:55 +0000 (21:42 +0900)]
vdrawable: Don't strdup for name data
The name information passed in is allocated and managed by the parser.
There is no need to duplicate the same data.
Change-Id: I9c488e654c01bdfe7c48388c29fad350cd261deb
Hermet Park [Tue, 17 Mar 2020 04:58:03 +0000 (13:58 +0900)]
correct rlottie license.
Change-Id: I947ab1db61d542d5d2e8adf729f35ecd83562ab7
JunsuChoi [Tue, 10 Mar 2020 10:40:42 +0000 (19:40 +0900)]
rlottie/capi: expose name info of node object
expose the keypath data of nodes such as fill and stroke.
Change-Id: I6d5f45a6cf1694f50b56f719d2d38a330812c575
Hermet Park [Tue, 10 Mar 2020 14:20:33 +0000 (23:20 +0900)]
build: disable thread_local if the thread is not supported.
Some version of ios/i386 compiler doesn support this thread_local feature.
Actually, thread_local doesn't necessary if the thread doesn't supported.
Change-Id: Ifcebef55f0809603695ce83cf4b35edab2e87188
JunsuChoi [Tue, 10 Mar 2020 09:31:55 +0000 (18:31 +0900)]
vector: Add name member in VDrawable
for expose of keypath.
Change-Id: I907fcdcc76b0f66e294e4df5073de39bb8bba549
Hermet Park [Thu, 5 Mar 2020 02:59:55 +0000 (11:59 +0900)]
add Skia opensource license.
Change-Id: I656e65534af9f0504536d0676a41d7adc7f37c6b
JunsuChoi [Fri, 14 Feb 2020 06:42:06 +0000 (15:42 +0900)]
rlottie: Refactor transformation matrix of proxymodel
Move value calculation given by property to proxy model
And add more sample to the demo.
JunsuChoi [Mon, 20 Jan 2020 01:22:40 +0000 (10:22 +0900)]
rlottie: Supports the Transform Rotation property.
Use setValue<rlottie::Property::TrRotation> return float type.
The value is degree. [0 ~ 360]
Example) example/demo
JunsuChoi [Thu, 16 Jan 2020 12:07:22 +0000 (21:07 +0900)]
rlottie: Supports the Transform Scale property.
Use setValue<rlottie::Property::TrScale> and return rlottie::Size type.
The default value of Size is 100. If it goes to zero it won't be visible.
If it is negative it will be flipped. If it is greater than 100, it will be enlarged.
Example) example/demo
JunsuChoi [Fri, 10 Jan 2020 08:40:32 +0000 (17:40 +0900)]
lottie: Remove duplicate model data.
mData is same as mModel in LOTContentGroupItem. So remove mData member.
Hermet Park [Tue, 7 Jan 2020 07:13:38 +0000 (16:13 +0900)]
Updated showcase images.
JunsuChoi [Tue, 31 Dec 2019 07:37:31 +0000 (16:37 +0900)]
rlottie: Supports the Transform Position property.
Use setValue<rlottie::Property::TrPosition> and return rlottie::Point type.
Example) example/demo
JunsuChoi [Tue, 24 Dec 2019 06:22:03 +0000 (15:22 +0900)]
example : Add reference header file for updated class name
The class name will be updated.
efl_ui_animation_view -> efl_ui_vg_animation
So add referenced file path.
subhransu mohanty [Fri, 29 Nov 2019 08:10:19 +0000 (17:10 +0900)]
rlottie: reenabled optimization when paint item has no content
subhransu mohanty [Fri, 29 Nov 2019 06:34:22 +0000 (15:34 +0900)]
rlottie: update the drawable before returning the result.
If the drawable is not updated in case of ZERO opacity it will keep the old value and
will render the old content.
subhransu mohanty [Fri, 29 Nov 2019 05:13:43 +0000 (14:13 +0900)]
rlottie: Disable optimization to fix regression
subhransu mohanty [Thu, 14 Nov 2019 06:54:49 +0000 (15:54 +0900)]
rlottie: Fix build break for debug build.
Caused by recent refactoring of the model objects.
JunsuChoi [Thu, 14 Nov 2019 00:56:15 +0000 (09:56 +0900)]
rlottie: Add initialization of pointer members that were not
Change-Id: Ice67910804be88496aad47d32cca430d9865de40
JunsuChoi [Thu, 14 Nov 2019 00:56:15 +0000 (09:56 +0900)]
rlottie: Add initialization of pointer members that were not
Change-Id: Ia1cf809c684241fcebef618c97f38d52081611a0
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
subhransu mohanty [Mon, 4 Nov 2019 07:41:28 +0000 (16:41 +0900)]
fixed memory leak in demo application
subhransu mohanty [Mon, 4 Nov 2019 06:53:22 +0000 (15:53 +0900)]
rlottie/model: lazy generation of layerlist
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.
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%.
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.
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.
subhransu mohanty [Fri, 1 Nov 2019 04:46:52 +0000 (13:46 +0900)]
rlottie/vector: refactor to make VPainter as POD object
subhransu mohanty [Fri, 1 Nov 2019 01:12:22 +0000 (10:12 +0900)]
rlottie: remove unused data member
subhransu mohanty [Thu, 31 Oct 2019 02:33:00 +0000 (11:33 +0900)]
rlottie: remove unused classes in rlottie to reduce library size
JunsuChoi [Wed, 30 Oct 2019 11:23:32 +0000 (20:23 +0900)]
VDrawable: Fix initial value of an enum
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.
subhransu mohanty [Wed, 30 Oct 2019 09:18:10 +0000 (18:18 +0900)]
lottie/opt: refactor drawable class to optimize object size
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.
subhransu mohanty [Mon, 28 Oct 2019 10:47:07 +0000 (19:47 +0900)]
rlottie: added a dedicated pass to preprocess the render nodes
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
JunsuChoi [Fri, 18 Oct 2019 02:39:43 +0000 (11:39 +0900)]
Example: Change findFrameAtMarker return type.
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.
subhransu mohanty [Fri, 18 Oct 2019 01:38:52 +0000 (10:38 +0900)]
example: updated step size of slider in lottieviewer example
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
Nicholas Guriev [Wed, 16 Oct 2019 18:16:12 +0000 (21:16 +0300)]
Relocatable module of image loader
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
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
Anatoly Korniltsev [Mon, 14 Oct 2019 07:14:28 +0000 (10:14 +0300)]
review fix: move reproducerts to test folder
Anatoly Korniltsev [Wed, 9 Oct 2019 22:03:56 +0000 (01:03 +0300)]
Prevent type confusion with NDEBUG
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.
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
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
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
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
JunsuChoi [Fri, 11 Oct 2019 02:57:09 +0000 (11:57 +0900)]
rlottie_capi: Add Alpha member in ImageInfo
subhransu mohanty [Fri, 11 Oct 2019 00:58:14 +0000 (09:58 +0900)]
vector: support rendering of texture brush with alpha.
Hermet Park [Thu, 10 Oct 2019 11:30:02 +0000 (20:30 +0900)]
README: remove an emptry space
subhransu mohanty [Thu, 10 Oct 2019 06:42:18 +0000 (15:42 +0900)]
vector: refcator VBrush to reduce memory footprint
Hermet Park [Thu, 10 Oct 2019 07:06:00 +0000 (16:06 +0900)]
updated README.
subhransu mohanty [Thu, 10 Oct 2019 04:34:18 +0000 (13:34 +0900)]
rlottie: refactor to reduce lottie item memory footprint
JunsuChoi [Thu, 10 Oct 2019 06:37:48 +0000 (15:37 +0900)]
README.md: Update Supported feature (Markers)
subhransu mohanty [Tue, 8 Oct 2019 04:33:57 +0000 (13:33 +0900)]
rlottie: support composition marker feature in lottie
Hermet Park [Mon, 7 Oct 2019 11:02:00 +0000 (20:02 +0900)]
doc: fix typo
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
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
Hermet Park [Fri, 4 Oct 2019 06:19:06 +0000 (15:19 +0900)]
vector vrle: remove a line affecting nothing.
Change-Id: Ib0079788720e9e6c0175c4a925e6bbd3ac9c9ec4
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
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
Hermet Park [Fri, 4 Oct 2019 03:44:04 +0000 (12:44 +0900)]
updated AUTHORS
Change-Id: I8d9e0c1ce10005a5a738d35518d72e3f632f4179
subhransu mohanty [Wed, 2 Oct 2019 07:04:38 +0000 (16:04 +0900)]
lottie/parser: reduce memory allocation during shapedata parsing
JunsuChoi [Wed, 2 Oct 2019 06:21:33 +0000 (15:21 +0900)]
Example : Enhancement dynamic property demo
Change json sample and add more cases.
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.
JunsuChoi [Thu, 26 Sep 2019 11:24:36 +0000 (20:24 +0900)]
README.md : Add dynamic property
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.
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
subhransu mohanty [Fri, 27 Sep 2019 06:59:44 +0000 (15:59 +0900)]
vector: added reset() api to VBitmap
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
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
subhransu mohanty [Thu, 26 Sep 2019 01:15:00 +0000 (10:15 +0900)]
vector: refactor Vdasher to take result path as parameter
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.
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.
subhransu mohanty [Thu, 19 Sep 2019 07:45:45 +0000 (16:45 +0900)]
vector/rle: added operator&=() api to VRle
Hermet Park [Tue, 17 Sep 2019 10:53:42 +0000 (19:53 +0900)]
vector/helper: let VGradientCache has perfect singletone interface.
John Preston [Sun, 1 Sep 2019 09:04:26 +0000 (12:04 +0300)]
Fix possible stack corruption.
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.
John Preston [Sun, 1 Sep 2019 07:37:11 +0000 (10:37 +0300)]
Check that root layer was found.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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