Hermet Park
53e5e783b7
api: revise engine initialization and termination
...
Simplified parameters and ensured proper backend engine
initialization by using reference checking through canvas
instances.
C++ API Modification:
- Result Initializer::init(uint32_t threads, CanvasEngine engine)
-> Result Initializer::init(uint32_t threads)
- Result Initializer::term(CanvasEngine engine)
-> Result Initializer::term()
C API Modification:
- Tvg_Result tvg_engine_init(Tvg_Engine engine_method, unsigned threads)
-> Tvg_Result tvg_engine_init(unsigned threads);
- Tvg_Result tvg_engine_term(Tvg_Engine engine_method)
-> Tvg_Result tvg_engine_term()
issue: https://github.com/thorvg/thorvg/issues/3116
2025-04-23 15:46:49 +09:00
Hermet Park
57dd66de1b
example/capi: chores++
2025-03-07 01:00:09 +09:00
Hermet Park
28d653e22f
renderer: hotfix crash
...
addressed extra corner case errors by
9e6a514022
2025-03-06 23:46:15 +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
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
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
a12accbc93
updated copyright
2025-01-03 14:32:31 +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
6b2f18ffa2
capi: unified the separate linear and gradient fill APIs
...
API Removal:
- Tvg_Result tvg_shape_set_stroke_linear_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
- Tvg_Result tvg_shape_set_stroke_radial_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
- Tvg_Result tvg_shape_set_shape_linear_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
- Tvg_Result tvg_shape_set_shape_radial_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
API Addition:
- Tvg_Result tvg_shape_set_stroke_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
- Tvg_Result tvg_shape_set_shape_gradient(Tvg_Paint* paint, Tvg_Gradient* grad)
2024-11-10 13:48:25 +09:00
Mira Grudzinska
422674b4c9
api: add focal parameters to the radial apis
...
API modification:
- Result RadialGradient::radial(float cx, float cy, float radius)
- Result RadialGradient::radial(float cx, float cy, float r, float fx, float fy, float fr)
- Result RadialGradient::radial(float* cx, float* cy, float* radius)
- Result RadialGradient::radial(float* cx, float* cy, float* r, float* fx = nullptr, float* fy = nullptr, float* fr = nullptr)
@Issue: https://github.com/thorvg/thorvg/issues/2860
2024-10-23 11:10:14 +09:00
Hermet Park
0a16152d75
api: renamed the composite with mask.
...
Since we've separated ClipPath and Masking,
Masking now has a distinct and independent purpose.
API Modification:
- enum class CompositeMethod -> enum class MaskMethod
- Result Paint::composite(std::unique_ptr<Paint> target, CompositeMethod method) -> Result Paint::mask(std::unique_ptr<Paint> target, MaskMethod method)
- CompositeMethod Paint::mask(const Paint** target) const -> MaskMethod Paint::mask(const Paint** target) const
issue: https://github.com/thorvg/thorvg/issues/1372
2024-10-16 14:41:26 +09:00
Hermet Park
76fb3f3cd9
api: clean up
...
promoted offical c++ apis (v0.15)
- enum class BlendMethod
- enum class CanvasEngine::Wg
- virtual Result Canvas::viewport(int32_t x, int32_t y, int32_t w, int32_t h);
- class Text
- Result Text::fill(uint8_t r, uint8_t g, uint8_t b)
- Result Text::fill(std::unique_ptr<Fill> f)
- static Result Text::unload(const std::string& path)
- static Result Text::load(const std::string& path)
- static Result Text::load(const char* name, const char* data, uint32_t size, const std::string& mimeType = "ttf", bool copy = false)
- static std::unique_ptr<Text> Text::gen()
- class WgCanvas
- static std::unique_ptr<WgCanvas> WgCanvas::gen()
- static const char* Initializer::version(uint32_t* major, uint32_t* minor, uint32_t* micro)
- class LottieAnimation
promoted official c apis (v0.15)
- Tvg_Blend_Method
- Tvg_Result tvg_engine_version(uint32_t* major, uint32_t* minor, uint32_t* micro, const char** version)
- Tvg_Result tvg_canvas_set_viewport(Tvg_Canvas* canvas, int32_t x, int32_t y, int32_t w, int32_t h)
- Tvg_Result tvg_paint_set_blend_method(Tvg_Paint* paint, Tvg_Blend_Method method)
- Tvg_Paint* tvg_text_new(void)
- Tvg_Result tvg_text_set_fill_color(Tvg_Paint* paint, uint8_t r, uint8_t g, uint8_t b)
- Tvg_Result tvg_text_set_gradient(Tvg_Paint* paint, Tvg_Gradient* gradient)
- Tvg_Result tvg_font_load(const char* path)
- Tvg_Result tvg_font_load_data(const char* name, const char* data, uint32_t size, const char *mimetype, bool copy)
- Tvg_Result tvg_font_unload(const char* path)
- Tvg_Animation* tvg_lottie_animation_new(void)
removed experimental apis
- BlendMethod paint::blend() const
- bool Shape::strokeTrim(float* begin, float* end) const
- Tvg_Result tvg_paint_get_blend_method(const Tvg_Paint* paint, Tvg_Blend_Method* method)
- Tvg_Result tvg_shape_get_stroke_trim(Tvg_Paint* paint, float* begin, float* end, bool* simultaneous)
- tvg_text_set_linear_gradient(Paint* paint, Tvg_Gradient* gradient)
- tvg_text_set_radial_gradient(Paint* paint, Tvg_Gradient* gradient)
issue: https://github.com/thorvg/thorvg/issues/1372
2024-09-23 21:53:50 +09:00
Mira Grudzinska
022f9fc897
examples: capi example ++
...
Animation is loaded from a memory instead from a file.
2024-08-20 18:46:29 +09:00
Mira Grudzinska
f79558eb62
API: deprecate the appendArc() api
...
@Issue: https://github.com/thorvg/thorvg/issues/2632
2024-08-16 13:30:58 +09:00
Josh Soref
e061fa6628
common: fix 178+ spelling errors
2024-07-01 21:58:46 +09:00
Mira Grudzinska
9cfc65fbc7
examples: fix sdl2 headers in Capi example
2024-06-27 10:33:53 +09:00
Hermet Park
1dcd2c4b5f
examples: replace the efl toolkit with sdl
...
see also: https://www.libsdl.org/
issue: https://github.com/thorvg/thorvg/issues/1244
2024-06-20 17:49:18 +09:00
Mira Grudzinska
6829593ac6
examples: capi updated with text examples
2024-06-18 10:50:53 +09:00
Mira Grudzinska
566b327f09
capi: bindings for strokeTrim
...
Example Capi.cpp modyfied.
2024-06-05 11:55:36 +09:00
Mira Grudzinska
185836d278
examples: fix heap-use-after-free in Capi.cpp
2024-05-31 10:02:58 +09:00
Hermet Park
e8e9ba5ea0
infra: move the examples folder outside of the source directory.
...
examples are not considered a feature of ThorVG;
hence, they are excluded from the src directory.
This change allows developers to concentrate more effectively
on the core ThorVG sources for practical usages.
2024-04-01 10:52:22 +09:00