Commit graph

3257 commits

Author SHA1 Message Date
RuiwenTang
c0aab8c738 gl_engine: Fix the wrong bounds cause composition not correct
The bounds should allow negative origins, only zero width or height bounds needs discard.
2024-12-02 11:56:00 +09:00
Hermet Park
89ab573acb bump up version v0.15.5 2024-11-27 19:17:23 +09:00
Hermet Park
a233ae09da 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 19:17:23 +09:00
RuiwenTang
14d66198d1 gl_engine: correct the stroke alpha calculation
The wrong matrix scale factor value caused the stroke alpha to be zero
when the matrix contains rotation.
2024-11-27 19:17:23 +09:00
Hermet Park
c6632d9ec0 portability: fixed a compile error on msys2 2024-11-27 19:17:23 +09:00
Hermet Park
ba8a764ec3 example: ++gl, wgpu safety
Free the canvas in the reverse order of their creation.
2024-11-27 19:17:20 +09:00
Hermet Park
4010496e8b lottie: compact code++
use constructor to remove unnecessary function call
2024-11-27 18:56:41 +09:00
Hermet Park
1fa30d9321 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:19:54 +09:00
Mira Grudzinska
96ffc05ecb lottie: fix bug in expressions
'end' used instead of 'offset'
2024-11-26 01:19:48 +09:00
Hermet Park
3d4df8df41 lottie: portability++
issue: https://github.com/lvgl/lvgl/issues/7214
2024-11-26 01:19:39 +09:00
Hermet Park
f05ee1ca63 renderer/sw_engine: fix omitted alpha multiplication in the dropshadow effect
When a scene has a valid opacity, it must be multiplied with the
direct dropshadow image to ensure correct rendering.
2024-11-26 01:19:28 +09:00
Mira Grudzinska
b3c1c33285 lottie: shapes support in text range selector
@issue: #2178
2024-11-26 01:18:59 +09:00
Mira Grudzinska
483b40c78e lottie: easing support in text range selector
@issue: #2178
2024-11-26 01:18:53 +09:00
Hermet Park
f0d4e7a7c7 sw_engine: hotfix range broken
hotfix for release. need to review the logic again
2024-11-26 01:17:36 +09:00
Hermet Park
e95f80c18f lottie: corrected drop-shadow handling
opacity value type should be float with range 0 ~ 256
2024-11-26 01:17:28 +09:00
Hermet Park
13aa26109f lottie: support drop shadow effect
issue: https://github.com/thorvg/thorvg/issues/2153
issue: https://github.com/thorvg/thorvg/issues/2718
2024-11-26 01:17:13 +09:00
Hermet Park
2324f6e75d renderer: support SceneEffect DropShadow
Apply a drop shadow effect with a Gaussian Blur filter.

API Addition:
 - enum class SceneEffect::DropShadow

Parameters:
 - color_R(int)[0 - 255]
 - color_G(int)[0 - 255]
 - color_B(int)[0 - 255]
 - opacity(int)[0 - 255]
 - angle(float)[0 - 360]
 - distance(float)
 - blur_sigma(float)[> 0]
 - quality(int)[0 - 100]

issue: https://github.com/thorvg/thorvg/issues/2718
2024-11-26 01:16:37 +09:00
lpogic
8daf0b7b94 renderer: Fix paint transformation on scene change
issue: https://github.com/thorvg/thorvg/issues/2958
2024-11-26 01:15:01 +09:00
Mira Grudzinska
9869855640 svg_loader: handle currentColor inside gradient
@Issue: https://github.com/thorvg/thorvg/issues/2960
2024-11-26 01:13:16 +09:00
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