Commit graph

3238 commits

Author SHA1 Message Date
Hermet Park
481f359338 bump up version v0.15.4 2024-11-19 01:13:51 +09:00
Hermet Park
bf7b837b17 lottie: --minor memory leak 2024-11-19 01:13:51 +09:00
Hermet Park
1779689f03 lottie: Fixed a regression bug
Reverted commit db800c8d45,
which introduced another regression that omitted support
for multiple image asset references.

Updated the data of active images in the pooler
within the override() function to resolve the issue.
2024-11-19 01:01:34 +09:00
Hermet Park
ed07a151c9 lottie: ++slot overriding
Keep trying overriding even if the given sid is invalid.

issue: https://github.com/thorvg/thorvg/issues/2969
2024-11-18 23:43:18 +09:00
Mira Grudzinska
80815b269b infra: prevent warning on windows
"conversion from 'float' to 'int8_t', possible loss of data"
2024-11-18 23:43:12 +09:00
Jinny You
b394a46cef lottie/slot: Fix incorrect image slot schema
Issue: #2964
2024-11-18 23:42:55 +09:00
Hermet Park
a989dc9a7d lottie: fixed a memory leak
A regression bug by efe7440fa0

To address this, removed the non-essential image pooling mechanism.

issue: https://github.com/thorvg/thorvg/issues/2959
2024-11-18 23:42:04 +09:00
Hermet Park
88098f547f lottie: corrected an omission in overriding the default slot
issue: https://github.com/thorvg/thorvg/issues/2953
2024-11-18 23:40:37 +09:00
Hermet Park
fcf080cc4e sw_engine: ++exceptional handling
issue: https://github.com/thorvg/thorvg/pull/2955
2024-11-18 23:39:38 +09:00
Jinny You
98fbc90f9b lottie/slot: Support image overriding 2024-11-18 23:39:28 +09:00
Mira Grudzinska
ce3bee7a3f lottie: fix text range opacity 2024-11-18 23:37:14 +09:00
RuiwenTang
552d4bcee1 gl_engine: Fix repeated clip drawing causes performance degradation
The clips need to be cleared every time when shape update.
Otherwise, the increasing number of clips will hurt the performance.
2024-11-18 23:35:47 +09:00
Mira Grudzinska
d37ab3b39f lottie: maxAmount support in the text range selector
@issue: #2178
2024-11-18 23:35:40 +09:00
Mira Grudzinska
76206a174e lottie: smoothness support in the text range selector
@issue: #2178
2024-11-18 23:35:31 +09:00
Mira Grudzinska
606e107712 lottie: text range selector++
Change in the algorithm for selecting characters included
in the range selector. This is the first step towards adding
support for maxAmount, smoothness, and easing.

