Mira Grudzinska
934a6e5418
ttf: prevent crash while converting utf8 to unicode
...
If wrong utf8 sequence if given as an input, decoding
return nullptr and it has to be handled correctly.
2025-04-11 19:18:04 +09:00
Mira Grudzinska
54b33fcd28
lottie: safety++
...
Prevents a crash when the font family in the text document
does not match any font in the provided font list.
2025-04-11 19:17:50 +09:00
Hermet Park
8c4f3e7eec
loaders: explicit variable scope to improve portability
...
issue: https://github.com/godotengine/godot/pull/105093
2025-04-11 12:56:10 +09:00
Hermet Park
06103ed355
doc: added lottie creator in practice.
2025-04-11 12:41:25 +09:00
Hermet Park
4bc73c8a09
lottie: --compiler warnings on msvc
2025-04-10 22:09:33 +09:00
Hermet Park
ea54154906
lottie/expressions: tiny optimization
...
reuse the user callback data by the reference count.
2025-04-10 15:10:33 +09:00
Hermet Park
e308d3416a
lottie: code refactoring
...
align the internal naming for lottie "ix" properites and its variables
2025-04-10 15:10:33 +09:00
Hermet Park
882cb316c4
lottie: allow custom effects to use nm/mn both identifiers
2025-04-10 15:10:33 +09:00
Hermet Park
a4ed00b08e
examples: ++bounding box
2025-04-10 12:32:06 +09:00
Benjamin
b38b6b659d
common: fix incorrect aabb of scenes
2025-04-10 12:31:28 +09:00
Mira Grudzinska
f8c5f3a69c
lottie: follow path stabilization++
...
* lottie: fixes in follow path
Each time the 'updateText' was called, the mask
path (if the follow path existed) was appended
to the previous one, causing it to grow infinitely.
A 'clear' call on the existing path was missing.
The positions on the follow path for distances larger
than 2 x mask path length were not correctly calculated.
* lottie: fix crash on follow path
It could happen that the searched text position
(distance from the start pointt) on the follow path
was exactly equal to the path length. In such a case,
the cmds pointer pointed to the last element, and in
the next iteration, this caused a crash.
2025-04-10 12:13:52 +09:00
Sergii Liebodkin
eb67549295
gl_engine: Introduce tritone effect for opengl renderer
...
issue: https://github.com/thorvg/thorvg/issues/3054
2025-04-10 11:36:47 +09:00
Sergii Liebodkin
95f1b84a56
gl_engine: Introduce tint effect for opengl renderer
...
issue: https://github.com/thorvg/thorvg/issues/3054
2025-04-10 11:36:47 +09:00
Sergii Liebodkin
85e215a294
gl_engine: Introduce fill effect for opengl renderer
...
issue: https://github.com/thorvg/thorvg/issues/3054
2025-04-10 11:36:47 +09:00
Hermet Park
bf3bd908ff
examples: updated lottie samples
2025-04-09 12:19:39 +09:00
Mira Grudzinska
b304448ef7
lottie: revert "lottie: more precise culling for inverse mattes"
...
This reverts commit 7ef3352efa
.
For mattes of type 'InvAlpha' or 'InvLuma', the matted layer
can still be visible regardless of the matte's opacity (unlike
'Alpha' and 'Luma' masks, which cut out the entire layer when
opacity = 0). The previously introduced optimization incorrectly
assumed that with opacity = 255, the image would not be visible.
@Issue: https://github.com/thorvg/thorvg/issues/3375
@Issue: https://github.com/thorvg/thorvg/issues/3380
@Issue: https://github.com/thorvg/thorvg/issues/3381
@Issue: https://github.com/thorvg/thorvg/issues/3382
2025-04-09 11:21:36 +09:00
Sergii Liebodkin
595769257e
gl_engine: Introduce gaussian blur effect
...
issue: https://github.com/thorvg/thorvg/issues/3054
2025-04-09 11:16:55 +09:00
Hermet Park
d3afebfdec
lottie: add custom layer effect with expressions support
...
effect(name) / effect(index)
effects finds the effect by its name in the Effect Controls panel.
The name can be the default name or a user-defined name.
If multiple effects have the same name,
the effect closest to the top of the Effect Controls panel is used.
example:
- effect("Fast Blur")("Blurriness")
issue: https://github.com/thorvg/thorvg/issues/3115
2025-04-08 15:35:36 +09:00
Jinny You
fbe10255d7
lottie/text: added range selector flags
...
Duplicated text document properties (fill color, stroke color, and stroke width) to the text range.
If these properties are not defined in the range selector, ThorVG incorrectly overrides them with default values.
The correct behavior is to preserve the original values. The added flags address this issue.
Co-Authored-By: Hermet Park<hermet@lottiefiles.com>
2025-04-07 17:34:52 +09:00
Jinny You
2b3cdb0d97
lottie: simplify text layout calculation
2025-04-05 02:35:11 +09:00
Mira Grudzinska
9bc3d5e3b7
lottie: fix stroke cap/join values
...
ThorVG cap/join enums and lottie specs were not aligned.
Problem was observed for StrokeCap::Square and StrokeJoin::Bevel.
Note: this change breaks backward comatibility.
2025-04-03 00:29:31 +09:00
Hermet Park
34d731fa94
lottie: minor code change of template mismatch
...
subsequent change by a9cd630dfd
2025-04-02 15:44:21 +09:00
Benson Muite
ed658cb8bd
tools: Use binary names that are not generic
...
Prevent installation conflicts.
2025-04-02 15:42:47 +09:00
Hermet Park
321305ff0b
loaders: ++static loader thread safty
...
make it sync before deleting the loaders.
2025-04-02 14:40:54 +09:00
Benson Muite
e64e0c62ba
Update CONTRIBUTORS
...
Add Benson Muite as a contributor
2025-04-02 13:56:27 +09:00
Hermet Park
a9cd630dfd
lottie: code refactoring
...
- aligned the property types with the class types.
- removed tempaltes, since property types are deterministic.
2025-04-02 00:40:03 +09:00
Hermet Park
dadd7a93dd
Update README.md
...
added references
2025-03-31 23:33:42 +09:00
Benson Muite
4435ba94e0
Add Fedora package link
2025-03-31 15:20:25 +09:00
Hermet Park
8ec3c841f6
lottie/expressions: add temporalWiggle() support
...
usage) temporalWiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
Samples the property at a wiggled time. The freq value is the frequency
in wiggles per second, amp is the amplitude in units of the property
to which it is applied, octaves is the number of octaves of noise
to add together, amp_mult is the amount that amp is multiplied by
for each octave, and t is the base start time. For this function
to be meaningful, the property it samples must be animated,
because the function alters only the time of sampling, not the value.
Note: need to verify this with a practical samples.
issue: https://github.com/thorvg/thorvg/issues/1640
2025-03-30 13:11:02 +09:00
Hermet Park
fa332dbc84
binding/wasm: code refactoring
...
removed a bunch of #ifdefs and consolidated
implementations across engines.
2025-03-28 23:02:58 +09:00
Jinny You
1928f46e6a
examples: Add default font fallback to LottieExpressions demo
...
Text Doc Expressions sample requires default font to show.
2025-03-28 17:02:11 +09:00
Hermet Park
11f59c03ae
lottie/expressions: support wiggle effect
...
usage: wiggle(freq, amp, octaves=1, amp_mult=.5, t=time)
issue: https://github.com/thorvg/thorvg/issues/1640
2025-03-28 13:41:48 +09:00
Hermet Park
1e1be53136
lottie: --compiler warnings on clang
...
removed uninitialized value and override marks
2025-03-28 01:33:57 +09:00
Hermet Park
e002d68338
Revert "gl_engine: Introduce gauss blur effect for opengl renderer"
...
This reverts commit 131c194124
.
note: Lottie animation is broken
2025-03-28 00:28:27 +09:00
Sergii Liebodkin
131c194124
gl_engine: Introduce gauss blur effect for opengl renderer
...
issue: https://github.com/thorvg/thorvg/issues/3054
2025-03-27 22:51:02 +09:00
Hermet Park
a4f927e3ef
examples: updated lottie assets
2025-03-27 22:40:10 +09:00
Hermet Park
afd780bfa9
wg_engine: set default file permissions 644 for consistency
2025-03-27 22:19:36 +09:00
Hermet Park
786d0b2d02
lottie/expressions: code clean up
2025-03-27 22:19:31 +09:00
Jinny You
588bcf5264
wasm: fix build error when WebGPU is disabled (SW/GL only)
...
Fixed a build error that occurred when the WebGPU feature was disabled due to a missing feature check condition. The issue affected building with the software and OpenGL only backends.
issue: #3356
2025-03-27 17:48:20 +09:00
Hermet Park
93cb33fb8e
lottie: improve the compatiblity
...
merge the scene with more accurate condition to allow
the evenodd pathes among the lottie render tree.
2025-03-27 14:06:19 +09:00
Hermet Park
e5d55d0651
lottie: safety++
...
Don't apply matte — it's already been pushed into the scene.
This is a corner-case bug that occurs when the Lottie data
violates the specification.
2025-03-27 12:43:17 +09:00
Hermet Park
fba861cb4f
lottie: fixed a regression bug
...
reverted stroke optimization from the previous cullting stragtegy.
introduced by d386a5654a
2025-03-27 12:43:11 +09:00
Dragoș Tiselice
3b5b0e7eaa
capi: fix name mismatch
2025-03-27 12:42:43 +09:00
Hermet Park
3136cac6e4
Revert "lottie: minor optimization"
...
This reverts commit 51bc7e81f8
.
note: side effect!
2025-03-26 20:56:24 +09:00
Hermet Park
745b4f4628
loaders: ++chores
2025-03-26 17:27:14 +09:00
Dragoș Tiselice
bc5d90c157
capi: exposed Accessor apis
...
This patch adds basic Accessor API to the C bindings
2025-03-26 17:10:00 +09:00
Jinny You
6ee410e042
lottie/expressions: text document support
...
- Handle text value of text document.
- Expand `add()` for string concatenation.
- Restore jerry_value_is_string()
2025-03-26 12:19:41 +09:00
Hermet Park
ffdb30cba2
lottie: don't evaluate local font text again
2025-03-26 12:19:32 +09:00
Hermet Park
51bc7e81f8
lottie: minor optimization
...
trim out a group when it has only one child.
2025-03-26 00:28:20 +09:00
Hermet Park
bd520c1c69
ttf: ++thread safety
...
Properly allow the ttf loader sharable among threads.
issue: https://github.com/thorvg/thorvg/issues/3165
2025-03-25 17:02:58 +09:00