Hermet Park
0832a188fe
animation/lottie: updated the frame count unit.
...
replace the frame count unit from the int32_t to float
since animations could smoothly interpolate key-frames.
This notificably improve the animation smoothness in Lottie
Beta API changes:
Result Animation::frame(uint32_t no) -> Result Animation::frame(float no)
uint32_t Animation::curFrame() const -> float Animation::curFrame() const
uint32_t Animation::totalFrame() const -> float Animation::totalFrame() const
2023-12-26 17:51:53 +09:00
Hermet Park
1b15233aeb
api: enhance the API usage.
...
Allow users to omit the default type casting for added convenience.
2023-12-26 17:50:36 +09:00
Hermet Park
8af77ba5b1
lottie: Fixed trimpath to support simultaneous trimpath
...
The previous version omitted support for simultaneous trimpath,
but it is now working as intended.
2023-12-26 17:50:08 +09:00
Hermet Park
244e984df8
lottie/builder: Fix overlapped stroking outlines.
...
Previously, the builder accumulated the outlines and fills
in one paint to reduce the rendering context.
However, this approach won't work for Lottie
if the resource contains multiple strokes with branched groups.
We should apply the optimization
only when the specified condition is satisfied.
2023-12-26 17:50:02 +09:00
Martin Capitanio
2c7120ac3d
loader/jpg: Fix a regression bug.
...
Fixes #1705
2023-12-26 17:49:29 +09:00
Hermet Park
8a6b5626fc
lottie/builder: fix a regression bug.
...
currently thorvg doesn't support full 3d transformation.
orthogonal projection is mandatory.
Issue: https://github.com/thorvg/thorvg/issues/1698
2023-12-26 17:49:03 +09:00
Martin Capitanio
7444e5bd25
loader/svg: Fix maskContentUnits userSpaceOnUse/objectBoundingBox
...
Fixes #1694
2023-12-26 17:48:33 +09:00
Hermet Park
e1f1b9656b
lottie/builder: revise the render context for saving memory.
...
Allocate repeater context only when it's valid.
2023-12-26 17:47:53 +09:00
Hermet Park
820547562c
Lottie: Fixed handling of multiple strokes in one layer.
...
Revised the rendering logic of Lottie by creating a new rendering context
using a queue when multiple strokes are requested.
Issue: https://github.com/thorvg/thorvg/issues/1642
2023-12-26 17:47:47 +09:00
Hermet Park
7ec969be29
lottie/builder: Fix incorrect stroke width scaling propagation.
...
The transform (scale) should be applied to the following drawing elements,
not the previous stroke.
2023-09-26 14:24:52 +09:00
Hermet Park
74b67919e0
tvg: support radial gradient focal properties
...
properly store/restore the radial gradient focal properties
from the tvg loader and saver
2023-09-26 13:05:27 +09:00
Hermet Park
ed23b432bb
tvg: support dash offset property
...
properly store/restore the dash offset property
from the tvg loader and saver
Issue: https://github.com/thorvg/thorvg/issues/1617
2023-09-26 13:05:27 +09:00
Hermet Park
fdd90605c7
lottie/builder: fix a memory leak.
...
fixed a memory leak in an exceptional case.
2023-09-26 10:48:33 +09:00
Hermet Park
1819fed033
renderer/paint: fixed a mismatched reference count.
...
This correction ensures a consistent use of 'ref' and 'unref' for paints to release memory properly.
The memory leak occurred when a picture was not pushed to a valid canvas.
This issue was reported by the unit-test memory sanitizer.
2023-09-26 10:48:33 +09:00
Hermet Park
dc9e14a20f
lottie/model: revise the color stop population logic.
...
The omitted data must be generated with interpolation.
This change supplements that logic.
2023-09-25 11:04:20 +09:00
Hermet Park
3b611e0da9
lottie: fixed data conversion complie warnings
2023-09-22 12:35:13 +09:00
Hermet Park
ec5a32bb73
lottie: enhanced the colorstop feature.
...
Lottie ColorStop RGB / Alpha can be dealt with individually.
Since thorvg handles this one unified set,
lottie model need to merge the data into one structure.
2023-09-21 22:11:31 +09:00
Hermet Park
e2b7bfc198
lottie model: corrected stroke default value according to the lottie-spec.
2023-09-21 22:11:31 +09:00
Hermet Park
cba2b0f724
lottie/builder: correct a parenting error.
...
There is a missing case where a layer didn't parent properly,
especially when the parent is the matte target.
2023-09-21 22:11:31 +09:00
Hermet Park
5b8c66f5c8
lottie/builder: fix an invalid matting result.
...
Previously, it ignored the matte when it was out of frames for the sake of optimization.
However, this led to an incorrect matting result.
It should make the scene invisible when the matting is invisible.
2023-09-21 22:11:31 +09:00
Hermet Park
99609c7968
lottie: fixed an incorrect view clipping problem.
...
this missing initialization occured an incorrect view clipping.
2023-09-19 21:55:25 +09:00
Hermet Park
2cada9c446
loader/lottie: code refactoring.
...
migrate transform from the group to the layer.
transformation is not necessary in group but layer.
This helps to reduce the unnecessary assigning of the transformation
in group instances.
2023-09-19 14:03:13 +09:00
Hermet Park
549f4b1308
loader/lottie: properly handle graident opacity attributes.
...
That property has been missed in the implementation.
2023-09-19 10:33:22 +09:00
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
e4330f7089
loader/lottie: implemented missing hold interpolation.
...
path/colorstop has been missed to implement that feature.
2023-09-14 01:04:37 +09:00
Hermet Park
1bcbac71ab
loader/lottie: fix a invalid matte source access.
...
parser ignored a matte source has no target.
this fixes the corner case.
2023-09-13 13:16:13 +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
f3c8d10b90
loader/lottie: fix a dash gap size.
...
fix a bug that was introduced by a mistake.
2023-09-08 15:01:28 +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
Mira Grudzinska
fd014df1a9
loader/svg: support the focal property in the radial gradient.
...
@Issue: https://github.com/thorvg/thorvg/issues/1555
2023-09-04 16:48:38 +09:00
Hermet Park
ac8f3b8be6
loader/lottie: support hold interpolation.
2023-09-04 11:16:01 +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
c23c556f61
loader/lottie: fix a default color of the solid layer.
...
we assume the default color is black.
before this fix, the value is not designated properly.
2023-08-30 17:46:32 +09:00
Hermet Park
ce5ac1c114
loader/lottie: fix a crash issue caused by incorrect gradient alpha handling.
...
This fix addresses the interpretation of gradient alpha values,
preventing a potential crash due to invalid memory access.
2023-08-30 17:46:27 +09:00
Hermet Park
5a73bcaa8f
common/array: code refactoring
...
easy access to a specific data with a operator.
2023-08-29 12:28:38 +09:00