Hermet Park
d671f8637b
lottie/expressions: ++coverage enhancement
...
Allow to access layer index globally.
2024-09-30 15:36:24 +09:00
Hermet Park
9749e7fea0
examples: updated lottie samples
2024-09-30 15:36:18 +09:00
Hermet Park
072ce383db
examples: added more expressions samples
2024-09-30 15:36:11 +09:00
Hermet Park
0b66cd422e
lottie/expressions: added a missing polystar property build.
2024-09-30 15:35:59 +09:00
Hermet Park
e4fb0ec383
sw_engine: ++alpha blending operation.
...
Reduce instructions, improving its performance by ~15%
2024-09-30 15:35:52 +09:00
Mira Grudzinska
220764fde9
tests: version api tests
2024-09-30 15:35:45 +09:00
Mira Grudzinska
658ed7df7f
capi: the version api binding
2024-09-30 15:35:40 +09:00
Mira Grudzinska
0944f3253d
common: version api introduced
...
@Issue: https://github.com/thorvg/thorvg/issues/2543
2024-09-30 15:35:34 +09:00
Sergii Liebodkin
e16dcdcb6d
wg_engine: fix cubic generation artifacts (GradientStroke example)
...
[GradientStroke](https://github.com/thorvg/thorvg/issues/2435 ) example
More accurate coefitient computation
2024-09-30 15:35:28 +09:00
Sergii Liebodkin
8d150a17b4
wg_engine: fix fill spread artifacts
...
[issues 2435: ](FillSpread) example
Fixed range selector edged cases
2024-09-30 15:35:22 +09:00
Hermet Park
3cb7aecb6a
renderer: ++null check
...
fixed a Duplicate example crash, regression by:
f06127ab93
2024-09-30 15:35:16 +09:00
Sergii Liebodkin
03b36cea7b
wg_engine: ClipPath support
...
[issues 1479: ClipPath](#1479 )
Supports ClipPath composition.
Clip path composition is an only composition type who doesn't ignore blend method.
Clip path is a combination of composition approach and blend approach using compute shader
2024-09-30 15:35:10 +09:00
Hermet Park
699063625b
lottie: ++scene rendering optimization
...
Apply LottieRenderPooler to path/rect/ellipse/polystar.
This enhances the animation performance: ~10%
2024-09-30 15:34:57 +09:00
Hermet Park
7e9febf2c6
examples: ++exception handling
...
Added handling for engine initialization failure.
2024-09-30 15:34:48 +09:00
Mira Grudzinska
ea7f8e6190
sw_engine: grayscale image support++
2024-09-30 15:33:57 +09:00
Hermet Park
ba3d2b77a1
lottie: introduced LottieRenderPooler
...
LottieRenderPooler is designed to manages rendering
instances(paints) efficiently through a simple pooling
mechanism to resuse among the animations
This replaces the previous individusal paints implemenations
among solidfill, precomp vierport and pictures,
also fix a potential paints corruption problems.
2024-09-30 15:33:49 +09:00
Hermet Park
cf0d04a9ae
infra: updated ios arm64 build
2024-09-30 15:32:09 +09:00
Hermet Park
ec00238aed
examples: added LottieExpressions
2024-09-30 15:31:55 +09:00
Hermet Park
e27b8ddf25
lottie/parser: tiny binary size reduction
2024-09-30 15:30:47 +09:00
Mira Grudzinska
774e4f5156
lottie: support 'direction' in ellipses
2024-09-30 15:30:29 +09:00
Mira Grudzinska
177bae539c
lottie: remove unnecessary cast
2024-09-30 15:30:18 +09:00
Hermet Park
3d9f7ebbc3
examples: updated lottie samples
2024-09-30 15:30:12 +09:00
Hermet Park
12b7c634f7
lottie: clarify shape direction.
...
There are only two options clockwise or counter-clockwise.
2024-09-30 15:29:22 +09:00
Mira Grudzinska
bba48a8084
lottie: apply direction to rect
2024-09-30 15:29:22 +09:00
Hermet Park
f49bf9e775
examples: added svg samples
2024-09-30 15:29:22 +09:00
Hermet Park
43a5bf2fce
lottie: ++ scene composing optimization
...
retain resuable layer solid paint during animation.
2024-09-30 15:29:22 +09:00
Hermet Park
3adee7238c
lottie: ++ scene composing optimization
...
retain reusable precomp clipper shapes during animation.
2024-09-30 15:29:22 +09:00
Sergii Liebodkin
f7728a8b7a
wg_engine: Viewport support
...
[issues 1479: Viewport](#1479 )
Supports viewport settings and rectangular clip path.
Scissors cliping used as a way to clip viewport
2024-09-30 15:29:22 +09:00
Hermet Park
192135835f
lottie: ++memory access stability
...
Internal matrix can be null.
This update prevents such cases by using a safer API.
2024-09-30 15:29:07 +09:00
Jinny You
0953d000c1
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-09-30 15:28:24 +09:00
Hermet Park
12d0504a23
common: replace the round() with nearbyint()
...
nearbyint() is 2x faster than round() in our local test.
2024-09-30 15:24:39 +09:00
Hermet Park
f4cd6b8d8c
sw_engine: code refactoring.
...
just renamed internal name shorter.
2024-09-30 15:23:21 +09:00
Hermet Park
8e6e224284
sw_engine: ++rle optimization
...
Reduction memory copy by pushing span data into rle immediately.
2024-09-30 15:23:15 +09:00
Mira Grudzinska
8e78745e2e
lottie: improvement 3d rotation
...
For rotation around the X and Y axes, the transformation
matrix was incorrectly created - elements e12 and e21
were omitted. Now fixed.
2024-09-30 15:23:08 +09:00
Hermet Park
ef75fbcbb9
math: ++missing exceptions
2024-09-30 15:22:59 +09:00
Mira Grudzinska
0dc8b8cde7
sw_engine: fix masked translucent rect
2024-09-30 15:22:52 +09:00
Hermet Park
4f58124754
common/math: code refactoring
...
- migrate tvgLine to tvgMath
- associate line functions with classes.
2024-09-30 15:22:46 +09:00
Hermet Park
c9d1df3957
common/math: code refactoring
...
Replaced the prefix "math" with "tvg" namespace.
2024-09-30 15:22:38 +09:00
Hermet Park
d3a900701f
common/math: introduced custom atan2()
...
the custom atan2 algorithm by Remez.
see: https://en.wikipedia.org/wiki/Remez_algorithm
This improved the Lottie example by ~2ms.
Total atan2 performance time was reduced by 43%
2024-09-30 15:21:27 +09:00
Sergii Liebodkin
aae722e7ba
wg_engine: fix masking methods support
...
See Masking, InvMasking, LumaMasking, InvLumaMasking, MaskingMethods examples
sw/webgpu
2024-09-30 15:21:20 +09:00
Hermet Park
ff06885e2f
renderer: ++optimization
...
skip locking if the thread number is 0.
2024-09-30 15:21:07 +09:00
Hermet Park
aff7f61819
lottie: code refactoring
...
- _draw() returns boolean whether merging shape is allowed or not.
- renamed some internal variables.
2024-09-30 15:20:54 +09:00
Mira Grudzinska
c64923336d
lottie: enhance support for ao: 1
...
Adding support for auto-orient=true for frames <= first
and >= last, as well as for positions specified without
outer and inner tangent.
2024-09-30 15:20:46 +09:00
Mira Grudzinska
3cf3045ba5
common: fix bezAngleAt function
...
In the function calculating the tangent to a cubic bezier
at a given t, the atan was calculated using dx over dy,
instead of dy over dx. The error was visible during
the animation using auto-orient = true.
2024-09-30 15:20:39 +09:00
Hermet Park
2a6a221b6c
example: print non support webgpu msg properly.
2024-09-30 15:20:31 +09:00
RuiwenTang
3eb2e66fe0
gl_engine: fix aliasing in gradient rendering
2024-09-30 15:11:40 +09:00
Mira Grudzinska
5276663c45
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-09-30 15:11:34 +09:00
Hermet Park
1d7bf0d9a2
example: ++ DirectUpdate to cover more scenarios.
2024-09-30 15:11:16 +09:00
Hermet Park
d8a8f1a01f
example: improved to print proper fail msgs.
2024-09-30 13:00:12 +09:00
RuiwenTang
b71ad8adff
gl_engine: make sure solid color not overwrite gradient fill
...
If there are both gradient colors and solid colors
the gradient color is used first for rendering
2024-09-30 12:59:32 +09:00