Hermet Park
f2fdc380b4
fix compiler warnings on MacOS
...
warning: unqualified call to 'std::move' [-Wunqualified-std-cast-call]
2023-05-19 10:56:59 +09:00
Hermet Park
89db13037d
common sw_engine: gather scattered stroking composition.
...
There are two branches for completing stroke composition between the canvas and sw_engine.
It is necessary to centralize the task on the canvas engine side so that
we can maintain the logic without confusion.
2023-05-19 10:35:24 +09:00
Hermet Park
3626ded041
examples svg: adjust window size.
...
Still some display size is not enough large.
2023-05-19 10:35:24 +09:00
Hermet Park
d55ba07646
examples masking: updated for stroking composition.
2023-05-19 10:35:24 +09:00
Hermet Park
6994925b9d
common shape: fixing stroking composition issue.
...
When combining Shape, Stroke, and AlphaMasking, there is a missing
composition step which results in an incorrect output as expected by the user.
This problem is resolved by introducing shape fill and stroking composition.
@Issue: https://github.com/thorvg/thorvg/issues/209
2023-05-19 10:35:24 +09:00
Hermet Park
4938c3253c
doc: updated godot image.
2023-05-18 00:54:40 +09:00
Hermet Park
42e0f8c3a3
infra: enable strip flag only when it's requeted.
...
$meson . build -Dstrip=false //off
$meson . build -Dstrip=true //on
2023-05-17 22:17:10 +09:00
Hermet Park
1672badb7c
package: add thorvg preprocessor for static linking
2023-05-17 22:17:10 +09:00
Hermet Park
d8687314a6
common picture: fix a composition bug.
...
Previously, a picture with a half-translucent mask would not function correctly.
This fix addresses the bug by applying the expected composition step.
Note: Even after applying this patch, a half-translucent mask with shape fill alpha will still not work properly.
We should consider removing the fill alpha property, as it duplicates the Paint opacity.
@Issue: https://github.com/thorvg/thorvg/issues/1423
2023-05-17 11:11:55 +09:00
Hermet Park
c7d77b3517
common scene: fix a potential composition bug.
...
In the current implementation, only a scene with a single shape type
is able to skip the composition step. However, a child picture might
have multiple children shapes as well, which leads to the bug.
2023-05-17 11:11:55 +09:00
Vincent Torri
be2de28312
portability: fix usage of TVG_API
...
Rule of thumb on Windows:
* for a DLL:
* if the library is built, set TVG_API to __declspec(dllexport)
* if the library is used, set TVG_API to __declspec(dllimport)
* for a static library, set TVG_API to nothing
To set TVG_API for a static library, TVG_STATIC is defined when the stataic library is built.
Otherwise, TVG_API is correctly set for a DLL.
Also sun and intel compilers are handled
@issue: https://github.com/thorvg/thorvg/issues/1446
2023-05-16 18:55:33 +09:00
Hermet Park
41c41b538d
examples: updated SVG samples.
...
increase the canvas to afford more resources.
2023-05-16 11:46:28 +09:00
Mira Grudzinska
2cfa5505c3
svg_loader: fixing finding defs node
...
In the case when a 'use' node was used
in a 'defs' block and the element it
referenced was also defined within the same
'defs' block, the reference node could not
be cloned. This was because the 'defs' node
could not be located.
@Issue: https://github.com/thorvg/thorvg/issues/1451
2023-05-16 10:43:45 +09:00
Mira Grudzinska
40ef9031ba
svg_loader: copy the use node properties
...
A bug was observed when a 'use' node was
referenced in another 'use' node.
@Issue: https://github.com/thorvg/thorvg/issues/1451
2023-05-16 10:42:35 +09:00
Hermet Park
9d9f38c875
common: code refactoring
...
Replace standard casting with tvg::cast()
2023-05-15 12:07:55 +09:00
Hermet Park
4d722623a6
api: introduce cast() template method.
...
The cast() method is a utility function used to
cast a 'Paint/Fill' to type 'T'.
This would help users to write code optimal.
@API Additions:
template<typename T> std::unique_ptr<T> cast(Paint* paint)
template<typename T> std::unique_ptr<T> cast(Fill* fill)
2023-05-15 12:07:55 +09:00
Hermet Park
0fb8ed38d7
api: remove extern "C"
...
Remove extern "C specifier. ThorVG has the C binding,
C++ apis doesn't need to be compatibile with a C compiler.
This limits the C++ style template interface.
2023-05-15 12:07:55 +09:00
Hermet Park
aa000f7c56
api: remove deprecated apis
...
- Result Paint::bounds(float* x, float* y, float* w, float* h) const noexcept;
- Result Picture::load(const char* data, uint32_t size, bool copy = false) noexcept;
@Issue: https://github.com/thorvg/thorvg/issues/1372
2023-05-13 18:30:11 +09:00
Hermet Park
07cb8fd55b
test: updated tvg binaries.
2023-05-12 17:53:10 +09:00
Hermet Park
f95c91ddc2
engine gl: fix build error
2023-05-12 12:06:00 +09:00
Hermet Park
0dec5a44b6
engine gl: specify gl as beta
...
The engine hasn't been maintained propelry and it's not functional.
2023-05-12 12:06:00 +09:00
JunsuChoi
597b88b118
jpg_loader: Add file existence check
...
Prevent memory leaks.
==2277==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 24 byte(s) in 1 object(s) allocated from:
#0 0x7f71c4ff2587 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cc:104
#1 0x7f71c4a8d56a in jpgdHeader(char const*, int*, int*) ../src/loaders/jpg/tvgJpgd.cpp:2930
#2 0x7f71c4ad4f85 in JpgLoader::open(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/loaders/jpg/tvgJpgLoader.cpp:59
#3 0x7f71c497d663 in LoaderMgr::loader(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool*) ../src/lib/tvgLoader.cpp:174
#4 0x7f71c4992d81 in tvg::Picture::Impl::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/lib/tvgPictureImpl.h:220
#5 0x7f71c498aa86 in tvg::Picture::load(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../src/lib/tvgPicture.cpp:58
#6 0x55df238cb293 in C_A_T_C_H_T_E_S_T_24 ../test/testPicture.cpp:371
#7 0x55df2366d499 in Catch::RunContext::invokeActiveTestCase() ../test/catch.hpp:13025
#8 0x55df236dee1b in Catch::RunContext::runCurrentTest(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) ../test/catch.hpp:12998
#9 0x55df23710586 in Catch::RunContext::runTest(Catch::TestCase const&) ../test/catch.hpp:12759
#10 0x55df237252d4 in execute ../test/catch.hpp:13352
#11 0x55df237252d4 in Catch::Session::runInternal() ../test/catch.hpp:13562
#12 0x55df23726b86 in Catch::Session::run() ../test/catch.hpp:13518
#13 0x55df235f7179 in int Catch::Session::run<char>(int, char const* const*) ../test/catch.hpp:13236
#14 0x55df235f7179 in main ../test/catch.hpp:17543
#15 0x7f71c3791082 in __libc_start_main ../csu/libc-start.c:308
SUMMARY: AddressSanitizer: 24 byte(s) leaked in 1 allocation(s).
2023-05-11 23:44:46 +09:00
Hermet Park
73ee8a9409
Update CONTRIBUTING.md
2023-05-11 10:53:17 +09:00
Mira Grudzinska
a1b74a3aa2
Update CODEOWNERS
2023-05-10 22:55:19 +02:00
Hermet Park
4513bc1c4d
examples tvg: updated samples
...
TvgSaver has been updated by 77114a8ac8
2023-05-11 02:01:40 +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
JunsuChoi
6d16713ce9
test_capi: Add missing *_del api
2023-05-10 21:05:26 +09:00
Mira Grudzinska
78c5034229
tests: lcov++ (sw_engine)
2023-05-10 14:36:02 +09:00
Hermet Park
e84b181da8
released v0.9.0
2023-05-10 14:35:42 +09:00
Hermet Park
54ef8a5e50
infra: updated tvg resources
2023-05-10 14:35:42 +09:00
Hermet Park
2d0ef20ab1
doc: up-to-update
2023-05-10 14:35:42 +09:00
Hermet Park
a992e571a3
test capi: ++CompositeMethod coverage
2023-05-09 23:19:15 +09:00
Hermet Park
89dc7616cf
test paint: ++CompositeMethod coverage
2023-05-09 23:19:15 +09:00
Hermet Park
ddc846289c
apis: Let's promote the beta APIs to official ones.
...
- enum class CompositeMethod::LumaMask
- Result Picture::load(uint32_t* data, uint32_t w, uint32_t h, bool copy)
2023-05-09 23:19:15 +09:00
Hermet Park
7956a21fc2
sw_engine: fix the dead lock issue.
...
fully recovered from the scene clipping multi-tasksing.
@Issue: https://github.com/thorvg/thorvg/issues/1430
2023-05-09 15:56:30 +09:00
Mira Grudzinska
ac86c522f1
capi: luma mask introduced, tvg_picture_load_raw description changed
2023-05-09 15:55:22 +09:00
Mira Grudzinska
52260067e4
common: changed a returned value from load function
...
In the event that malloc returns a nullptr while copying
loaded raw data, a Result::NonSupport value is returned.
However, it appears that Result::FailedAllocation would be
more accurate.
2023-05-09 15:54:20 +09:00
Hermet Park
85f001c88d
Update CODEOWNERS
2023-05-09 00:10:49 +09:00
Hermet Park
23c0b8e9f2
Update CONTRIBUTING.md
2023-05-09 00:01:02 +09:00
Hermet Park
fd756c421e
Update CODEOWNERS
2023-05-08 23:49:03 +09:00
Hermet Park
2ee6612763
Update CODEOWNERS
2023-05-08 23:46:39 +09:00
Mira Grudzinska
cfead5ff68
sw_renderer: fixing names after refactor
...
the 'buffer' doesn't exist any more in the Surface
struct. Replaced by tjhe 'buf32' - error visible
only while avx and neon rendering supported.
2023-05-08 22:04:01 +09:00
Hermet Park
3376f44de5
sw_engine: ++8bit grayscale rasterizer.
...
These rasterizers are added for 8bit maskings.
2023-05-08 10:55:03 +09:00
Hermet Park
737b89471a
examples: ++performance test
...
Add masking to figure out the perf result.
2023-05-08 10:55:03 +09:00
Hermet Park
4893746eb2
sw_engine: code refactoring
...
use shorter name.
2023-05-08 10:55:03 +09:00
Hermet Park
da6216f9bf
sw_engine: specify buffer size so that we can clearly access the buffer data.
...
Also, it introduces the 'pixel_t' type to ensure that anonymous pixel data
follows the system's decision.
2023-05-08 10:55:03 +09:00
Hermet Park
f18d2557e3
sw_engine raster: code refactoring.
...
Move partial region in rasterClear()
2023-05-08 10:55:03 +09:00
Hermet Park
0ce2208be0
examples masking: added nested masking scenario.
2023-05-08 10:55:03 +09:00
Hermet Park
527b1af926
common sw_engine: applied colorspace format size.
...
Now backend engines know which channel size is required for
compositions.
@Issue: https://github.com/thorvg/thorvg/issues/976
2023-05-08 10:55:03 +09:00
Hermet Park
e3f363fea7
common render: added a new type for one byte pixel data.
...
This is designed using for masking buffers.
@Issue: https://github.com/thorvg/thorvg/issues/976
2023-05-08 10:55:03 +09:00