@Issue: https://github.com/thorvg/thorvg/issues/2178
2024-11-18 23:24:58 +09:00
RuiwenTang
e82830147c gl_engine: Support new radial gradient data struct and calculation
Change the shader and uniform struct to support new radial gradient.
The mathematical calculation comes from https://skia.org/docs/dev/design/conical/
2024-11-18 23:22:56 +09:00
RuiwenTang
159bf6949e gl_engine: Fix memory leak in the IndexBuffer object
The CPU buffer cache in the IndexBuffer object needs to be cleared, otherwise it will cause memory leaks and reduce performance per frame
2024-11-18 23:07:42 +09:00
RuiwenTang
8b37ec5d9c gl_engine: seperate the index buffer from vertex buffer
WebGL has a strict rule that does not allow the same GLBuffer
to be bound to both ARRAY_BUFFER and ELEMENT_ARRAY_BUFFER at the same time.
(https://registry.khronos.org/webgl/specs/latest/1.0/#5.14.5)

To support WebGL in the future, a separate GLBuffer is used to store index data.
2024-11-18 23:07:29 +09:00
Hermet Park
e66f6853d9 lottie: code clean up 2024-11-18 23:03:00 +09:00
Jinny You
ab1c62bd05 lottie/text: Support text alignment options
Introduced new properties:
- group alignment
- text grouping (words, line)

Issue: #2178
2024-11-18 23:02:56 +09:00
Hermet Park
e954297a64 lottie: improve slots to properly override solid fill opacity 2024-11-09 17:31:19 +09:00
Hermet Park
e12765ef41 lottie: support default slot overriding
issue: https://github.com/thorvg/thorvg/issues/2915
2024-11-09 17:31:16 +09:00
Hermet Park
f42559e613 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-08 12:46:03 +09:00
Hermet Park
2207c8ce5e bump up version v0.15.3 2024-11-01 17:38:49 +09:00
Hermet Park
c830abb901 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 17:38:24 +09:00
Mira Grudzinska
ed90581a1f sw_engine: fix render fill region
Shape's bbox represents only fill's render region.
Render region of fill and stroke is stored in SwTask.
This was visible while rendering shapes with a stroke -
fill was to big.

@Issue: https://github.com/thorvg/thorvg/issues/2908

Co-Authored-By: Hermet Park <hermet@lottiefiles.com>
2024-11-01 17:38:09 +09:00
Mira Grudzinska
16111bf55b lottie: fix text range selector translation
Scaling the entire scene caused unintended scaling
of the translation in the text range selector.
2024-11-01 17:37:57 +09:00
Mira Grudzinska
a851d1706e lottie: fix transformations in text range selector
Since the translate API was used while text updating,
the subsequent range selector transformations gets overwritten
when updating the shape (scale and rotate, adding another
translation will persist). This caused unexpected results.
Fixed by using the transform API when additional transformations
are needed - also fixes applying more than one range selector.
2024-11-01 17:37:44 +09:00
Hermet Park
33cfc16569 renderer: --shadow variable compiler warning 2024-11-01 17:31:16 +09:00
Mira Grudzinska
35bc063edd svg: prevent runtime error
runtime error: applying non-zero offset 1 to null pointer
Observed for Bespoke-leather-belt-2016012857.svg
2024-11-01 17:31:08 +09:00
Hermet Park
cebc29c5ff renderer: hotfix a broken svg file sharing
Do not allow data sharing among same svg instances.
This should be addressed properly.
2024-11-01 17:30:51 +09:00
Hermet Park
4d8c0e9a64 sw_engine: corrected the blur feathering region.
issue: https://github.com/thorvg/thorvg/issues/2892
2024-11-01 17:30:42 +09:00
Hermet Park
3fdfe11cd7 bump up version v0.15.2 2024-10-22 00:44:08 +09:00
Hermet Park
3490f9b9ce png, gl_engine: fixed an wrong png colorspace.
issue: https://github.com/thorvg/thorvg/pull/2880
2024-10-22 00:41:42 +09:00
Hermet Park
ec62ca869f sw_engine: fixed linear gradient filling masking.
properly filtering alpha channel of the 8bits linear gradient
masking drawing.

issue: https://github.com/thorvg/thorvg/issues/2204
2024-10-22 00:41:31 +09:00
RuiwenTang
6427b81358 gl_engine: ignore masking alpha when calculate inv luma masking 2024-10-22 00:41:24 +09:00
Mira Grudzinska
269e6c4d10 lottie: offset does not depend on shape direction
According to tests in AE, the offset direction should
not depend on the direction of the shape. A positive
offset value expands the shape, while a negative value
contracts it. Fixed.
2024-10-22 00:41:15 +09:00
Mira Grudzinska
fa49f14412 sw_engine: fix _rasterDirectImage
Since the source buffer is 32 bits, not 8 bits,
both alpha and inverse alpha need to be calculated.
2024-10-22 00:41:07 +09:00
Mira Grudzinska
9ce784751c 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-22 00:41:01 +09:00
RuiwenTang
e6aa41f7c4 gl_engine: implement path trim in tvgGlTessellator
Implement the path trim claculation, and handle the strokeTrim before
doing Path stroke.

issue: https://github.com/thorvg/thorvg/issues/2435
2024-10-22 00:40:41 +09:00
Mira Grudzinska
4c0765b761 lottie: fix offset
For long Bezier curves compared to the offset value,
the offsetting algorithm caused deformation. The problem
became evident after adding mask extension, as the simple
shapes defined there are based on Bezier curves rather
than as shapes like a circle/rect/etc, which is the case
for the offset. Now fixed.
2024-10-22 00:40:24 +09:00
Hermet Park
719fbc9d64 sw_engine: rectify the blending method of grayscale fill
issue: https://github.com/thorvg/thorvg/issues/2842
issue: https://github.com/thorvg/thorvg/issues/2841
2024-10-22 00:40:15 +09:00
Hermet Park
b5943d627f lottie: multiply opacity to the fill alpha value,
opacity of a shape may bring a composition
when it has both stroke and fill
2024-10-22 00:40:06 +09:00
Hermet Park
d0f18e741d lottie: release memory immediately after loading is complete.
there is no need to retain the data,
as the Lottie source is not reusable
and is affected by the parsing mechanism.

issue: https://github.com/thorvg/thorvg/issues/2647
2024-10-22 00:39:53 +09:00
Mira Grudzinska
661bdeb9b7 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-22 00:39:21 +09:00
Mira Grudzinska
cb2a15528d sw_engine: split long lines to avoid overflow
@Issue: https://github.com/thorvg/thorvg/issues/2651
2024-10-22 00:39:14 +09:00
Hermet Park
43cdd4c7ec lottie: Fine-tune for post-processing effect.
reduce quality for the post-processing effect to
improve general performance, while fine-tuning the quality
for lower resolutions.
2024-10-22 00:39:06 +09:00
Hermet Park
75ae8bcc7b sw_engine: properly update the render region
shape render region should be aligned with the
current shape bbox. this could bring the compact size
of the rendering region even shapes are not drawable.
2024-10-22 00:38:58 +09:00
Hermet Park
a16cbd58a0 bump up version v0.15.1 2024-10-12 12:46:29 +09:00
Hermet Park
066160a82a lottie: hotfix a crash
Fixed a mistake during the code merge.

issue: https://github.com/thorvg/thorvg/issues/2733
2024-10-12 12:41:15 +09:00