Hermet Park
34bb27bfc9
renderer/saver: enhanced safety
...
enhanced safety by taking into account the object reference counting.
2024-04-06 12:48:30 +09:00
Hermet Park
25ea242d38
saver/tvg: removed an unstable condition.
...
this optimization breaks the scene composition, remove it.
Issue: https://github.com/thorvg/thorvg/issues/1750
2024-01-03 16:21:15 +09:00
Jinny You
92288c8291
updated copyright date ( #1866 )
2024-01-02 20:34:12 +09:00
Vincent Torri
7e438a665c
include missing headers for strcmp(), strdup() and realloc()
2024-01-02 20:34:10 +09:00
Hermet Park
bbf3cec2cc
common/array: code refactoring.
...
Use a default constructor with reservation.
2024-01-02 20:34:10 +09:00
Hermet Park
ec1510ee08
gif/saver: fix a invalid memory access
2024-01-02 20:34:10 +09:00
Hermet Park
0665837899
gif/encoder: fixed memory violation.
...
There was an invalid palette data access
when no frame data had been changed, detected by memory sanitizer.
2024-01-02 20:34:10 +09:00
Hermet Park
c44e09faae
gif/encoder: adjusted alpha transparent threshold 255 -> 127
...
More than half-transparent(50%) pixels will be encoded as well.
2023-12-26 18:36:31 +09:00
Hermet Park
89a6a835dd
saver/gif: memory usage optimization.
...
Use a cache to store the intermediate palette data.
2023-12-26 18:36:25 +09:00
Hermet Park
b3e2c7e6b0
saver/gif: code refactoring
...
Revised the code to keep the thorvg convention consistency.
2023-12-26 18:36:18 +09:00
Hermet Park
2053bbbc37
gif: fixed a regresion bug by clear() change
...
by 66305f3e6d
2023-12-26 18:34:49 +09:00
Hermet Park
34f47671b1
gif: support transparent gif animation
...
if no background is set, gif will generate transparent version.
Issue: https://github.com/thorvg/thorvg/issues/1769
2023-12-26 18:33:46 +09:00
Hermet Park
dfbb3893b0
saver/gif: code refactoring
...
Remove unused dithering logics for reducing binary size.
This is not quite effective for vector images.
2023-12-26 18:33:40 +09:00
Hermet Park
27843d2557
savers: provides a background setting.
...
Allow users to set a custom background with a saver.
API:
- Result Saver::background(std::unique_ptr<Paint> paint);
2023-12-26 18:30:06 +09:00
Hermet Park
58311ee5c3
saver/gif: Fix a clipping issue.
...
The Lottie loader missed handling the base clipper resizing.
This patch addresses the issue.
2023-12-26 18:18:27 +09:00
Hermet Park
acb67dad8c
saver/gif: up to date the gif encoder.
...
this fixes the memory sanitizer report:
../src/savers/gif/gif.h:315:31: runtime error: index 255 out of bounds for type 'unsigned char [255]'
../src/savers/gif/gif.h:113:54: runtime error: index 255 out of bounds for type 'unsigned char [255]'
Issue: https://github.com/thorvg/thorvg/issues/1758
2023-12-26 18:18:21 +09:00
JunsuChoi
a20216045a
saver GifSaver: Introduce GifSaver for animation
...
Add save() API that takes tvg::Animation as a parameter.
This API uses gif.h to create each animation frame as a gif frame.
Gif creation do not support threads because they must be added sequentially.
Please see example/GifSaver.cpp
ex)
auto animation = tvg::Animation::gen();
auto picture = animation->picture();
picture->load(EXAMPLE_DIR"/walker.json");
auto saver = tvg::Saver::gen();
saver->save(std::move(animation), EXAMPLE_DIR"/test.gif");
saver->sync();
New API:
Result Saver::save(std::unique_ptr<Animation> animation, const std::string& path, uint32_t quality = 100, uint32_t fps = 0);
Issue: https://github.com/thorvg/thorvg/issues/1712
2023-12-26 18:17:38 +09:00
Hermet Park
74b67919e0
tvg: support radial gradient focal properties
...
properly store/restore the radial gradient focal properties
from the tvg loader and saver
2023-09-26 13:05:27 +09:00
Hermet Park
ed23b432bb
tvg: support dash offset property
...
properly store/restore the dash offset property
from the tvg loader and saver
Issue: https://github.com/thorvg/thorvg/issues/1617
2023-09-26 13:05:27 +09:00
Hermet Park
e0d1c947e6
infra: renamed the files for the consistency.
2023-09-04 17:26:43 +09:00
Hermet Park
e7d29e166b
loaders: unify duplicated b64 decoders.
...
- move the svg/lottie b64 decoders to tvgLzw.
- renames tvgLzw -> tvgCompressor
2023-08-17 21:28:58 +09:00
Hermet Park
9e0a3aa678
loader lottie: tiny data copy optimization.
...
This patch tries to skip the matrix data copy as possible.
2023-08-15 15:48:48 +09:00
Hermet Park
c0cb8c0ce8
apis: remove a beta api.
...
- const uint32_t* Picture::data(uint32_t* w, uint32_t* h) const
Returning pixel data is not guaranteed as the picture may contain vector resources.
Remove it unless it's absolutely necessary.
@Issue: https://github.com/thorvg/thorvg/issues/1372
2023-08-08 10:47:37 +09:00
Hermet Park
3e8225a5ba
common math: promote matrix functions.
...
comparing matrices is a common mathmatical operation.
2023-07-28 21:57:40 +09:00
Hermet Park
a74062d5f1
loader tvg: add missing strokeFirst property.
...
tvg binary missed the stroke order,
this patch implements the missing condition.
@Issue: https://github.com/thorvg/thorvg/issues/1499
2023-07-28 21:57:40 +09:00
Hermet Park
b876427325
common array: revise the interface.
...
Implement a pair of access methods: last() and first().
2023-06-29 20:40:16 +09:00
Hermet Park
4482664740
common array: ++enhance the usability.
...
+ end() which indicates the end of the data pointer.
2023-06-26 14:58:30 +09:00
Hermet Park
bd87f1398c
common array: ++enhance the usability.
...
add last() which indicates the last element pointer.
2023-06-23 16:49:39 +09:00
Hermet Park
075e3e6b2a
tvg: support stroke miterlimit property.
...
implement the miterlimit property that was introduced by
44a750ee5d
@Issue: https://github.com/thorvg/thorvg/issues/1490
2023-06-14 10:46:12 +09:00
Hermet Park
8398fdbca7
tvg: recover the broken compatibility.
...
The issue was introduced by b214fd23bc
2023-06-13 12:23:17 +09:00
Hermet Park
9d9f38c875
common: code refactoring
...
Replace standard casting with tvg::cast()
2023-05-15 12:07:55 +09:00
Mira Grudzinska
77114a8ac8
tvg_saver: fixing unwanted merging
...
Similar shapes are merged to improve
performance. This should not be the case
with a semi-transparent fill, different
shapes' fill-rule or fill-rule set to evenodd.
@Issue: https://github.com/thorvg/thorvg/issues/1440
2023-05-11 01:57:19 +09:00
Mira Grudzinska
bce5aef068
tvg_saver: fixing file opening mode
...
Opening files in text mode on windows can
cause issues. Fixed by changeing the mode
to binary.
@Issue: https://github.com/thorvg/thorvg/issues/957
@Issue: https://github.com/thorvg/thorvg/issues/1380
2023-04-27 23:35:32 +09:00
Hermet Park
084e78d98d
common: code refactoring for the IteractorAccessor.
...
The instantiation of the accessor is unnecessary
as it does not require any internal context.
Simplifying its usage would be beneficial.
2023-04-07 18:24:24 +09:00
Hermet Park
b2692484b7
infra - add 'all' option for savers.
...
ex) meson . build -Dsavers="all", ...
2023-04-07 13:54:29 +09:00
Hermet Park
9b3c34c3b1
updated copyright.
2023-01-14 13:48:11 +09:00
Hermet Park
d958fc7971
saver/loader tvg: support picture mesh properties.
...
this mesh properites newly introduced in v0.8
(see: 3dd65dfed0
)
tvg saver/loader should implement mesh support to
properly capture/replay the scene snapshot.
@Issue: https://github.com/Samsung/thorvg/issues/1242
2022-12-08 22:29:29 +09:00
Omar Polo
53074d250f
fix OpenBSD compile issue
...
Linux seems the only system AFAICS to have alloca.h. All the BSDs have
the declaration in stdlib.h
2022-07-13 10:28:46 +09:00
Rémi Verschelde
becb70f09d
Cleanup FreeBSD preprocessor checks (if vs ifdef)
...
Should be equivalent but checking if the value is defined (`#ifdef`) is cleaner
than checking if it is set to something different from 0 (`#if`).
2022-05-24 10:32:53 +09:00
Hermet Park
0e8cd1e525
fix FreeBSD compile issue.
...
alloca is defined in stdlib.h on [freeBSD](https://www.freebsd.org/cgi/man.cgi?alloca )
additional fix to 75c1314ab0
2022-05-17 22:05:10 +09:00
Rémi Verschelde
0c6c37b616
build: Add missing <cstring> includes for MinGW compatibility
2022-01-19 16:40:30 +09:00
Hermet Park
f0141e63de
updated copyright date.
2022-01-12 14:08:48 +09:00
Michal Maciola
282b9288ab
all: fix compilation errors on non-windows clang
...
Thorvg couldn't be compiled on macos as non-portable microsoft calls used.
Changed definitions checking to Visual Studio only.
2021-11-17 20:55:26 +09:00
Hermet Park
0fcdba8a4b
common math: code refactoring
...
introduced mathZero(), mathEqual() for floating variables.
2021-11-15 17:10:54 +09:00
Mira Grudzinska
14c1562b36
tvg_saver: fix memory leaks
...
In the cae when Result::InsufficientCondition was retured by the save()
api, the user had to remember to delete the passed paint - fixed.
Also path was not released.
2021-11-09 20:15:06 +09:00
JunsuChoi
6400493859
tvg_saver TvgSaver: Initialize local value
...
If paint has no path information or stroke information,
it is not referenced inside bounds.
This will access the uninitialized variable at line 759, 760.
2021-11-08 19:39:01 +09:00
Hermet Park
c3a29bd648
common math: code refactoring
...
introduce common math functions to improve the reusability.
2021-11-04 17:11:27 +09:00
Mira Grudzinska
6b132d77e8
tvg_saver/tvg_loader: gradient fill in the tvg format
...
Introducing the gradient transform() apis and changing the grad
algorithms made it possible to apply the shape's transformation
before saving the tvg file, in case the shape (or its stroke)
has a fill.
2021-11-02 19:37:02 +09:00
Mira Grudzinska
86a8bbbb88
tvg_saver: preTransform condition
...
A stroke is irregularly scaled in case when:
1) m11 != m22
2) m11 == m22 == 0 and m12 != m21
The second case was missing in the code.
2021-11-01 15:52:20 +09:00
Hermet Park
36270f588e
common: replace the id() -> identifier()
2021-10-22 18:47:05 +09:00