mirror of
https://github.com/thorvg/thorvg.git
synced 2025-06-08 21:53:41 +00:00
capi: revise some common paint interfaces and added picture stuff.
Change-Id: I9850cbead5ce1ab172f284738fe8456cd19dc3f9
This commit is contained in:
parent
7106272d97
commit
05757ec07c
2 changed files with 70 additions and 26 deletions
|
@ -127,11 +127,20 @@ TVG_EXPORT Tvg_Result tvg_canvas_draw(Tvg_Canvas* canvas);
|
||||||
TVG_EXPORT Tvg_Result tvg_canvas_sync(Tvg_Canvas* canvas);
|
TVG_EXPORT Tvg_Result tvg_canvas_sync(Tvg_Canvas* canvas);
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************/
|
||||||
|
/* Paint API */
|
||||||
|
/************************************************************************/
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_del(Tvg_Paint* paint);
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_scale(Tvg_Paint* paint, float factor);
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_rotate(Tvg_Paint* paint, float degree);
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_translate(Tvg_Paint* paint, float x, float y);
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_transform(Tvg_Paint* paint, const Tvg_Matrix* m);
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* Shape API */
|
/* Shape API */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
TVG_EXPORT Tvg_Paint* tvg_shape_new();
|
TVG_EXPORT Tvg_Paint* tvg_shape_new();
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_del(Tvg_Paint* paint);
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_reset(Tvg_Paint* paint);
|
TVG_EXPORT Tvg_Result tvg_shape_reset(Tvg_Paint* paint);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_move_to(Tvg_Paint* paint, float x, float y);
|
TVG_EXPORT Tvg_Result tvg_shape_move_to(Tvg_Paint* paint, float x, float y);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_line_to(Tvg_Paint* paint, float x, float y);
|
TVG_EXPORT Tvg_Result tvg_shape_line_to(Tvg_Paint* paint, float x, float y);
|
||||||
|
@ -147,10 +156,6 @@ TVG_EXPORT Tvg_Result tvg_shape_set_stroke_dash(Tvg_Paint* paint, const float* d
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_set_stroke_cap(Tvg_Paint* paint, Tvg_Stroke_Cap cap);
|
TVG_EXPORT Tvg_Result tvg_shape_set_stroke_cap(Tvg_Paint* paint, Tvg_Stroke_Cap cap);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_set_stroke_join(Tvg_Paint* paint, Tvg_Stroke_Join join);
|
TVG_EXPORT Tvg_Result tvg_shape_set_stroke_join(Tvg_Paint* paint, Tvg_Stroke_Join join);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_fill_color(Tvg_Paint* paint, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
|
TVG_EXPORT Tvg_Result tvg_shape_fill_color(Tvg_Paint* paint, uint8_t r, uint8_t g, uint8_t b, uint8_t a);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_scale(Tvg_Paint* paint, float factor);
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_rotate(Tvg_Paint* paint, float degree);
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_translate(Tvg_Paint* paint, float x, float y);
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_transform(Tvg_Paint* paint, const Tvg_Matrix* m);
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_linear_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad);
|
TVG_EXPORT Tvg_Result tvg_shape_linear_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad);
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_radial_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad);
|
TVG_EXPORT Tvg_Result tvg_shape_radial_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad);
|
||||||
|
|
||||||
|
@ -166,6 +171,13 @@ TVG_EXPORT Tvg_Result tvg_radial_gradient_set(Tvg_Gradient* grad, float cx, floa
|
||||||
TVG_EXPORT Tvg_Result tvg_gradient_color_stops(Tvg_Gradient* grad, const Tvg_Color_Stop* color_stop, uint32_t cnt);
|
TVG_EXPORT Tvg_Result tvg_gradient_color_stops(Tvg_Gradient* grad, const Tvg_Color_Stop* color_stop, uint32_t cnt);
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************/
|
||||||
|
/* Picture API */
|
||||||
|
/************************************************************************/
|
||||||
|
TVG_EXPORT Tvg_Paint* tvg_picture_new();
|
||||||
|
TVG_EXPORT Tvg_Result tvg_picture_load(Tvg_Paint* paint, const char* path);
|
||||||
|
TVG_EXPORT Tvg_Result tvg_picture_get_viewbox(Tvg_Paint* paint, float* x, float* y, float* w, float* h);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -131,6 +131,41 @@ TVG_EXPORT Tvg_Result tvg_canvas_sync(Tvg_Canvas* canvas)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/************************************************************************/
|
||||||
|
/* Paint API */
|
||||||
|
/************************************************************************/
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_del(Tvg_Paint* paint)
|
||||||
|
{
|
||||||
|
delete(paint);
|
||||||
|
return TVG_RESULT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_scale(Tvg_Paint* paint, float factor)
|
||||||
|
{
|
||||||
|
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->scale(factor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_rotate(Tvg_Paint* paint, float degree)
|
||||||
|
{
|
||||||
|
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->rotate(degree);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_translate(Tvg_Paint* paint, float x, float y)
|
||||||
|
{
|
||||||
|
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->translate(x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_paint_transform(Tvg_Paint* paint, const Tvg_Matrix* m)
|
||||||
|
{
|
||||||
|
return (Tvg_Result) reinterpret_cast<Paint*>(paint)->transform(*(reinterpret_cast<const Matrix*>(m)));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
/* Shape API */
|
/* Shape API */
|
||||||
/************************************************************************/
|
/************************************************************************/
|
||||||
|
@ -141,13 +176,6 @@ TVG_EXPORT Tvg_Paint* tvg_shape_new()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_del(Tvg_Paint* paint)
|
|
||||||
{
|
|
||||||
delete(paint);
|
|
||||||
return TVG_RESULT_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_reset(Tvg_Paint* paint)
|
TVG_EXPORT Tvg_Result tvg_shape_reset(Tvg_Paint* paint)
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->reset();
|
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->reset();
|
||||||
|
@ -235,34 +263,38 @@ TVG_EXPORT Tvg_Result tvg_shape_fill_color(Tvg_Paint* paint, uint8_t r, uint8_t
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(r, g, b, a);
|
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(r, g, b, a);
|
||||||
}
|
}
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_scale(Tvg_Paint* paint, float factor)
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_shape_linear_gradient_set(Tvg_Paint* paint, Tvg_Gradient *gradient)
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->scale(factor);
|
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(unique_ptr<LinearGradient>((LinearGradient*)(gradient)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_rotate(Tvg_Paint* paint, float degree)
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_shape_radial_gradient_set(Tvg_Paint* paint, Tvg_Gradient *gradient)
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->rotate(degree);
|
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(unique_ptr<RadialGradient>((RadialGradient*)(gradient)));
|
||||||
}
|
}
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_translate(Tvg_Paint* paint, float x, float y)
|
|
||||||
|
/************************************************************************/
|
||||||
|
/* Picture API */
|
||||||
|
/************************************************************************/
|
||||||
|
|
||||||
|
TVG_EXPORT Tvg_Paint* tvg_picture_new()
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->translate(x, y);
|
return (Tvg_Paint*) Picture::gen().release();
|
||||||
}
|
}
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_transform(Tvg_Paint* paint, const Tvg_Matrix* m)
|
|
||||||
|
TVG_EXPORT Tvg_Result tvg_picture_load(Tvg_Paint* paint, const char* path)
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->transform(*(reinterpret_cast<const Matrix*>(m)));
|
return (Tvg_Result) reinterpret_cast<Picture*>(paint)->load(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_linear_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad)
|
|
||||||
{
|
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(unique_ptr<LinearGradient>((LinearGradient*)(grad)));
|
|
||||||
}
|
|
||||||
|
|
||||||
TVG_EXPORT Tvg_Result tvg_shape_radial_gradient_set(Tvg_Paint* paint, Tvg_Gradient *grad)
|
TVG_EXPORT Tvg_Result tvg_picture_get_viewbox(Tvg_Paint* paint, float* x, float* y, float* w, float* h)
|
||||||
{
|
{
|
||||||
return (Tvg_Result) reinterpret_cast<Shape*>(paint)->fill(unique_ptr<RadialGradient>((RadialGradient*)(grad)));
|
return (Tvg_Result) reinterpret_cast<Picture*>(paint)->viewbox(x, y, w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue