Sergii Liebodkin
2c048f72e8
gl_engine: remove the outdated tesseletion mechanics
...
Android / build_x86_64 (push) Waiting to run
Android / build_aarch64 (push) Waiting to run
iOS / build_x86_64 (push) Waiting to run
iOS / build_arm64 (push) Waiting to run
macOS / build (push) Waiting to run
macOS / compact_test (push) Waiting to run
macOS / unit_test (push) Waiting to run
Ubuntu / build (push) Waiting to run
Ubuntu / compact_test (push) Waiting to run
Ubuntu / unit_test (push) Waiting to run
Windows / build (push) Waiting to run
Windows / compact_test (push) Waiting to run
Windows / unit_test (push) Waiting to run
After introducing Triangle Fan-like Triangulation there is no necessary to have heavy and complex tessellator
All unused entities are removed
2025-06-19 02:10:50 +09:00
Hermet Park
8eb046c318
sw_engine: skip AA if texture are orthogonally rotated.
...
there is no necessary applying AA for 0/90/180/270 degree rotation
issue: https://github.com/thorvg/thorvg/issues/3452
2025-06-09 16:07:45 +09:00
Hermet Park
eeebfbb654
sw_engine: hotfix++
...
resolved a memory violation introduced by:
e2909dd6a4
2025-06-02 22:40:43 +09:00
Hermet Park
e2909dd6a4
sw_engine: replace RLE memory with common array
...
Android / build_x86_64 (push) Waiting to run
Android / build_aarch64 (push) Waiting to run
iOS / build_x86_64 (push) Waiting to run
iOS / build_arm64 (push) Waiting to run
macOS / build (push) Waiting to run
macOS / compact_test (push) Waiting to run
macOS / unit_test (push) Waiting to run
Ubuntu / build (push) Waiting to run
Ubuntu / compact_test (push) Waiting to run
Ubuntu / unit_test (push) Waiting to run
Windows / build (push) Waiting to run
Windows / compact_test (push) Waiting to run
Windows / unit_test (push) Waiting to run
This commit has two purposes:
- refactoring to introduce y indexing method for the upcoming partial rendering.
- replaces the RLE-specific memory allocation with a shared array structure,
eliminating potential memory overflows during RLE clipping.
2025-05-28 23:17:18 +09:00
Hermet Park
e98b87892b
gl_engine: revert some wrong change
...
Android / build_x86_64 (push) Waiting to run
Android / build_aarch64 (push) Waiting to run
iOS / build_x86_64 (push) Waiting to run
iOS / build_arm64 (push) Waiting to run
macOS / build (push) Waiting to run
macOS / compact_test (push) Waiting to run
macOS / unit_test (push) Waiting to run
Ubuntu / build (push) Waiting to run
Ubuntu / compact_test (push) Waiting to run
Ubuntu / unit_test (push) Waiting to run
Windows / build (push) Waiting to run
Windows / compact_test (push) Waiting to run
Windows / unit_test (push) Waiting to run
my fault. signed value should be respected
from cd12618529
2025-05-16 02:08:25 +09:00
Hermet Park
cd12618529
common/array: ++neat code
...
no logical changes
2025-05-14 21:53:32 +09:00
Hermet Park
786d0b2d02
lottie/expressions: code clean up
2025-03-27 22:19:31 +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
Benjamin
40c60ea8cc
array: use default constructor
2025-03-20 15:57:27 +09:00
Hermet Park
333e65ef7a
renderer: revise the Bounding Box Behavior
...
- modify the concept of AABB to apply only to transformed shapes.
- transform points before computing the bounding box min/max
to obtain a more compact shape region.
- trimmming memory by removing the cached matrix, about 36kb
of memory has been reduced per paint instance.
2025-03-20 13:26:25 +09:00
Hermet Park
9e6a514022
common: ++stability of the font cache
...
Use the font name as the cache key for
precise comparison instead of the file path.
2025-03-06 19:00:06 +09:00
Hermet Park
96dc3d6697
common: str refactoring
...
renamed the prefix to be slimmer and more compact.
2025-03-06 12:18:24 +09:00
Hermet Park
30a5f2891b
renderer: improved the paint bounding box accuracy
...
previously, the bounding box calculation was simply
determined by comparing all the points, which led to
incorrect sizing due to Bezier control points.
Now, it accurately computes the curve boundary,
properly addressing this issue.
2025-03-04 14:37:43 +09:00
Hermet Park
82a9a05405
common: replace the strdup() with strDuplicate()
...
tvg expects the coherent memory allocator usage,
while strdup() is out of the control. so replaced it.
2025-02-28 12:04:53 +09:00
Hermet Park
eb4b286da5
renderer: migrated TrimPath as the integrated rendering method
...
TrimPath -> RenderTrimPath
Co-Authored-By: Mira Grudzinska <mira@lottiefiles.com>
2025-02-25 15:38:03 +09:00
Hermet Park
bed38a4521
common: remove redundant lzw decoder
2025-02-20 16:41:14 +09:00
Hermet Park
b77f3ca024
common: introduced designated memory allocators
...
Support the bindings to be more integrable with a system's coherent memory management.
Pleaes note that thorvg now only allow the desinated memory allocators here:
malloc -> tvg::malloc
calloc -> tvg::calloc
realloc -> tvg::realloc
free -> tvg::free
issue: https://github.com/thorvg/thorvg/issues/2652
2025-02-18 17:20:31 +09:00
Hermet Park
0dd0a3b45c
common: neat code++
...
introduced common BBox structure
2025-02-06 15:40:32 +09:00
Hermet Park
8833cc8521
commmon: ++neat code
...
introduced ARRAY_REVERSE_FOREACH() macro.
2025-02-03 21:47:43 +09:00
Hermet Park
dfa05a5c43
common: neat & clean code++
2025-01-17 00:46:03 +09:00
Hermet Park
07e73a9e6f
common: code refactoring
...
use ARRAY_FOREACH() for neat code and
accessing the memory efficiently than normal indexing.
2025-01-15 18:03:46 +09:00
Jinny You
5361ad1617
common: optimize clamp() for reduced overhead in web
2025-01-13 22:41:55 +09:00
faxe1008
0c09580cd4
common: Use explicit floating-point value types.
...
Co-Authored-By: Hermet Park <hermet@lottiefiles.com>
2025-01-10 12:16:13 +09:00
Hermet Park
d72c740ac6
common: properly update the clamp()
...
A regression brokeage by da54c83b5f
2025-01-09 00:04:18 +09:00
Hermet Park
da54c83b5f
common/math: revise clamp() aligning with the std style
2025-01-08 13:27:58 +09:00
Hermet Park
a12accbc93
updated copyright
2025-01-03 14:32:31 +09:00
Hermet Park
f33b63abad
common: inlist code refactoring
...
introduced INLIST_FOREACH() / INLIST_SAFE_FOREACH()
for common implementation
2024-12-02 15:15:35 +09:00
Hermet Park
9a134fcb90
api: revise the apis for v1.0
...
replaced std::string with char* in API parameters.
API Modification:
- Result Picture::load(const std::string& path) -> Result Picture::load(const char* filename)
- Result Picture::load(const char* data, uint32_t size, const std::string& mimeType, const std::string& rpath = "", bool copy = false) -> Result Picture::load(const char* data, uint32_t size, const char* mimeType, const char* rpath = "", bool copy = false)
- Result Text::load(const std::string& path) -> Result Text::load(const char* filename)
- Result Text::load(const char* name, const char* data, uint32_t size, const std::string& mimeType = "ttf", bool copy = false) -> Result Text::load(const char* name, const char* data, uint32_t size, const char* mimeType = "ttf", bool copy = false)
- Result Text::unload(const std::string& path) -> Result Text::unload(const char* filename)
- Result Saver::save(std::unique_ptr<Paint> paint, const std::string& path, uint32_t quality = 100) -> Result Saver::save(std::unique_ptr<Paint> paint, const char* filename, uint32_t quality = 100)
- Result Saver::save(std::unique_ptr<Animation> animation, const std::string& path, uint32_t quality = 100, uint32_t fps = 0) -> Result Saver::save(std::unique_ptr<Animation> animation, const char* filename, uint32_t quality = 100, uint32_t fps = 0)
issue: https://github.com/thorvg/thorvg/issues/1372
2024-11-06 21:32:45 +09:00
Mira Grudzinska
dfd7693158
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-18 18:02:35 +09:00
Hermet Park
1e9609c6f7
wg_engine: merged math functions with common
...
issue: https://github.com/thorvg/thorvg/issues/2313
2024-10-17 21:08:00 +09:00
Hermet Park
a26a386ccd
gl_engine: merged point/line data structure with common
...
this also contains a code clean up.
issue: https://github.com/thorvg/thorvg/issues/2313
2024-10-17 20:32:19 +09:00
Hermet Park
0e45fabb3d
spec out tvg binary format
...
issue: https://github.com/thorvg/thorvg/issues/2721
2024-10-12 21:07:31 +09:00
Hermet Park
08e6b8333f
renderer/compressor: corrected base64 decoded data size
...
issue: https://github.com/thorvg/thorvg/issues/2794
2024-10-03 18:56:26 +09:00
Mira Grudzinska
bf9f5ab1c5
svg_loader: append text to the SvgTextNode
...
Text can be added in parts due to the presence
of the <tspan> tag. This requires that each
subsequent piece of text is appended rather than
overwriting the previous one.
2024-09-10 19:02:24 +09:00
Hermet Park
ae4240f48e
common: remove redundant code
2024-09-05 23:40:32 +09:00
Hermet Park
6baeca91d8
common/math: replace isinfinite() with isinf()
2024-09-04 03:00:13 +09:00
Mira Grudzinska
6db6672567
common: precision increase while matrix inversion
...
A numerically motivated limit on the matrix determinant
set at 1e-6 was not sufficient. The limit has been increased
by checkoing whether 1/det is still a number.
2024-09-04 02:52:16 +09:00
Mira Grudzinska
59f950e71b
common: introduce tvg::clamp
2024-09-02 11:47:30 +09:00
Mira Grudzinska
078b1c8d86
common: uint8_t version of the lerp
...
An uint8_t version of the lerp function
is introduced to handle cases where
the interpolation factor t exceeds 1, which
previously caused overflow issues due to casting.
2024-08-29 23:56:45 +09:00
Hermet Park
11b756791b
common/math: remove inlining
...
Let the compiler decide whether to inline.
2024-08-23 14:41:02 +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
Mira Grudzinska
eca0011846
common: fix arg name
...
For Bezier curves, we typically use 't' as a parameter
within the 0-1 range, while 'at' is used for the parameter
scaled by the curve's length. In one of the functions,
an incorrect name was used, which could be confusing.
No logical changes.
2024-08-08 19:52:46 +09:00
Mira Grudzinska
4b73a074c4
common: add missing consts
...
Adding const was necessary to allow calling
the functions on constant objects.
2024-08-08 19:52:46 +09:00
Mira Grudzinska
efcaa807ab
common: increase precision for bezier calculations
...
The epsilon value currently used for the precision
of Beziers calculations is sufficient for comparing
curve lengths. However, for the parameter t, which
ranges from 0 to 1, an accuracy of 1% can introduce
errors.
The solution is to increase the precision for the t
parameter while keeping the rest of the calculations
at the previously used epsilon value.
@Issue: https://github.com/thorvg/thorvg/issues/2619
2024-08-08 19:52:35 +09:00
Hermet Park
ed9eee897a
renderer/accessor: added the id generator.
...
This function computes a unique identifier value based on the provided string.
You can use this to assign a unique ID to the Paint object.
Experimental APIs:
- uint32_t Accessorr::id(const char* name)
- uint32_t tvg_accessor_id(const char* name)
2024-08-07 12:02:22 +09:00
Stephan T. Lavavej
cc01b77493
Revert "common: fix a crash on CI windows test."
...
This reverts commit e51dfb068a
.
2024-08-02 21:59:15 +09:00
Hermet Park
036ae3c2af
renderer: code refactoring
...
Replaced the transformation with
a strong associated data field.
This helps to reduce the binary size (-1k).
2024-07-29 23:27:19 +09:00
Hermet Park
c4d89d0983
common: code refactoring
...
Trimming the transform data pass,
from RenderTransform to Matrix.
No logical changes.
2024-07-29 12:16:58 +09:00
Hermet Park
ee29a000f2
math: ++missing exceptions
2024-07-10 03:53:09 +09:00
Hermet Park
69b1fb8208
common/math: code refactoring
...
- migrate tvgLine to tvgMath
- associate line functions with classes.
2024-07-10 00:21:02 +09:00