## vgcanvas\_t ### 概述 矢量图画布抽象基类。 具体实现时可以使用agg,nanovg, cairo和skia等方式。 cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。 我们对nanovg进行了一些改进: * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。 * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。 ![image](images/vgcanvas_t_0.png) 示例: ```c vgcanvas_t* vg = canvas_get_vgcanvas(c); vgcanvas_save(vg); vgcanvas_translate(vg, 0, 100); vgcanvas_set_line_width(vg, 1); vgcanvas_set_fill_color(vg, color_init(0xff, 0, 0, 0xff)); vgcanvas_rect(vg, 5, 5, 100, 100); vgcanvas_fill(vg); vgcanvas_restore(vg); ``` >请参考:https://www.w3schools.com/tags/ref_canvas.asp ---------------------------------- ### 函数
| 函数名称 | 说明 | | -------- | ------------ | | vgcanvas\_arc | 生成一条圆弧。 | | vgcanvas\_arc\_to | 生成一条圆弧路径到指定点。 | | vgcanvas\_begin\_frame | 开始绘制,系统内部调用。 | | vgcanvas\_begin\_path | 清除之前的路径,并重新开始一条路径。 | | vgcanvas\_bezier\_to | 生成一条三次贝塞尔曲线。 | | vgcanvas\_cast | 转换为vgcanvas对象(供脚本语言使用)。 | | vgcanvas\_clear\_rect | 用颜色清除指定矩形区域。 | | vgcanvas\_clip\_rect | 矩形裁剪。 | | vgcanvas\_close\_path | 闭合路径。 | | vgcanvas\_create | 创建vgcanvas。 | | vgcanvas\_destroy | 销毁vgcanvas对象。 | | vgcanvas\_draw\_icon | 绘制图标。 | | vgcanvas\_draw\_image | 绘制图片。 | | vgcanvas\_ellipse | 生成一个椭圆路径。 | | vgcanvas\_end\_frame | 结束绘制。系统内部调用。 | | vgcanvas\_fill | 填充多边形。 | | vgcanvas\_fill\_text | 绘制文本。 | | vgcanvas\_flush | flush | | vgcanvas\_is\_point\_in\_path | 检查点是否在当前路径中。 | | vgcanvas\_line\_to | 生成一条线段(从当前点到目标点)。 | | vgcanvas\_measure\_text | 测量文本的宽度。 | | vgcanvas\_move\_to | 移动当前点到指定点。 | | vgcanvas\_paint | 用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。 | | vgcanvas\_quad\_to | 生成一条二次贝塞尔曲线。 | | vgcanvas\_rect | 生成一个矩形路径。 | | vgcanvas\_reinit | 重新初始化,系统内部调用。 | | vgcanvas\_reset | 重置状态。 | | vgcanvas\_restore | 恢复上次save的状态。 | | vgcanvas\_rotate | 旋转。 | | vgcanvas\_rounded\_rect | 生成一个圆角矩形路径。 | | vgcanvas\_save | 保存当前的状态。如颜色和矩阵等信息。 | | vgcanvas\_scale | 缩放。 | | vgcanvas\_set\_antialias | 设置是否启用反走样。 | | vgcanvas\_set\_fill\_color | 设置填充颜色。 | | vgcanvas\_set\_fill\_color\_str | 设置填充颜色。 | | vgcanvas\_set\_fill\_linear\_gradient | 设置填充颜色为线性渐变色。 | | vgcanvas\_set\_fill\_radial\_gradient | 设置填充颜色为径向渐变色。 | | vgcanvas\_set\_font | 设置字体的名称。 | | vgcanvas\_set\_font\_size | 设置字体的大小。 | | vgcanvas\_set\_global\_alpha | 设置全局透明度。 | | vgcanvas\_set\_line\_cap | 设置line cap。 | | vgcanvas\_set\_line\_join | 设置line join。 | | vgcanvas\_set\_line\_width | 设置线条的宽度。 | | vgcanvas\_set\_miter\_limit | 设置miter limit。 | | vgcanvas\_set\_stroke\_color | 设置线条颜色。 | | vgcanvas\_set\_stroke\_color\_str | 设置线条颜色。 | | vgcanvas\_set\_stroke\_linear\_gradient | 设置线条颜色为线性渐变色。 | | vgcanvas\_set\_stroke\_radial\_gradient | 设置线条颜色为径向渐变色。 | | vgcanvas\_set\_text\_align | 设置文本水平对齐的方式。 | | vgcanvas\_set\_text\_baseline | 设置文本垂直对齐的方式。 | | vgcanvas\_set\_transform | 设置变换矩阵。 | | vgcanvas\_stroke | 画线。 | | vgcanvas\_transform | 变换矩阵。 | | vgcanvas\_translate | 平移。 | ### 属性
| 名属性称 | 类型 | 说明 | | -------- | ----- | ------------ | | anti\_alias | bool\_t | 是否启用反走样功能。 | | fill\_color | color\_t | 填充颜色 | | font | char* | 字体。 | | font\_size | float\_t | 字体大小。 | | global\_alpha | float\_t | 全局alpha。 | | h | wh\_t | canvas的高度 | | line\_cap | char* | line\_cap。 | | line\_join | char* | line\_join。 | | line\_width | float\_t | 线宽。 | | miter\_limit | float\_t | miter\_limit。 | | ratio | float\_t | 显示比例。 | | stroke\_color | color\_t | 线条颜色 | | text\_align | char* | 文本对齐方式。 | | text\_baseline | char* | 文本基线。 | | w | wh\_t | canvas的宽度 | #### vgcanvas\_arc 函数 ----------------------- * 函数功能: >
生成一条圆弧。 * 函数原型: ``` ret_t vgcanvas_arc (vgcanvas_t* vg, float_t x, float_t y, float_t r, float_t start_angle, float_t end_angle, bool_t ccw); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | 原点x坐标。 | | y | float\_t | 原点y坐标。 | | r | float\_t | 半径。 | | start\_angle | float\_t | 起始角度。 | | end\_angle | float\_t | 结束角度。 | | ccw | bool\_t | 是否逆时针。 | #### vgcanvas\_arc\_to 函数 ----------------------- * 函数功能: >
生成一条圆弧路径到指定点。 * 函数原型: ``` ret_t vgcanvas_arc_to (vgcanvas_t* vg, float_t x1, float_t y1, float_t x2, float_t y2, float_t r); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x1 | float\_t | 起始点x坐标。 | | y1 | float\_t | 起始点y坐标。 | | x2 | float\_t | 结束点x坐标。 | | y2 | float\_t | 结束点y坐标。 | | r | float\_t | 半径。 | #### vgcanvas\_begin\_frame 函数 ----------------------- * 函数功能: >
开始绘制,系统内部调用。 * 函数原型: ``` ret_t vgcanvas_begin_frame (vgcanvas_t* vg, rect_t* dirty_rect); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | dirty\_rect | rect\_t* | 需要绘制的区域。 | #### vgcanvas\_begin\_path 函数 ----------------------- * 函数功能: >
清除之前的路径,并重新开始一条路径。 * 函数原型: ``` ret_t vgcanvas_begin_path (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_bezier\_to 函数 ----------------------- * 函数功能: >
生成一条三次贝塞尔曲线。 * 函数原型: ``` ret_t vgcanvas_bezier_to (vgcanvas_t* vg, float_t cp1x, float_t cp1y, float_t cp2x, float_t cp2y, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | cp1x | float\_t | 控制点1x坐标。 | | cp1y | float\_t | 控制点1y坐标。 | | cp2x | float\_t | 控制点2x坐标。 | | cp2y | float\_t | 控制点3y坐标。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_cast 函数 ----------------------- * 函数功能: >
转换为vgcanvas对象(供脚本语言使用)。 * 函数原型: ``` vgcanvas_t* vgcanvas_cast (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | vgcanvas\_t* | vgcanvas对象。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_clear\_rect 函数 ----------------------- * 函数功能: >
用颜色清除指定矩形区域。 * 函数原型: ``` ret_t vgcanvas_clear_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h, color_t c); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | w | float\_t | 宽度。 | | h | float\_t | 高度。 | | c | color\_t | 颜色。 | #### vgcanvas\_clip\_rect 函数 ----------------------- * 函数功能: >
矩形裁剪。 * 函数原型: ``` ret_t vgcanvas_clip_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | w | float\_t | 宽度。 | | h | float\_t | 高度。 | #### vgcanvas\_close\_path 函数 ----------------------- * 函数功能: >
闭合路径。 >闭合路径是指把起点和终点连接起来,形成一个封闭的多边形。 * 函数原型: ``` ret_t vgcanvas_close_path (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_create 函数 ----------------------- * 函数功能: >
创建vgcanvas。 * 函数原型: ``` vgcanvas_t vgcanvas_create (uint32_t w, uint32_t h, uint32_t stride, bitmap_format_t format, void* data); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | vgcanvas\_t | 返回vgcanvas | | w | uint32\_t | 宽度 | | h | uint32\_t | 高度 | | stride | uint32\_t | 一行占用的字节数。 | | format | bitmap\_format\_t | 如果data是framebuffer,format指定data的格式。 | | data | void* | framebuffer或其它ctx。 | #### vgcanvas\_destroy 函数 ----------------------- * 函数功能: >
销毁vgcanvas对象。 * 函数原型: ``` ret_t vgcanvas_destroy (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_draw\_icon 函数 ----------------------- * 函数功能: >
绘制图标。 绘制图标时会根据屏幕密度进行自动缩放,而绘制普通图片时不会。 * 函数原型: ``` ret_t vgcanvas_draw_icon (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, float_t sw, float_t sh, float_t dx, float_t dy, float_t dw, float_t dh); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | img | bitmap\_t* | 图片。 | | sx | float\_t | sx | | sy | float\_t | sy | | sw | float\_t | sw | | sh | float\_t | sh | | dx | float\_t | dx | | dy | float\_t | dy | | dw | float\_t | dw | | dh | float\_t | dh | #### vgcanvas\_draw\_image 函数 ----------------------- * 函数功能: >
绘制图片。 * 函数原型: ``` ret_t vgcanvas_draw_image (vgcanvas_t* vg, bitmap_t* img, float_t sx, float_t sy, float_t sw, float_t sh, float_t dx, float_t dy, float_t dw, float_t dh); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | img | bitmap\_t* | 图片。 | | sx | float\_t | sx | | sy | float\_t | sy | | sw | float\_t | sw | | sh | float\_t | sh | | dx | float\_t | dx | | dy | float\_t | dy | | dw | float\_t | dw | | dh | float\_t | dh | #### vgcanvas\_ellipse 函数 ----------------------- * 函数功能: >
生成一个椭圆路径。 * 函数原型: ``` ret_t vgcanvas_ellipse (vgcanvas_t* vg, float_t x, float_t y, float_t rx, float_t ry); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | rx | float\_t | 圆角半径。 | | ry | float\_t | 圆角半径。 | #### vgcanvas\_end\_frame 函数 ----------------------- * 函数功能: >
结束绘制。系统内部调用。 * 函数原型: ``` ret_t vgcanvas_end_frame (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_fill 函数 ----------------------- * 函数功能: >
填充多边形。 * 函数原型: ``` ret_t vgcanvas_fill (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_fill\_text 函数 ----------------------- * 函数功能: >
绘制文本。 * 函数原型: ``` ret_t vgcanvas_fill_text (vgcanvas_t* vg, char* text, float_t x, float_t y, float_t max_width); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | text | char* | text | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | max\_width | float\_t | 最大宽度。 | #### vgcanvas\_flush 函数 ----------------------- * 函数功能: >
flush * 函数原型: ``` ret_t vgcanvas_flush (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_is\_point\_in\_path 函数 ----------------------- * 函数功能: >
检查点是否在当前路径中。 * 函数原型: ``` bool_t vgcanvas_is_point_in_path (vgcanvas_t* vg, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | bool\_t | 返回TRUE表示在,否则表示不在。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_line\_to 函数 ----------------------- * 函数功能: >
生成一条线段(从当前点到目标点)。 * 函数原型: ``` ret_t vgcanvas_line_to (vgcanvas_t* vg, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_measure\_text 函数 ----------------------- * 函数功能: >
测量文本的宽度。 * 函数原型: ``` float_t vgcanvas_measure_text (vgcanvas_t* vg, char* text); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | float\_t | 返回text的宽度。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | text | char* | text | #### vgcanvas\_move\_to 函数 ----------------------- * 函数功能: >
移动当前点到指定点。 * 函数原型: ``` ret_t vgcanvas_move_to (vgcanvas_t* vg, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_paint 函数 ----------------------- * 函数功能: >
用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。 多边形的顶点必须在图片范围内,可以通过矩阵变化画到不同的位置。 * 函数原型: ``` ret_t vgcanvas_paint (vgcanvas_t* vg, bool_t stroke, bitmap_t* img); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | stroke | bool\_t | TRUE表示画线FALSE表示填充。 | | img | bitmap\_t* | 图片。 | #### vgcanvas\_quad\_to 函数 ----------------------- * 函数功能: >
生成一条二次贝塞尔曲线。 * 函数原型: ``` ret_t vgcanvas_quad_to (vgcanvas_t* vg, float_t cpx, float_t cpy, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | cpx | float\_t | 控制点x坐标。 | | cpy | float\_t | 控制点y坐标。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_rect 函数 ----------------------- * 函数功能: >
生成一个矩形路径。 * 函数原型: ``` ret_t vgcanvas_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | w | float\_t | 宽度。 | | h | float\_t | 高度。 | #### vgcanvas\_reinit 函数 ----------------------- * 函数功能: >
重新初始化,系统内部调用。 * 函数原型: ``` ret_t vgcanvas_reinit (vgcanvas_t* vg, uint32_t w, uint32_t h, uint32_t stride, bitmap_format_t format, void* data); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | w | uint32\_t | 宽度 | | h | uint32\_t | 高度 | | stride | uint32\_t | 一行占用的字节数。 | | format | bitmap\_format\_t | 如果data是framebuffer,format指定data的格式。 | | data | void* | framebuffer或其它ctx。 | #### vgcanvas\_reset 函数 ----------------------- * 函数功能: >
重置状态。 * 函数原型: ``` ret_t vgcanvas_reset (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_restore 函数 ----------------------- * 函数功能: >
恢复上次save的状态。 > save/restore必须配套使用,否则可能导致状态混乱。 * 函数原型: ``` ret_t vgcanvas_restore (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_rotate 函数 ----------------------- * 函数功能: >
旋转。 * 函数原型: ``` ret_t vgcanvas_rotate (vgcanvas_t* vg, float_t rad); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | rad | float\_t | 角度 | #### vgcanvas\_rounded\_rect 函数 ----------------------- * 函数功能: >
生成一个圆角矩形路径。 * 函数原型: ``` ret_t vgcanvas_rounded_rect (vgcanvas_t* vg, float_t x, float_t y, float_t w, float_t h, float_t r); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | w | float\_t | 宽度。 | | h | float\_t | 高度。 | | r | float\_t | 圆角半径。 | #### vgcanvas\_save 函数 ----------------------- * 函数功能: >
保存当前的状态。如颜色和矩阵等信息。 > save/restore必须配套使用,否则可能导致状态混乱。 * 函数原型: ``` ret_t vgcanvas_save (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_scale 函数 ----------------------- * 函数功能: >
缩放。 * 函数原型: ``` ret_t vgcanvas_scale (vgcanvas_t* vg, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x方向缩放比例。 | | y | float\_t | y方向缩放比例。 | #### vgcanvas\_set\_antialias 函数 ----------------------- * 函数功能: >
设置是否启用反走样。 * 函数原型: ``` ret_t vgcanvas_set_antialias (vgcanvas_t* vg, bool_t value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | bool\_t | 是否启用反走样。 | #### vgcanvas\_set\_fill\_color 函数 ----------------------- * 函数功能: >
设置填充颜色。 * 函数原型: ``` ret_t vgcanvas_set_fill_color (vgcanvas_t* vg, color_t color); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | color | color\_t | 颜色。 | #### vgcanvas\_set\_fill\_color\_str 函数 ----------------------- * 函数功能: >
设置填充颜色。 * 函数原型: ``` ret_t vgcanvas_set_fill_color_str (vgcanvas_t* vg, const char* color); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | color | const char* | 颜色。 | #### vgcanvas\_set\_fill\_linear\_gradient 函数 ----------------------- * 函数功能: >
设置填充颜色为线性渐变色。 * 函数原型: ``` ret_t vgcanvas_set_fill_linear_gradient (vgcanvas_t* vg, float_t sx, float_t sy, float_t ex, float_t ey, color_t icolor, color_t ocolor); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | sx | float\_t | start x | | sy | float\_t | start y | | ex | float\_t | end x | | ey | float\_t | end y | | icolor | color\_t | 开始颜色。 | | ocolor | color\_t | 结束颜色。 | #### vgcanvas\_set\_fill\_radial\_gradient 函数 ----------------------- * 函数功能: >
设置填充颜色为径向渐变色。 * 函数原型: ``` ret_t vgcanvas_set_fill_radial_gradient (vgcanvas_t* vg, float_t cx, float_t cy, float_t inr, float_t outr, color_t icolor, color_t ocolor); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | cx | float\_t | center x | | cy | float\_t | center y | | inr | float\_t | 内环半径 | | outr | float\_t | 外环半径。 | | icolor | color\_t | 开始颜色。 | | ocolor | color\_t | 结束颜色。 | #### vgcanvas\_set\_font 函数 ----------------------- * 函数功能: >
设置字体的名称。 * 函数原型: ``` ret_t vgcanvas_set_font (vgcanvas_t* vg, char* font); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | font | char* | 字体名称。 | #### vgcanvas\_set\_font\_size 函数 ----------------------- * 函数功能: >
设置字体的大小。 * 函数原型: ``` ret_t vgcanvas_set_font_size (vgcanvas_t* vg, float_t font); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | font | float\_t | 字体大小。 | #### vgcanvas\_set\_global\_alpha 函数 ----------------------- * 函数功能: >
设置全局透明度。 * 函数原型: ``` ret_t vgcanvas_set_global_alpha (vgcanvas_t* vg, float_t alpha); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | alpha | float\_t | global alpha。 | #### vgcanvas\_set\_line\_cap 函数 ----------------------- * 函数功能: >
设置line cap。 * 函数原型: ``` ret_t vgcanvas_set_line_cap (vgcanvas_t* vg, char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | char* | 取值:butt|round|square,必须为常量字符串。 | #### vgcanvas\_set\_line\_join 函数 ----------------------- * 函数功能: >
设置line join。 * 函数原型: ``` ret_t vgcanvas_set_line_join (vgcanvas_t* vg, char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | char* | 取值:bevel|round|miter,必须为常量字符串。 | #### vgcanvas\_set\_line\_width 函数 ----------------------- * 函数功能: >
设置线条的宽度。 * 函数原型: ``` ret_t vgcanvas_set_line_width (vgcanvas_t* vg, float_t value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | float\_t | 线宽。 | #### vgcanvas\_set\_miter\_limit 函数 ----------------------- * 函数功能: >
设置miter limit。 * 函数原型: ``` ret_t vgcanvas_set_miter_limit (vgcanvas_t* vg, float_t value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | float\_t | miter limit | #### vgcanvas\_set\_stroke\_color 函数 ----------------------- * 函数功能: >
设置线条颜色。 * 函数原型: ``` ret_t vgcanvas_set_stroke_color (vgcanvas_t* vg, color_t color); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | color | color\_t | 颜色。 | #### vgcanvas\_set\_stroke\_color\_str 函数 ----------------------- * 函数功能: >
设置线条颜色。 * 函数原型: ``` ret_t vgcanvas_set_stroke_color_str (vgcanvas_t* vg, const char* color); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | color | const char* | 颜色。 | #### vgcanvas\_set\_stroke\_linear\_gradient 函数 ----------------------- * 函数功能: >
设置线条颜色为线性渐变色。 * 函数原型: ``` ret_t vgcanvas_set_stroke_linear_gradient (vgcanvas_t* vg, float_t sx, float_t sy, float_t ex, float_t ey, color_t icolor, color_t ocolor); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | sx | float\_t | start x | | sy | float\_t | start y | | ex | float\_t | end x | | ey | float\_t | end y | | icolor | color\_t | 开始颜色。 | | ocolor | color\_t | 结束颜色。 | #### vgcanvas\_set\_stroke\_radial\_gradient 函数 ----------------------- * 函数功能: >
设置线条颜色为径向渐变色。 * 函数原型: ``` ret_t vgcanvas_set_stroke_radial_gradient (vgcanvas_t* vg, float_t cx, float_t cy, float_t inr, float_t outr, color_t icolor, color_t ocolor); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | cx | float\_t | center x | | cy | float\_t | center y | | inr | float\_t | 内环半径 | | outr | float\_t | 外环半径。 | | icolor | color\_t | 开始颜色。 | | ocolor | color\_t | 结束颜色。 | #### vgcanvas\_set\_text\_align 函数 ----------------------- * 函数功能: >
设置文本水平对齐的方式。 * 函数原型: ``` ret_t vgcanvas_set_text_align (vgcanvas_t* vg, char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | char* | 取值:left|center|right,必须为常量字符串。 | #### vgcanvas\_set\_text\_baseline 函数 ----------------------- * 函数功能: >
设置文本垂直对齐的方式。 * 函数原型: ``` ret_t vgcanvas_set_text_baseline (vgcanvas_t* vg, char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | char* | 取值:top|middle|bottom,必须为常量字符串。 | #### vgcanvas\_set\_transform 函数 ----------------------- * 函数功能: >
设置变换矩阵。 * 函数原型: ``` ret_t vgcanvas_set_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, float_t d, float_t e, float_t f); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | a | float\_t | a | | b | float\_t | b | | c | float\_t | c | | d | float\_t | d | | e | float\_t | e | | f | float\_t | f | #### vgcanvas\_stroke 函数 ----------------------- * 函数功能: >
画线。 * 函数原型: ``` ret_t vgcanvas_stroke (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_transform 函数 ----------------------- * 函数功能: >
变换矩阵。 * 函数原型: ``` ret_t vgcanvas_transform (vgcanvas_t* vg, float_t a, float_t b, float_t c, float_t d, float_t e, float_t f); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | a | float\_t | a | | b | float\_t | b | | c | float\_t | c | | d | float\_t | d | | e | float\_t | e | | f | float\_t | f | #### vgcanvas\_translate 函数 ----------------------- * 函数功能: >
平移。 * 函数原型: ``` ret_t vgcanvas_translate (vgcanvas_t* vg, float_t x, float_t y); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x方向偏移。 | | y | float\_t | y方向偏移。 | #### anti\_alias 属性 ----------------------- >
是否启用反走样功能。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### fill\_color 属性 ----------------------- >
填充颜色 * 类型:color\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### font 属性 ----------------------- >
字体。 * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### font\_size 属性 ----------------------- >
字体大小。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### global\_alpha 属性 ----------------------- >
全局alpha。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### h 属性 ----------------------- >
canvas的高度 * 类型:wh\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_cap 属性 ----------------------- >
line\_cap。 @see http://www.w3school.com.cn/tags/canvas_linecap.asp * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_join 属性 ----------------------- >
line\_join。 @see http://www.w3school.com.cn/tags/canvas_linejoin.asp * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_width 属性 ----------------------- >
线宽。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### miter\_limit 属性 ----------------------- >
miter\_limit。 @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### ratio 属性 ----------------------- >
显示比例。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### stroke\_color 属性 ----------------------- >
线条颜色 * 类型:color\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### text\_align 属性 ----------------------- >
文本对齐方式。 @see http://www.w3school.com.cn/tags/canvas_textalign.asp * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### text\_baseline 属性 ----------------------- >
文本基线。 @see http://www.w3school.com.cn/tags/canvas_textbaseline.asp * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### w 属性 ----------------------- >
canvas的宽度 * 类型:wh\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 |