Hermet Park
c90962a26c
lottie/loader: fix memory leaks
2023-08-18 15:16:34 +09:00
Hermet Park
cf826bee5d
lottie/builder: --compiler warning on MacOS
2023-08-18 13:14:06 +09:00
Hermet Park
994c1b99a5
lottie/loader: support the masking features.
...
Enhancing the basic masking options by providing additional support.
2023-08-17 23:03:37 +09:00
Hermet Park
3b2c040f70
loader/lottie: add the missing solid color layer.
2023-08-17 23:03:37 +09:00
Hermet Park
e7d29e166b
loaders: unify duplicated b64 decoders.
...
- move the svg/lottie b64 decoders to tvgLzw.
- renames tvgLzw -> tvgCompressor
2023-08-17 21:28:58 +09:00
Mira Grudzinska
5bafdcbfa3
lottie_loader: return false for frameRate = 0
...
Loading a png file without giving a mimetype, resulted
in an error from the lottie loader.
2023-08-17 18:47:51 +09:00
Hermet Park
15c09f260f
loader/lottie: Fix the incorrect precomp layer frame time
...
The frame number of the referenced layer should be
reduced by the precomp start frame.
2023-08-17 15:53:12 +09:00
Hermet Park
5778bda4db
loader/lottie: do not build layers if the frame is out.
2023-08-15 15:49:10 +09:00
Hermet Park
86aabb4df0
loader lottie: image optimization
...
In every frame, the image undergoes a Colorspace conversion attempt.
This approach aims to bypass the step by retaining the pre-converted image data.
I acknowledge that this might not be the best approach,
but it is proving to be quite effective at the moment.
2023-08-15 15:49:05 +09:00
Hermet Park
df43f91644
loader/lottie: optimize the header task.
...
To achieve full threading efficiency,
the header should return the necessary properties:
view size, framerate, and duration.
This commit adds duration parsing.
Also don't do the header task in case of single thread
because there wouldn't be parallel effects.
2023-08-15 15:48:53 +09:00
Hermet Park
9e0a3aa678
loader lottie: tiny data copy optimization.
...
This patch tries to skip the matrix data copy as possible.
2023-08-15 15:48:48 +09:00
Hermet Park
80ce345660
loader\lottie: Fixed incorrect b64 decoding
...
Image padding size should be increased by 1 for '\0'."
2023-08-11 22:57:16 +09:00
Hermet Park
374a125280
loader/lottie: enhance stability
...
Addressed corner cases to prevent memory violations.
2023-08-11 15:00:09 +09:00
Hermet Park
1b020f70c4
loader lottie: support for stroke dash style
...
However, dash offset is still missing.
The TVG canvas needs to add the stroke offset feature.
2023-08-11 11:41:28 +09:00
Hermet Park
345ef54e26
loader/lottie: add the rounded corner feature
...
The rounded rectangle property should be propagated to the root
through the lottie model scene-tree.
2023-08-09 21:30:25 +09:00
Hermet Park
8f4f3d6f1b
loader/lottie: Add radial gradient support
...
This allows for the creation of basic radial gradients,
without support for focal points.
2023-08-09 21:30:25 +09:00
Hermet Park
d7c70c5371
loader/lottie: fix a missing layer timeremap.
...
The frame count should have been multiplied with the timeStretch property.
also newly implemented the TimeRemap(tm) property
2023-08-09 21:30:25 +09:00
Hermet Park
6f8504d3b9
loader/lottie: ++safety
...
- add an execeptional hanlding at parsing the assets.
- The precomp layer failed to prepare its instance in the parsing stage. This corrects the mistake.
2023-08-09 21:30:25 +09:00
Hermet Park
f757eb6a71
loader/lottie: Support image property
...
This change makes it possible to use Lottie animations
that contain images from embedded/external resources.
2023-08-08 23:47:58 +09:00
Hermet Park
f31076a67e
utils/str: Supplements functions.
...
Added strDirname(), which returns the directory path name from the given string.
Added str2int(), which converts from the string to the integer.
These functions are used to supplement the existing string manipulation functions in the utils/str module.
2023-08-08 23:47:58 +09:00
Mira Grudzinska
6ad4a0b180
lottie_loader: custom strtof and strndup used
...
The custom version of 'strtof' must be used
because its result is dependent on the current
locale, which is't set in the project.
2023-08-05 11:49:36 +09:00
Mira Grudzinska
4786ffc315
lottie_loader: fixing error with math consts
...
The math.h was included before the _USE_MATH_DEFINES
was defined (in tvgMath.h) causing an error while
MinGw was used.
Since non of these header is needed directly, the header
is removed.
2023-08-01 14:53:36 +02:00
Hermet Park
816f179c74
loader lottie: fix the last memory leak.
2023-07-29 16:16:37 +09:00
Hermet Park
e0ed2c7ace
loader lottie: ++safety.
...
It shouldn't corrupt, even if it doesn't support certain features.
2023-07-29 10:29:03 +09:00
Hermet Park
229efd7807
loader lottie: fixed the memory leaks.
...
All memory leaks detected by the sanitizer have been fixed.
2023-07-29 10:29:03 +09:00
Hermet Park
68b8fce501
loader lottie: ++optimization.
...
Aggressive parallelization is implemented to perform updates
on every frame in an asynchronous manner.
2023-07-28 16:54:44 +09:00
Hermet Park
023b38ad3c
loader lottie: fix a missing initialization.
...
this breaks 0 frame lottie rendering, now it's fixed.
2023-07-28 16:54:44 +09:00
Hermet Park
193a9833a8
lottie loader: implement the necessary interaces.
2023-07-27 00:31:27 +09:00
Hermet Park
73a8792eae
loader lottie: add lottie builder.
2023-07-27 00:31:27 +09:00
Hermet Park
03f878bb2e
loader lottie: adds the lottie property, model and parser.
2023-07-27 00:31:27 +09:00
Hermet Park
b060959e0d
loader lottie: add a lottie specific interpolator.
2023-07-27 00:31:27 +09:00
Hermet Park
60f81b7da7
loader lottie: added empty interface body
...
This marks the first step towards implementing the Lottie feature.
2023-07-27 00:31:27 +09:00
Hermet Park
0f40eb90ae
common loader: adds animatable() interface
...
This interface returns a value indicating
whether the current loader supports animation or not.
2023-07-27 00:31:27 +09:00
Hermet Park
250e2d7d34
loader lottie: +rapidjson for lottie json parser.
...
We've investigated two json parsers, simdjson & rapidjson.
Since the size is higer priorty for thorvg, we adopted rapidjson.
It's under MIT license.
See: https://github.com/Tencent/rapidjson
2023-07-27 00:31:27 +09:00