Hermet Park
e34ba91ff1
lottie: code refactoring
...
removed a unused parameter.
2024-12-12 13:38:55 +09:00
Mira Grudzinska
6b416409c3
lottie: add TextCaps property support
2024-12-06 00:40:48 +09:00
Hermet Park
af7dbf2277
lottie: ++parser stability
...
fixed a parsing failure that occurred
when a desired single value was presented as part of an array.
issue: https://github.com/thorvg/thorvg/issues/2975
2024-11-27 16:54:33 +09:00
Hermet Park
951ea77f5d
lottie: compact code++
...
use constructor to remove unnecessary function call
2024-11-26 01:11:03 +09:00
Hermet Park
e811a513f2
lottie: ++slot overriding
...
- fixed the ommiting the duplicate keyframe data overriding
- code refactoring
issue: https://github.com/thorvg/thorvg/issues/2988
2024-11-26 01:11:03 +09:00
Mira Grudzinska
a6fb2ef9a7
lottie: easing support in text range selector
...
@issue: #2178
2024-11-21 01:05:11 +09:00
Hermet Park
b7888c2ff3
lottie: --minor memory leak
2024-11-19 01:55:38 +09:00
Mira Grudzinska
a0f1c2d99d
infra: prevent warning on windows
...
"conversion from 'float' to 'int8_t', possible loss of data"
2024-11-18 19:03:30 +09:00
Jinny You
931d0748bb
lottie/slot: Fix incorrect image slot schema
...
Issue: #2964
2024-11-18 19:01:10 +09:00
Hermet Park
0b0488df82
lottie: corrected an omission in overriding the default slot
...
issue: https://github.com/thorvg/thorvg/issues/2953
2024-11-18 16:59:17 +09:00
Jinny You
efe7440fa0
lottie/slot: Support image overriding
2024-11-15 17:56:42 +09:00
Hermet Park
d8fa8f364c
lottie: improve slots to properly override solid fill opacity
2024-11-09 17:28:56 +09:00
Hermet Park
f84b2331da
lottie: support default slot overriding
...
issue: https://github.com/thorvg/thorvg/issues/2915
2024-11-09 17:28:52 +09:00
Hermet Park
2ad6753680
lottie: support drop shadow effect
...
issue: https://github.com/thorvg/thorvg/issues/2153
issue: https://github.com/thorvg/thorvg/issues/2718
2024-11-06 00:56:11 +09:00
Hermet Park
87761dc7c7
lottie/slot: revise gradient fill support
...
Revise gradient fill data parsing by adding support
for the color stop count (p) parameter in slot data.
issue: https://github.com/thorvg/thorvg/issues/2795
2024-11-04 11:43:36 +09:00
Hermet Park
c75ec0f333
lottie: code clean up
2024-11-01 22:44:39 +09:00
Jinny You
4f2e725da0
lottie/text: Support text alignment options
...
Introduced new properties:
- group alignment
- text grouping (words, line)
Issue: #2178
2024-11-01 22:11:45 +09:00
Hermet Park
f1cd65a876
lottie: corrected a shallow keyframe data copy bug
...
The previous assignment operator was missed due to a template error,
which has now been corrected.
issue: https://github.com/thorvg/thorvg/issues/2797
2024-11-01 12:40:38 +09:00
Mira Grudzinska
d9bbd433e8
lottie: correct the array reserved size
...
The color input will contain at least colorStops.count * 4
elements (not including alpha). Since the alpha offset values
don't have to much colorStops, estimation is used.
2024-10-18 12:10:11 +09:00
Hermet Park
0a16152d75
api: renamed the composite with mask.
...
Since we've separated ClipPath and Masking,
Masking now has a distinct and independent purpose.
API Modification:
- enum class CompositeMethod -> enum class MaskMethod
- Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) -> Result Paint::mask(std::unique_ptr<Paint> target, MaskMethod method)
- CompositeMethod Paint::mask(const Paint** target) const -> MaskMethod Paint::mask(const Paint** target) const
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-16 14:41:26 +09:00
Mira Grudzinska
3fd095e947
lottie: add support for mask expansion
...
Implemented the mask attribute 'x' - expand mask.
Enforced rounded lines join according to tests in AE.
@Issue: https://github.com/thorvg/thorvg/issues/2832
2024-10-10 14:39:10 +09:00
Hermet Park
d8f6710c73
lottie: hotfix layer effect parsing
...
fixed a break in expressions/driving.json
2024-10-03 13:53:45 +09:00
Hermet Park
d038518e6d
lottie: ++safety
2024-10-01 11:23:12 +09:00
Mira Grudzinska
2238109ada
lottie: fix mem leak
...
Mem leak was observed in a case the end values
(deprecated feature) were provided for the gradient.
@Issue: https://github.com/thorvg/thorvg/issues/2667
2024-09-30 22:18:51 +09:00
Hermet Park
f08d7aa037
lottie: support layer effect & gaussian blur
...
issue: https://github.com/thorvg/thorvg/issues/2718
2024-09-29 15:04:22 +09:00
Jinny You
b9b1336817
lottie/text: hotfix for parsing text range issue
...
If randomize is not enabled, "rn" prop falls into skip()
2024-09-19 14:41:37 +09:00
Jinny You
9c5933a4e5
lottie/text: applied Text Range randomization.
...
on each parse, if the `randomize` is enabled,
the start and end of the Text Range are redefined
with the same gap as the original range.
issue: https://github.com/thorvg/thorvg/issues/2178
2024-09-19 11:05:24 +09:00
Jinny You
3f67c38c50
lottie/text: Support line spacing
...
Compute line spacing based on the text range selector, applying the maximum spacing value for each line.
issue: https://github.com/thorvg/thorvg/issues/2178
2024-09-10 11:44:32 +09:00
Hermet Park
a746e1fcd6
renderer: blending refactoring++
...
- reordered the blending types to align with lottie spec.
- removed source over.
2024-09-09 21:18:13 +09:00
Hermet Park
c1c51fbc10
lottie/parser: ++ null value handling
...
Note that, only dealt with a obivous case in practice.
issue: https://github.com/thorvg/thorvg/issues/2703
2024-09-03 19:03:54 +09:00
Hermet Park
45358a70ca
lottie/parser: enable logs to notify missing features
2024-08-26 20:30:33 +09:00
Mira Grudzinska
87d85047aa
lottie: add offsetPath support
...
Due to the lack of an analytical solution for Bezier
curves offsetting, a simple and computationally cheap
approximation has been implemented. The algorithm shifts
the segments connecting control points and determines
new points based on their intersections.
@issue: https://github.com/thorvg/thorvg/issues/2230
2024-08-23 01:18:50 +09:00
Hermet Park
de9da0b93a
lottie: code refactoring
...
Moved common data declarations to tvgLottieCommon.h.
2024-08-07 19:27:34 +09:00
Hermet Park
f7221f7f89
lottie/expressions: revised exception handlings
2024-08-07 14:59:09 +09:00
Hermet Park
49f3395631
renderer: newly support the Lighten/Darken Masking options
...
Lighten is applied, where multiple masks intersect,
the highest transparency value is used.
Darken is applied, where multiple masks intersect,
the lowest transparency value is used.
Experimental API:
- CompositeMethod::LightenMask
- CompositeMethod::DarkenMask
issue: https://github.com/thorvg/thorvg/issues/2608
2024-08-07 11:04:38 +09:00
Hermet Park
c257994d5c
lottie/expressions: feature enhancement
...
added groupIndex() support
added property (ix) value support
2024-07-31 18:26:42 +09:00
Hermet Park
397e33b158
lottie: code refactoring
...
Access its type from a property instance,
through coherent data structure.
2024-07-31 18:26:42 +09:00
Hermet Park
3804bbec57
lottie: code refactoring
...
- removed unnecessary variables.
- migrated the composition methods to the precomp layer.
2024-07-24 11:26:20 +09:00
Hermet Park
3181ea660f
lottie: ++scene rendering optimization
...
Apply LottieRenderPooler to texts.
2024-07-22 12:08:27 +09:00
Hermet Park
cfc8f13584
lottie/parser: tiny binary size reduction
2024-07-12 14:43:00 +09:00
Mira Grudzinska
8340c1e1d7
lottie: support 'direction' in ellipses
2024-07-12 14:23:27 +09:00
Hermet Park
22bab117a3
lottie: clarify shape direction.
...
There are only two options clockwise or counter-clockwise.
2024-07-12 00:39:31 +09:00
Hermet Park
4cb327c9fd
lottie: ++ scene composing optimization
...
retain resuable layer solid paint during animation.
2024-07-11 21:30:31 +09:00
Jinny You
fdc1ad4d2c
lottie/text: Support text range selector (Phase 1)
...
This patch provides initial support for the text range selector. Full support will be added gradually in subsequent steps. This is the first step.
Text range selector with following properties:
1. Text Range Selector (Units)
2. Text Style
- Fill Color
- Fill Opacity
- Stroke Color
- Stroke Width
- Stroke Opacity
- Opacity
- Rotation
- Position
- Scale
2024-07-11 00:49:57 +09:00
Hermet Park
5a2a6fc4a9
common: replace the round() with nearbyint()
...
nearbyint() is 2x faster than round() in our local test.
2024-07-10 23:43:10 +09:00
Mira Grudzinska
423e37d4d5
lottie: add support for image size
...
The width and height of the image must
be specified in the Lottie file and must
be taken into account during rendering.
2024-07-08 21:20:34 +09:00
Hermet Park
4f354f6d5e
lottie/parser: optimization++
...
Skip the data constructuion if the mask mode
is none. it's not used at all.
2024-07-03 13:21:47 +09:00
Josh Soref
e061fa6628
common: fix 178+ spelling errors
2024-07-01 21:58:46 +09:00
Hermet Park
2c7a83406e
lottie: hotfix for preventing a crash.
...
MaskMode=None is not properly addressed,
Prevent the crash from the use-case.
issue: https://github.com/thorvg/thorvg/issues/2426
2024-06-23 11:57:40 +09:00
Mira Grudzinska
d7ab592fb9
lottie: fix repeater order
...
Assigning numbers 1 or 2 to a bool always
resulted in true. Now fixed and repeated
shapes are drawn in the proper order.
If the repeater had no elements, iterating
shapes from the end would result in a segf.
This issue is now fixed.
2024-06-19 11:02:41 +09:00