Subhransu Mohanty [Fri, 14 Aug 2020 06:44:29 +0000 (15:44 +0900)]
rlottie: fix mask logic when inverted flag is set.
Added the test resource that is fixed by this patch.
Subhransu Mohanty [Thu, 13 Aug 2020 08:15:56 +0000 (17:15 +0900)]
parser: remove dead code
Subhransu Mohanty [Thu, 13 Aug 2020 07:02:06 +0000 (16:02 +0900)]
lottie: mark render classes final when possible
Subhransu Mohanty [Wed, 12 Aug 2020 04:51:09 +0000 (13:51 +0900)]
optimization: optimize VBezier::length()
- force VLine::length() function to be inline.
Subhransu Mohanty [Wed, 12 Aug 2020 04:29:28 +0000 (13:29 +0900)]
vector: added V_ALWAYS_INLINE macro.
Subhransu Mohanty [Wed, 12 Aug 2020 02:09:44 +0000 (11:09 +0900)]
optimization: refactor Property class for size optimization.
As only Property<VPointF> in Transform object has the tangent info
added a tag in Property to differentiate form other property.
This will add tangent info to only property that require them.
Subhransu Mohanty [Tue, 11 Aug 2020 09:25:01 +0000 (18:25 +0900)]
build: change LOT_BUILD to RLOTTIE_BUILD
nokeya [Tue, 11 Aug 2020 08:39:06 +0000 (11:39 +0300)]
improve README
Subhransu Mohanty [Tue, 11 Aug 2020 08:02:32 +0000 (17:02 +0900)]
example: updated test example.
Subhransu Mohanty [Tue, 11 Aug 2020 06:29:36 +0000 (15:29 +0900)]
example: update test example with fps info
Subhransu Mohanty [Tue, 11 Aug 2020 02:15:33 +0000 (11:15 +0900)]
rlottie/rapidjson: updated to latest rapidjson
Subhransu Mohanty [Tue, 11 Aug 2020 04:40:49 +0000 (13:40 +0900)]
parser: Fix the keyframe cache logic.
For some keyframes the cache function was not getting called.
so move the cache logic to outer function and call it when the property
is fully parsed.
Subhransu Mohanty [Tue, 11 Aug 2020 03:32:19 +0000 (12:32 +0900)]
parser: optimize zero length path keyframes
sub.mohanty@samsung.com [Sun, 9 Aug 2020 03:48:25 +0000 (12:48 +0900)]
rlottie: mark all user defined destructor's as noexcept
Hermet Park [Thu, 6 Aug 2020 11:43:45 +0000 (20:43 +0900)]
Attention, rlottie now has a MIT license.
We switch rlottie base license from LGPL2 to MIT
since we hope our project is more freely used by other projects for better world.
Change-Id: Ibb3023c628cc9d683bc5e577790e016605523f7b
Александр Першин [Fri, 7 Aug 2020 09:42:14 +0000 (12:42 +0300)]
fix msvc 2019 build
sub.mohanty@samsung.com [Sun, 9 Aug 2020 00:10:12 +0000 (09:10 +0900)]
parser: Refactor cache computation to fix the issue when no start value provided
Subhransu Mohanty [Fri, 7 Aug 2020 02:08:09 +0000 (11:08 +0900)]
perf: added tAtLength(len, totalLength) api to Bezier.
When length of the bezier is known , then pass it to tAtLength function
to avoid doing expensive length() operation again.
Subhransu Mohanty [Fri, 7 Aug 2020 01:40:05 +0000 (10:40 +0900)]
rlottie: rename LOT_EXPORT to RLOTTIE_API
Subhransu Mohanty [Fri, 7 Aug 2020 01:12:34 +0000 (10:12 +0900)]
rlottie: update license in source and header files
Subhransu Mohanty [Thu, 6 Aug 2020 03:56:48 +0000 (12:56 +0900)]
parser: cache some comutaion during parsing
Subhransu Mohanty [Tue, 4 Aug 2020 02:18:46 +0000 (11:18 +0900)]
rlottie: remove Qt license as we are no more using any code form Qt
Subhransu Mohanty [Mon, 3 Aug 2020 04:25:54 +0000 (13:25 +0900)]
lottie/model: Refactor filter model
Subhransu Mohanty [Mon, 27 Jul 2020 05:24:24 +0000 (14:24 +0900)]
build: provide cross file for arm build
Subhransu Mohanty [Thu, 23 Jul 2020 06:31:16 +0000 (15:31 +0900)]
vector: rendering refactor.
- replaced implementation form qt.
- refactor render function table.
- ran clang-format
Subhransu Mohanty [Wed, 22 Jul 2020 05:50:19 +0000 (14:50 +0900)]
rlottie: update VInterpolator license header
Hermet Park [Tue, 21 Jul 2020 04:23:04 +0000 (13:23 +0900)]
Update README.md
adjust icon size.
Subhransu Mohanty [Tue, 21 Jul 2020 01:43:52 +0000 (10:43 +0900)]
wasm: update the build flag to reduce generated wasm file size
Hermet Park [Mon, 20 Jul 2020 11:13:57 +0000 (20:13 +0900)]
example: discarded efl_animview
this example is no more valid.
Subhransu Mohanty [Mon, 20 Jul 2020 08:07:39 +0000 (17:07 +0900)]
meson: Added Emscripten wasm build support
Hermet Park [Mon, 20 Jul 2020 08:07:50 +0000 (17:07 +0900)]
updated logo resources.
re-touched for better quality.
Hermet Park [Mon, 20 Jul 2020 08:00:03 +0000 (17:00 +0900)]
README: added rlottie logo
Subhransu Mohanty [Mon, 20 Jul 2020 01:57:19 +0000 (10:57 +0900)]
meson: Fix build issue when thread support is disabled.
updated travis to check this setup.
Subhransu Mohanty [Mon, 20 Jul 2020 00:24:10 +0000 (09:24 +0900)]
travis: update travis to test for all combination of meson options
Subhransu Mohanty [Mon, 20 Jul 2020 00:26:49 +0000 (09:26 +0900)]
buildfix: Fix build break when cache support is turned off
Subhransu Mohanty [Wed, 15 Jul 2020 04:08:33 +0000 (13:08 +0900)]
lottie: refactor lottie_animation_property_override implementation.
as va_arg() is a macro it affects the function size . this reduces the function size by .5KB.
Subhransu Mohanty [Mon, 13 Jul 2020 07:23:13 +0000 (16:23 +0900)]
parser: Fix build break in parser debug mode
Subhransu Mohanty [Wed, 8 Jul 2020 08:17:30 +0000 (17:17 +0900)]
rlottie: refactor lottie model and renderer code.
- move all the internal code to rlottie::internal namespace
- move model related code to rlottie::internal::model namespace
- move rendering code to rlottie::internal::renderer namespace.
- run clang-format
- removed LOT class prefix.
Subhransu Mohanty [Wed, 8 Jul 2020 04:50:50 +0000 (13:50 +0900)]
lottie/model: refactor code to remove LOTAnimatableShape class
Subhransu Mohanty [Fri, 3 Jul 2020 03:57:03 +0000 (12:57 +0900)]
rlottie/api: Added loadFromData() api with ColorFilter support
Some usecase needs to apply the color filter during parsing for theme
support.
Ex: Same resource can be used for different theme with different colorfilter
which will update the color pallet according to the theme.
Anton Sergeev [Sat, 25 Apr 2020 11:15:37 +0000 (14:15 +0300)]
Use round in frameAtPos
Without this fix frameAtPos doesn't return last frame
for position (1 - eps)
Subhransu Mohanty [Thu, 2 Jul 2020 06:56:58 +0000 (15:56 +0900)]
lottie/parser: refactor shape data parsing
Subhransu Mohanty [Tue, 30 Jun 2020 03:30:25 +0000 (12:30 +0900)]
freetype: cherry pick optimization patches from freetype.
Subhransu Mohanty [Thu, 25 Jun 2020 07:41:15 +0000 (16:41 +0900)]
optimization: added SurfaceCache to reduce intermediate buffers.
During rendering layers with mask/matte we need intermediate buffers
by keeping the surface cache we can reuse the same buffer for different
layer rendering to reduce memory footprint.
Subhransu Mohanty [Thu, 25 Jun 2020 03:46:49 +0000 (12:46 +0900)]
vector: cleanup ft_raster header
Subhransu Mohanty [Fri, 19 Jun 2020 07:09:22 +0000 (16:09 +0900)]
build fix
Subhransu Mohanty [Fri, 19 Jun 2020 01:26:43 +0000 (10:26 +0900)]
meson: added minimum meson version requirement
Subhransu Mohanty [Fri, 19 Jun 2020 01:04:12 +0000 (10:04 +0900)]
corrected version number of lottie library
Subhransu Mohanty [Mon, 8 Jun 2020 02:07:59 +0000 (11:07 +0900)]
example: Fix memory leak
Hermet Park [Wed, 8 Apr 2020 06:56:56 +0000 (15:56 +0900)]
use c++ standard type integer.
vc++ doesn't recognize uint type?
Hermet Park [Mon, 6 Apr 2020 07:46:44 +0000 (16:46 +0900)]
example: return the value properly.
this fixes a compile warning:
Change-Id: I40979b54309f62c25a6a9a65400f743c74135288
warning: no return statement in function returning non-void [-Wreturn-type]
Hermet Park [Fri, 20 Mar 2020 04:36:42 +0000 (13:36 +0900)]
updated license in the spec.
Changed this by protex guidance.
Change-Id: Ica8974af5d06ee5ea9e6e7f06f0d82c551599915
JunsuChoi [Fri, 20 Mar 2020 04:10:28 +0000 (13:10 +0900)]
Spec: Update license
Change-Id: I8d4a8ddfa38707dc15df25e4fbe49792aae80ed9
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