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
Mira Grudzinska
0bffe930ad
tvg_saver: fix the argument of the sizeof call
...
We got the size of a pointer instead of the size of a whole table.
Fixed now
2021-10-13 18:46:21 +09:00
Michal Maciola
e12729e0d3
wasm: fix compilation
...
After 'all: fixing clang warnings' (e7c3a91
) there was a problem with wasm
compilation, as strncpy and strdup.
Disable define is __EMSCRIPTEN__.
2021-10-09 11:32:27 +09:00
Mira Grudzinska
a16e91b441
all: fix compiler warnings
...
pow->powf and sqrt->sqrtf
2021-10-07 14:49:00 +09:00
Mira Grudzinska
e7c3a91aa1
all: fixing clang warnings
...
fopen->fopen_s, strdup -> _strdup, strncpy -> strncpy_s
__declspec(dllexport) -> __attribute__ ((visibility ("default")))
2021-10-06 11:13:12 +09:00
Projectitis
591ea1d61c
Changes to support MSVC
2021-09-29 22:56:52 +09:00
Hermet Park
daa114aafa
tvg_saver: resolve sanitizer report.
...
"runtime error: load of misaligned address 0x7fb67895c815 for type 'unsigned int', which requires 4 byte alignment"
same to c8cc973888
2021-09-24 12:05:03 +09:00
Hermet Park
3ee6883f16
tvg_saver: fix the memory leak.
2021-09-24 11:58:48 +09:00
Hermet Park
74954db56d
common paint: refine the bounds() api to return the values after applying transformation.
...
Current paint::bounds() returns the coordinates under the raw status,
the values are not quite useful if the paint object has the transformed children.
Thus, we extends the feature and give an additional parameter "transformed"
to return the coordinates values after transformation by user demands.
This is also necessary for tvg format, since we need the exact view size of the scene information.
The previous api is deprecated and we introduce a new api to replace it.
@APIs:
+ Result Paint::bounds(float* x, float* y, float* w, float* h, bool transformed) const noexcept;
- Result Paint::bounds(float* x, float* y, float* w, float* h) const noexcept;
@Issues: https://github.com/Samsung/thorvg/issues/746
2021-09-24 11:25:49 +09:00
Mira Grudzinska
4589196689
common: preventing msvc compiler warnings ( #817 )
2021-09-20 13:54:06 +02:00
Hermet Park
75e1310c7a
prepare to release tvg format feature.
2021-09-16 17:46:10 +09:00
Hermet Park
3d93867e8e
tvg_saver: code refactoring
...
removed the duplicated given child transform code,
no logical changes actually.
2021-09-16 15:01:42 +09:00
Mira Grudzinska
6b216e362d
tvg_saver: proper serialization of a grad fill
...
In the case when a gradinet fill is present, the transformation matrix
can't be preapplied.
2021-09-16 12:40:37 +09:00
Hermet Park
ee7dc1352e
tvg_saver: do not merge if the shapes have outlines.
...
Merged shapes with outlines expects the layered,
unfortunately tvg can't cover the situation.
@Issues: https://github.com/Samsung/thorvg/issues/783
2021-09-16 00:06:01 +09:00
Mira Grudzinska
d3368c9727
svg_saver: shifting 'preTransform' value changing
...
'preTransform = false' makes sense in case a stroke exist,
so not only when the stroke-width > 0 but when it's color
is valid as well.
2021-09-11 10:49:09 +09:00
Mira Grudzinska
288c9f5c1d
tvg_saver: fix the stroke width scaling factor
...
To get the scaling factor from the transformation matrix we have
to use two of its elements.
2021-09-08 10:36:59 +02:00
Hermet Park
f652b33a27
tvg_saver: fix a wrong logic by mistake.
...
an incorrect logic was introduced by mistake.
that breaks the tvg memory chunks.
now recover it.
@Issues: https://github.com/Samsung/thorvg/issues/774
2021-09-07 12:22:23 +02:00
Hermet Park
f1d9f691cc
tvg_saver: fix the incorrect stroke transformation
...
Saver tries to pre-transfom to skip the matrix data,
but it missed the case - transformed stroking,
we skip it also only when xy scaling factors are same excluding the dash properties,
because scaled of the stroking is depent on the engines,
we have no idea of the proper input data in advance.
@Issues: https://github.com/Samsung/thorvg/issues/773
2021-09-07 10:56:43 +02:00