Hermet Park
97b48a97c1
examples: polished for a sleek initial screen appearance
2025-03-06 19:07:38 +09:00
Hermet Park
e2f1557de5
examples: chores++
...
- removed AnimatedMasking.
- unified ImageScaleUp/Down.
- build GifSaver only gif_saver is enabled.
2025-03-05 23:25:06 +09:00
Hermet Park
5c2e898cca
examples: added bounding box sample
2025-03-05 14:46:55 +09:00
Hermet Park
67098793f0
renderer: revise the paint bounding box api
...
C++ API Modificaiton:
- Result Paint::bounds(float* x, float* y, float* w, float* h, bool transform = false) const
-> Result Paint::bounds(float* x, float* y, float* w, float* h) const
C++ API Addition:
- Result Paint::bounds(Point* pt4) const
C API Modification:
- Tvg_Result tvg_paint_get_bounds(const Tvg_Paint* paint, float* x, float* y, float* w, float* h, bool transformed);
-> Tvg_Result tvg_paint_get_aabb(const Tvg_Paint* paint, float* x, float* y, float* w, float* h);
C API Addition:
- Tvg_Result tvg_paint_get_obb(const Tvg_Paint* paint, Tvg_Point* pt4);
issue: https://github.com/thorvg/thorvg/issues/3290
2025-03-05 14:46:55 +09:00
Hermet Park
227a048752
examples: updated gifsaver
...
- walker.json has been removed
2025-02-27 23:32:48 +09:00
Hermet Park
e6ec370229
examples: removed Performance
2025-02-27 22:50:18 +09:00
Jinny You
bf5cea982c
common: Support .lot extension
...
Add support for the .lot extension to recognize Lottie animation files, as this introduces an additional extension for Lottie.
issue: #3248
2025-02-27 16:46:30 +09:00
Hermet Park
01a4a4c806
examples: updated lottie samples
2025-02-25 23:00:10 +09:00
Hermet Park
4316498b8b
examples: allow the engine name from the test script
...
Usage:
all.sh [engine name] [interval]
Example:
$./all.sh gl 3
2025-02-25 12:52:13 +09:00
Hermet Park
70f0ec9ff2
examples: renamed StrokeTrim -> TrimPath
2025-02-25 12:46:54 +09:00
Mira Grudzinska
b939a60bfa
api: change api name strokeTrim() -> trimpath()
...
No changes in behaviour so far.
2025-02-24 15:05:38 +09:00
Hermet Park
02678b67f4
examples: unified samples and improved coverages
...
- Unify samples for simpler testing:
- Masking + InvMasking
- LumaMasking + InvLumaMasking
- Applied Dash for the Stroke Triming
2025-02-21 17:16:26 +09:00
Sergii Liebodkin
1416e99f34
example: fix types of drop shadows effect parameters (int to double)
2025-02-21 00:06:53 +09:00
Hermet Park
8e1cd7b4c6
examples: added a default font for flawless test
2025-02-20 23:16:15 +09:00
Hermet Park
8e5ca40250
text: allow the unnamed font
...
If the font name is not specified,
ThorVG will select any available font candidate.
This could be useful for font fallback mechanism.
2025-02-20 18:47:01 +09:00
Hermet Park
424953ad7b
examples: build LottieTweening only if enabled
2025-02-18 12:31:10 +09:00
Jakub Marcowski
4042c7a6a7
Optimize all .png
images using oxipng
2025-02-17 16:06:37 +09:00
Fabian Blatz
71bb4163ed
common: fixed double-precision promotion compilation warnings
...
Co-Authored-By: Hermet Park <hermet@lottiefiles.com>
2025-02-12 20:23:34 +09:00
Hermet Park
eab9d68e67
api: remove SwCanvas::mempool()
...
We have improved the functionality to manage the memory pool safely,
by figuring out the current working threads. Users no longer need to
manually configure memory pool management, and the related APIs
have been removed.
API Removals:
- Result SwCanvas::mempool(MempoolPolicy policy)
- enum SwCanvas::MempoolPolicy
- Tvg_Result tvg_swcanvas_set_mempool(Tvg_Canvas* canvas, Tvg_Mempool_Policy policy)
- enum Tvg_Mempool_Policy
issue: https://github.com/thorvg/thorvg/issues/3116
2025-02-12 13:19:12 +09:00
Hermet Park
cc4c18d6c6
renderer: revise the Shape rect/circle features
...
The path direction of shapes is now functional for path trimming.
Replace the main logic with Lottie's by default
to align the spec, migrate the original logic to svg loader side.
This revision helps to reduce the binary size by 2–3 KB for lottie loader.
API Modifications:
- Result Shape::appendRect(float x, float y, float w, float h, float rx = 0, float ry = 0)
-> Result Shape::appendRect(float x, float y, float w, float h, float rx = 0, float ry = 0, bool cw = true)
- Result Shape::appendCircle(float cx, float cy, float rx, float ry)
-> Result Shape::appendCircle(float cx, float cy, float rx, float ry, bool cw = true)
- TVG_API Tvg_Result tvg_shape_append_circle(Tvg_Paint* paint, float cx, float cy, float rx, float ry)
-> TVG_API Tvg_Result tvg_shape_append_circle(Tvg_Paint* paint, float cx, float cy, float rx, float ry, bool cw)
- Tvg_Result tvg_shape_append_rect(Tvg_Paint* paint, float x, float y, float w, float h, float rx, float ry)
-> Tvg_Result tvg_shape_append_rect(Tvg_Paint* paint, float x, float y, float w, float h, float rx, float ry, bool cw)
issue: https://github.com/thorvg/thorvg/issues/3179
2025-02-12 01:41:02 +09:00
Hermet Park
4f0f2e4c08
example: removed interaction sample
...
LottieTweening is replaced with it.
2025-02-06 19:09:27 +09:00
Hermet Park
be0949339c
example: added lottie tweening sample
2025-02-06 19:09:27 +09:00
Popolon
02be99185e
include <cstring> in examples/Example.h
2025-02-03 11:23:34 +09:00
Hermet Park
97f85d44cb
example/interaction: chores++
2025-01-22 13:22:24 +09:00
Hermet Park
fdd760a34f
api: revised the animation segment specification
...
Changed the unit of the segment from a normalized value to frame numbers,
ensuring alignment with other frame control interfaces.
Note that This change may break backward compatibility.
issue: https://github.com/thorvg/thorvg/issues/3116
2025-01-22 13:03:48 +09:00
Hermet Park
48c8094d19
api: path api revision for v1.0
...
Unify the Path commands & pts getters.
C++ API modiciation:
- uint32_t Shape::pathCommands(const PathCommand** cmds) const
- uint32_t Shape::pathCoords(const PathCommand** cmds) const
-> Result Shape::path(const PathCommand** cmds, uint32_t* cmdsCnt, const Point** pts, uint32_t* ptsCnt)
C API modification:
- Tvg_Result tvg_shape_get_path_coords(const Tvg_Paint* paint, const Tvg_Point** pts, uint32_t* cnt)
- Tvg_Result tvg_shape_get_path_commands(const Tvg_Paint* paint, const Tvg_Path_Commands** cmds, uint32_t* cnt)
-> Tvg_Result tvg_shape_get_path(const Tvg_Paint* paint, const Tvg_Path_Command** cmds, uint32_t* cmdsCnt, const Tvg_Point** pts, uint32_t* ptsCnt)
issue: https://github.com/thorvg/thorvg/issues/3116
2025-01-14 11:47:28 +09:00
Hermet Park
f5aa347a70
api: renamed api for consistency
...
API modification:
- Shape::fillColor() -> Shape::fill()
issue: https://github.com/thorvg/thorvg/issues/3116
2025-01-13 16:53:14 +09:00
Hermet Park
bc1ad7104d
example: corrected reveresed arguments
2025-01-13 12:14:15 +09:00
Jinny You
2a6e3ca40a
examples: add slot transform overriding samples
2025-01-07 16:03:37 +09:00
Hermet Park
3d999ca1db
examples: revise the blending sample
...
Note that scene blending doesn't work properly
2025-01-07 12:16:07 +09:00
Hermet Park
a12accbc93
updated copyright
2025-01-03 14:32:31 +09:00
Hermet Park
12b3747d08
examples: updates svg resources
2024-12-31 14:02:26 +09:00
Jinny You
596de01b12
gl_engine: revise target API for context managing
...
Issue: #3024
2024-12-31 12:07:52 +09:00
Hermet Park
0e9bc74603
api: renamed FillRule::Winding to NonZero
...
aligned the name with the web standard.
2024-12-27 21:16:27 +09:00
Hermet Park
0437d482bd
example: updated with a stroknig clipper
2024-12-19 20:37:28 +09:00
Hermet Park
8ec2eee6e3
example: added Tritone Scene Effect
2024-12-17 17:55:34 +09:00
Hermet Park
8e8611b608
examples: added tint scene effect
...
also, merged gausiaan, fill altogether in SceneEffects
2024-12-17 12:16:44 +09:00
Hermet Park
79cbc0ebbc
infra: --meson deprecated usages
...
meson.source_root -> meson.project_source_root()
meson.build_root -> meson.project_build_root()
2024-12-13 01:20:25 +09:00
Hermet Park
666dcbcb38
examples: add Fill SceneEffect sample
2024-12-12 18:50:33 +09:00
Hermet Park
6761c5c2a0
API: Replace the Canvas::clear() API with Canvas::remove() & draw()
...
Added a `clear` parameter to Canvas::draw(), allowing users to decide
whether to clear the target buffer before drawing.
To remove the paints from a canvas, please use Canvas::remove()
C++ API Removals:
- Result Canvas::clear(bool paints, bool buffer)
C++ API Modifications:
- Result Canvas::draw()
-> Result Canvas::draw(bool clear)
C API Removals:
- Tvg_Result tvg_canvas_clear(bool paints, bool buffer)
C API Modifications:
- Tvg_Result tvg_canvas_draw(Tvg_Canvas* canvas)
-> Tvg_Result tvg_canvas_draw(Tvg_Canvas* canvas, bool clear)
issue: https://github.com/thorvg/thorvg/issues/1372
2024-12-10 11:59:46 +09:00
Hermet Park
a2d2b3f07c
example: update EffectGaussianBlur
2024-12-04 22:31:37 +09:00
Hermet Park
0ebbc614be
api: 1.0 specification revision
...
- Enhanced Scene management to provide users with more control.
- Scenes now support adding specific scenes at defined positions and removing them as needed.
- Ensure safe access to Canvas, Scene paints() by adding const specifiers.
- Removed virtual specifier for the canvas primitive apis.
- Introduced a nested scene in the canvas to remove logic duplication.
C++ API Modification:
- Result Scene::push(Paint* paint)
-> Result Scene::push(Paint* target, Paint* at = nullptr)
- Result Scene::clear(bool free = true)
-> Result Scene::remove(Paint* paint = nullptr)
- Result Canvas::push(Paint* paint)
-> Result Canvas::push(Paint* target, Paint* at = nullptr)
- list<Paint*>& Scene::paints()
-> const list<Paint*>& Scene::paints() const
- list<Paint*>& Canvas::paints()
-> const list<Paint*>& Canvas::paints() const
C++ API Addition:
- Result Canvas::remove(Paint* paint = nullptr);
C API Modifications:
- Tvg_Result tvg_scene_clear(Tvg_Paint* scene, bool free)
-> Tvg_Result tvg_scene_remove(Tvg_Paint* scene, Tvg_Paint* paint)
C API Addition:
- Tvg_Result tvg_scene_push_at(Tvg_Paint* scene, Tvg_Paint* target, Tvg_Paint* at)
- Tvg_Result tvg_canvas_push_at(Tvg_Canvas* canvas, Tvg_Paint* target, Tvg_Paint* at)
- Tvg_Result tvg_canvas_remove(Tvg_Canvas* canvas, Tvg_Paint* paint)
issue: https://github.com/thorvg/thorvg/issues/2957
issue: https://github.com/thorvg/thorvg/issues/1372
2024-12-04 11:44:58 +09:00
Sergii Liebodkin
cf05128a96
wg_engine: revision of device creation policy
...
make valid device and instance as mandatory paramter for webgpu renderer
2024-11-29 18:48:01 +09:00
Hermet Park
0f409a654a
renderer: reserved colorspace option in target api
...
API Modification:
- Result WgCanvas::target(void* device, void* instance, void* target, uint32_t w, uint32_t h, int type = 0)
-> Result WgCanvas::target(void* device, void* instance, void* target, uint32_t w, uint32_t h, ColorSpace cs, int type = 0)
- Tvg_Result tvg_wgcanvas_set_target(Tvg_Canvas* canvas, void* device, void* instance, void* target, uint32_t w, uint32_t h, int type)
-> Tvg_Result tvg_wgcanvas_set_target(Tvg_Canvas* canvas, void* device, void* instance, void* target, uint32_t w, uint32_t h, Tvg_Colorspace cs, int type)
2024-11-26 12:04:30 +09:00
Hermet Park
97058badbf
example: ++lottie extension
2024-11-26 01:11:03 +09:00
Hermet Park
036d1e7cac
example: ++gl, wgpu safety
...
Free the canvas in the reverse order of their creation.
2024-11-25 11:10:25 +09:00
Sergii Liebodkin
077a0481c4
wg_engine: reset context in examples
...
Fix examples termination process: reset context while window releasing before webgpu instance released
Issue https://github.com/thorvg/thorvg/issues/2745
2024-11-22 18:34:46 +09:00
Sergii Liebodkin
d0bc4bc4f5
wg_engine: multicanvas support (multicanvas example)
...
Updated multicanvas example
Issue https://github.com/thorvg/thorvg/issues/2745
2024-11-22 12:34:26 +09:00
Sergii Liebodkin
3805f26aff
wg_engine: multicanvas support
...
Added multicanas support
Issue https://github.com/thorvg/thorvg/issues/2745
2024-11-22 12:34:26 +09:00
Hermet Park
57fcada8cc
example: updated lottie samples
2024-11-22 11:17:07 +09:00