Hermet Park
8aa12ca468
taskschduler: fix a regression deadlock issue
...
This fix introduces a workaround to enforce synchronous tasking on worker threads.
Sometimes, out of threads get stuck in a deadlock condition.
@Issue: https://github.com/thorvg/thorvg/issues/1636
2023-09-18 21:06:01 +09:00
Hermet Park
81599a14a0
loader/lottie: code refactoring
...
moved clipping logic to the coherent precomp method.
2023-09-18 10:41:00 +09:00
Hermet Park
42d7a5faed
loader/lottie: correct the frame range.
...
Fixed some incorrect time-remapping logic,
Also, the last frame should not be taken into account for the drawing.
2023-09-18 10:41:00 +09:00
Hermet Park
87dee3c1f7
loader/lottie: fix a memory leak
...
A dangling scene instance should be deleted properly.
2023-09-18 10:41:00 +09:00
Hermet Park
00ab8c254d
loader/lottie: fix a missing opacity propagation.
...
the propagated opacity size should be accumulated.
2023-09-14 21:14:33 +09:00
Hermet Park
6b3bd8b27a
loader/lottie: fix a precomposition+matting.
...
the matting target with a precomp lost the referencing in
the building the structure. this fixes it.
2023-09-13 10:11:24 +09:00
Hermet Park
2998eb18fc
loader/lottie: fix an invalid memory access crash.
2023-09-12 20:56:38 +09:00
Hermet Park
3752ad93b3
loader/lottie: do not draw zero size content
...
skip rendering by setting opacity zero, if the scale factor is zero.
2023-09-12 20:55:16 +09:00
Hermet Park
e14e108d4a
loader/lotte: ++clean code
2023-09-08 15:01:28 +09:00
Hermet Park
516e8bf042
loader/lottie: minimum support for 3D transform
...
It lacks perspective projection information,
so it transforms 3D axes with orthogonal projection.
2023-09-07 17:59:52 +09:00
Hermet Park
b5fcc90e5d
loader/lottie: fix a wrong precomp time remapping.
...
the remapped frame number should be applied to the only referenced
precomp layer.
2023-09-07 17:59:52 +09:00
Hermet Park
a49ac81543
loader/lottie: support the repeater property
2023-09-07 12:17:16 +09:00
Hermet Park
2fab9fb7d9
loader/lottie: fix the incorrect viewport clip condition.
...
the viewport clip should be applied when it has a precomposition reference
but should not apply to image assets.
2023-09-07 12:17:16 +09:00
Hermet Park
dae6636d29
loader/lottie: filled a missing gradient stroke dash body.
2023-09-05 18:41:20 +09:00
Hermet Park
64a444aeb6
loader/lottie: support focal property in the radial gradient
2023-09-05 10:29:12 +09:00
Hermet Park
e0d1c947e6
infra: renamed the files for the consistency.
2023-09-04 17:26:43 +09:00
Hermet Park
ad9d9d0ecd
loader/lottie: support trimpath feature
2023-09-01 13:16:18 +09:00
Hermet Park
22771b5d8a
loader/lottie: fix a broken masking feature.
...
the inverse alpha should keep its own value.
previously, it's modified to alpha by a mistake.
2023-09-01 13:16:18 +09:00
Hermet Park
7c669f622f
loader/lottie: enhanced the coverage of the rounded corner feature.
...
Rounded corners should now be applied not only to rectangles
but also to path strokes. This enhancement changes the stroke join style
to round when a rounded corner is present.
Indeed, rounded corners ensure the accurate calculation of roundness based on the join style.
However, this patch has not yet been designed to handle it.
2023-09-01 13:16:18 +09:00
Hermet Park
07069f6640
loader/lottie: introduce chaining maskings more effectively.
2023-08-28 11:55:17 +09:00
Hermet Park
7b40c741ac
loader/lottie: correct a polystar transform.
...
Properly propagate the transform information to the merged shapes.
This corrects the incorrect transformation applied to the subsequent shapes.
2023-08-24 10:57:38 +09:00
Hermet Park
3d5c5ef0fa
loader/lottie: support the stroke offset property
2023-08-24 10:56:07 +09:00
Hermet Park
68f4193378
loader/lottie: support the polystar property.
2023-08-23 13:12:26 +09:00
Hermet Park
345b867c38
loader/lottie: optimize the matrix computation.
...
Do not multiply the matrices if either one is identity.
2023-08-22 21:25:42 +09:00
Hermet Park
b240e781d9
loader/lottie: ++optimization.
...
Removed intermediate scenes that were nothing more than transformations.
2023-08-22 21:25:37 +09:00
Hermet Park
664f028c15
loader/lottie: fix all data conversion compiler warnings on windows
2023-08-18 16:36:15 +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
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
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
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
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
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
73a8792eae
loader lottie: add lottie builder.
2023-07-27 00:31:27 +09:00