Commit graph

2240 commits

Author SHA1 Message Date
Hermet Park
8af77ba5b1 lottie: Fixed trimpath to support simultaneous trimpath
The previous version omitted support for simultaneous trimpath,
but it is now working as intended.
2023-12-26 17:50:08 +09:00
Hermet Park
244e984df8 lottie/builder: Fix overlapped stroking outlines.
Previously, the builder accumulated the outlines and fills
in one paint to reduce the rendering context.

However, this approach won't work for Lottie
if the resource contains multiple strokes with branched groups.

We should apply the optimization
only when the specified condition is satisfied.
2023-12-26 17:50:02 +09:00
JunsuChoi
17fa8a7412 renderer/initializer: Support for initializing SW and GL engines together
Initialize both renderers to allow init(SW | GL);
2023-12-26 17:49:51 +09:00
Martin Capitanio
2c7120ac3d loader/jpg: Fix a regression bug.
Fixes #1705
2023-12-26 17:49:29 +09:00
Hermet Park
960481f503 Update AUTHORS 2023-12-26 17:49:22 +09:00
SergeyLebedkin
35b03c826e wg_engine: introduce a webgpu canvas(engine)
WebGPU is a Render Hardware Interface built on top of the various APIs 
provided by the driver/OS depending on your platform. 

WebGPU exposes an API for performing operations, 
such as rendering and computation, on a Graphics Processing Unit.

WebGPU official documentation: https://www.w3.org/TR/webgpu/

The new engine type introduced: tvg::CanvasEngine::Wg

The new canvas type introduced: tvg::WgCanvas

Example:
$meson setup build -Dengines=wg_beta

`
    // init engine webgpu
    tvg::Initializer::init(tvg::CanvasEngine::Wg, 0);

    // create wg canvas
    auto canvasWg = tvg::WgCanvas::gen();
    canvas_wg->target(glfwGetWin32Window(window), width, height);

    // ...

    // terminate engine and window
    tvg::Initializer::term(tvg::CanvasEngine::Wg);
`
Still this feature is under the beta

Issue: https://github.com/thorvg/thorvg/issues/1479
2023-12-26 17:49:16 +09:00
Nattu Adnan
f22c7bdaea Enhance README image responsiveness 2023-12-26 17:49:09 +09:00
Hermet Park
8a6b5626fc lottie/builder: fix a regression bug.
currently thorvg doesn't support full 3d transformation.
orthogonal projection is mandatory.

Issue: https://github.com/thorvg/thorvg/issues/1698
2023-12-26 17:49:03 +09:00
Hermet Park
f37bbce2f5 examples: add svg samples. 2023-12-26 17:48:56 +09:00
Hermet Park
84a19ece7e examples: allow gl test 2023-12-26 17:48:50 +09:00
RuiwenTang
49b7ea4679 gl_engine: support clip by using scissor and stencil 2023-12-26 17:48:41 +09:00
Martin Capitanio
7444e5bd25 loader/svg: Fix maskContentUnits userSpaceOnUse/objectBoundingBox
Fixes #1694
2023-12-26 17:48:33 +09:00
Hermet Park
311163bdd3 Update README.md 2023-12-26 17:48:26 +09:00
Hermet Park
58a0dba514 infra: add android CI build test with necessary cross build config. 2023-12-26 17:48:20 +09:00
Hermet Park
a646844142 Update CONTRIBUTING.md 2023-12-26 17:48:15 +09:00
Hermet Park
e31902d5b1 infra/gitaction: fix a broken macos/ios CI build. 2023-12-26 17:48:07 +09:00
Hermet Park
01dd93be11 infra: migrate cross files into one folder. 2023-12-26 17:48:01 +09:00
Hermet Park
e1f1b9656b lottie/builder: revise the render context for saving memory.
Allocate repeater context only when it's valid.
2023-12-26 17:47:53 +09:00
Hermet Park
820547562c Lottie: Fixed handling of multiple strokes in one layer.
Revised the rendering logic of Lottie by creating a new rendering context
using a queue when multiple strokes are requested.

Issue: https://github.com/thorvg/thorvg/issues/1642
2023-12-26 17:47:47 +09:00
Hermet Park
19b1e4fdf2 Update CONTRIBUTING.md 2023-12-26 17:47:39 +09:00
Hermet Park
0a9d98ccfd sw_engine/stroke: enhanced the quality of the dash line corners.
Previously, the engine didn't properly cover the dash line corner styles
because it considered a new line to start at the corner.

This update modifies the logic to recognize curved lines
as a single line, including the corners.

There may still be some quality issues,
but it's an improvement over the previous version.

@Issue: https://github.com/thorvg/thorvg/issues/121
2023-12-26 17:47:32 +09:00
Hermet Park
ba97607840 Update CONTRIBUTING.md 2023-12-26 17:47:12 +09:00
Hermet Park
c48258d98f Update CODEOWNERS 2023-12-26 17:45:38 +09:00
Hermet Park
ed68090e29 Update CODEOWNERS 2023-12-26 17:45:30 +09:00
Hermet Park
943b72c17c Update CODEOWNERS 2023-12-26 17:45:25 +09:00
RuiwenTang
d257835507 gl_engine: support render image 2023-12-26 17:45:18 +09:00
Hermet Park
8149194c61 Update README.md 2023-12-26 17:45:12 +09:00
Hermet Park
926f3f37db infra/gitaction: corrected meson build commands
meson "setup" is a mandatory command. skipping has been deprecated.
2023-12-26 17:44:49 +09:00
Hermet Park
8b74bc2bc8 infra/ios: added basic CI git action workflow. 2023-12-26 17:44:39 +09:00
Hermet Park
d95283384f infra: added ios cross compile scripts.
meson setup builddir --cross-file ./ios_x86_64_cross.txt ...
2023-12-26 17:44:33 +09:00
Hermet Park
4bdc0d69d6 infra: changed to dev mode 2023-12-26 17:44:24 +09:00
Hermet Park
12260198d1 release: bump up version v0.11.0 2023-09-28 08:30:34 +09:00
Hermet Park
b0f6640bca docs: updated to v0.11
In this update, we have chosen not to include CAPIs.
This decision was made due to the mixture of C++ and C languages
in a single documentation category, which resulted in a messy presentation.

Also, In this update, we have removed 'doxygen-awesome-css'
and introduced our own designated styles located in the 'style' folder.
After generating the Doxyfiles, we can overwrite the styles with these new ones.
2023-09-27 11:18:25 +09:00
Hermet Park
ba84771cce
Update README.md 2023-09-26 22:46:26 +09:00
Hermet Park
0e3b3d3095
Update README.md 2023-09-26 22:43:38 +09:00
Hermet Park
2b7c47f2b5
doc/capi: updated 2023-09-26 19:06:57 +09:00
Hermet Park
5ecd3fb479 sw_engine: Correct the color conversion condition.
The color conversion is supposed to take into account the differences between
straight alpha premultiplied color and pre-multiplied alpha color.

The previous logic does not perfectly cover these conditions.

The problem was occured in the thorvg viewer with a jpeg bgra format.
2023-09-26 18:57:34 +09:00
Hermet Park
e8fd7e2b85 infra: update the tvg binaries. 2023-09-26 17:42:17 +09:00
Hermet Park
51c3a8912c sw_engine: fix an invalid memory access.
the surface and mesh data can be missed by an invalid condition.
this fixes an invalid memory access problem.

Issue: https://github.com/thorvg/thorvg/issues/1671
2023-09-26 17:41:08 +09:00
Hermet Park
92b6f9dc48 examples: remove Async test
We have alternative test cases for it such as Lottie
2023-09-26 14:50:16 +09:00
Hermet Park
e4ade98e8c sw_engine: fix a regression stroke bug
reverted changes that occurred this issue from d683d2e

Issue: https://github.com/thorvg/thorvg/issues/1670
2023-09-26 14:26:57 +09:00
Hermet Park
7ec969be29 lottie/builder: Fix incorrect stroke width scaling propagation.
The transform (scale) should be applied to the following drawing elements,
not the previous stroke.
2023-09-26 14:24:52 +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
c7123a1547 test: enhanced the unit-test coverage
supplements animation/lottie/sw_engine test cases.

updated the page: https://github.com/thorvg/thorvg/wiki/Unit-Tests

Issue: https://github.com/thorvg/thorvg/issues/1669
2023-09-26 10:48:33 +09:00
Hermet Park
fdd90605c7 lottie/builder: fix a memory leak.
fixed a memory leak in an exceptional case.
2023-09-26 10:48:33 +09:00
Hermet Park
1819fed033 renderer/paint: fixed a mismatched reference count.
This correction ensures a consistent use of 'ref' and 'unref' for paints to release memory properly.
The memory leak occurred when a picture was not pushed to a valid canvas.

This issue was reported by the unit-test memory sanitizer.
2023-09-26 10:48:33 +09:00
Hermet Park
2fb0cc8309
Update README.md 2023-09-26 01:29:47 +09:00
Hermet Park
2f1873f04e test/capi: update unit tests
added a Tvg_Composite_Method::TVG_COMPOSITE_METHOD_NONE case
2023-09-25 21:33:23 +09:00
Hermet Park
ac82234360 capi: api sync up.
added beta apis:
- enum Tvg_Composite_Method::TVG_COMPOSITE_METHOD_INVERSE_LUMA_MASK;

promote apis:
- TVG_API Tvg_Result tvg_shape_set_stroke_miterlimit(Tvg_Paint* paint, float miterlimit);
- TVG_API Tvg_Result tvg_shape_get_stroke_miterlimit(const Tvg_Paint* paint, float* miterlimit);

@Issue: https://github.com/thorvg/thorvg/issues/1669
2023-09-25 21:33:23 +09:00