## vgcanvas\_t ### 概述 矢量图画布抽象基类。 具体实现时可以使用agg,nanovg, cairo和skia等方式。 cairo和skia体积太大,不适合嵌入式平台,但在PC平台也是一种选择。 目前我们只提供了基于nanovg的实现,支持软件渲染和硬件渲染。 我们对nanovg进行了一些改进: * 可以用agg/agge实现软件渲染(暂时不支持文本绘制)。 * 可以用bgfx使用DirectX(Windows平台)和Metal(iOS)平台硬件加速。  示例: ```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\_bind\_fbo | 绑定 fbo 对象。 | | vgcanvas\_cast | 转换为vgcanvas对象(供脚本语言使用)。 | | vgcanvas\_clear\_cache | 释放vgcanvas对象的缓冲数据。 | | vgcanvas\_clear\_rect | 用颜色清除指定矩形区域。 | | vgcanvas\_clip\_path | 使用当前的path裁剪。 | | vgcanvas\_clip\_rect | 矩形裁剪。 | | vgcanvas\_close\_path | 闭合路径。 | | vgcanvas\_create | 创建vgcanvas。 | | vgcanvas\_create\_fbo | 创建 fbo 对象。 | | vgcanvas\_destroy | 销毁vgcanvas对象。 | | vgcanvas\_destroy\_fbo | 销毁 fbo 对象。 | | vgcanvas\_draw\_icon | 绘制图标。 | | vgcanvas\_draw\_image | 绘制图片。 | | vgcanvas\_draw\_image\_repeat | 绘制图片。 | | vgcanvas\_ellipse | 生成一个椭圆路径。 | | vgcanvas\_end\_frame | 结束绘制。系统内部调用。 | | vgcanvas\_fbo\_to\_bitmap | 把 fbo 对象的数据拷贝到 bitmap 中。 | | vgcanvas\_fill | 填充多边形。 | | vgcanvas\_fill\_text | 绘制文本。 | | vgcanvas\_flush | flush | | vgcanvas\_get\_canvas | 获取 canvas 对象。 | | vgcanvas\_get\_clip\_rect | 获取矩形裁剪。 | | vgcanvas\_get\_height | 获取高度。 | | vgcanvas\_get\_text\_metrics | 获取当前字体的度量信息。 | | vgcanvas\_get\_width | 获取宽度。 | | vgcanvas\_intersect\_clip\_rect | 设置一个与前一个裁剪区做交集的矩形裁剪区。 | | vgcanvas\_is\_point\_in\_path | 检查点是否在当前路径中。 | | vgcanvas\_is\_rectf\_in\_clip\_rect | 矩形区域是否在矩形裁剪中。 | | vgcanvas\_line\_to | 生成一条线段(从当前点到目标点)。 | | vgcanvas\_measure\_text | 测量文本的宽度。 | | vgcanvas\_move\_to | 移动当前点到指定点。 | | vgcanvas\_paint | 用图片填充/画多边形(可能存在可移植性问题,除非必要请勿使用)。 | | vgcanvas\_path\_winding | 设置路径填充实心与否。 | | vgcanvas\_quad\_to | 生成一条二次贝塞尔曲线。 | | vgcanvas\_rect | 生成一个矩形路径。 | | vgcanvas\_reinit | 重新初始化,系统内部调用。 | | vgcanvas\_reset | 重置所有状态。 | | vgcanvas\_reset\_curr\_state | 重置当前状态。 | | 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\_gradient | 设置填充颜色为渐变色。 | | 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\_gradient | 设置线条颜色为渐变色。 | | 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 | 平移。 | | vgcanvas\_unbind\_fbo | 解开绑定 fbo 对象。 | ### 属性
| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | | anti\_alias | bool\_t | 是否启用反走样功能。 | | fill\_color | color\_t | 填充颜色 | | font | char* | 字体。 | | font\_size | float\_t | 字体大小。 | | global\_alpha | float\_t | 全局alpha。 | | h | uint32\_t | canvas的高度 | | line\_cap | const char* | line\_cap。 | | line\_join | const char* | line\_join。 | | line\_width | float\_t | 线宽。 | | miter\_limit | float\_t | miter\_limit。 | | ratio | float\_t | 显示比例。 | | stride | uint32\_t | 一行占的字节 | | stroke\_color | color\_t | 线条颜色 | | text\_align | char* | 文本对齐方式。 | | text\_baseline | char* | 文本基线。 | | w | uint32\_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, const dirty_rects_t* dirty_rects); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | dirty\_rects | const dirty\_rects\_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 | 控制点2y坐标。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | #### vgcanvas\_bind\_fbo 函数 ----------------------- * 函数功能: >
绑定 fbo 对象。 * 函数原型: ``` ret_t vgcanvas_bind_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | fbo | framebuffer\_object\_t* | 需要创建 fbo 的对象。 | #### vgcanvas\_cast 函数 ----------------------- * 函数功能: >
转换为vgcanvas对象(供脚本语言使用)。 * 函数原型: ``` vgcanvas_t* vgcanvas_cast (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | vgcanvas\_t* | vgcanvas对象。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_clear\_cache 函数 ----------------------- * 函数功能: >
释放vgcanvas对象的缓冲数据。 * 函数原型: ``` ret_t vgcanvas_clear_cache (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | 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 color); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | x | float\_t | x坐标。 | | y | float\_t | y坐标。 | | w | float\_t | 宽度。 | | h | float\_t | 高度。 | | color | color\_t | 颜色。 | #### vgcanvas\_clip\_path 函数 ----------------------- * 函数功能: >
使用当前的path裁剪。 >目前只有部分backend支持(如cairo)。 * 函数原型: ``` ret_t vgcanvas_clip_path (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### 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\_create\_fbo 函数 ----------------------- * 函数功能: >
创建 fbo 对象。 * 函数原型: ``` ret_t vgcanvas_create_fbo (vgcanvas_t* vg, uint32_t w, uint32_t h, bool_t custom_draw_model, framebuffer_object_t* fbo); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | w | uint32\_t | fbo 对象的宽。 | | h | uint32\_t | fbo 对象的高。 | | custom\_draw\_model | bool\_t | 是否脱离 awtk 默认的 OpenGL 绘图方法。 | | fbo | framebuffer\_object\_t* | 需要创建 fbo 的对象。 | #### vgcanvas\_destroy 函数 ----------------------- * 函数功能: >
销毁vgcanvas对象。 * 函数原型: ``` ret_t vgcanvas_destroy (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_destroy\_fbo 函数 ----------------------- * 函数功能: >
销毁 fbo 对象。 * 函数原型: ``` ret_t vgcanvas_destroy_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | fbo | framebuffer\_object\_t* | 需要创建 fbo 的对象。 | #### 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\_draw\_image\_repeat 函数 ----------------------- * 函数功能: >
绘制图片。 备注: 当绘制区域大于原图区域时,多余的绘制区域会重复绘制原图区域的东西。(绘制图区按照绘制图片的宽高来绘制的) 当绘制图片的宽高和原图的不同,在重复绘制的同时加入缩放。 * 函数原型: ``` ret_t vgcanvas_draw_image_repeat (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, float_t dst_w, float_t dst_h); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | img | bitmap\_t* | 图片。 | | sx | float\_t | 原图区域的 x | | sy | float\_t | 原图区域的 y | | sw | float\_t | 原图区域的 w | | sh | float\_t | 原图区域的 h | | dx | float\_t | 绘制区域的 x | | dy | float\_t | 绘制区域的 y | | dw | float\_t | 绘制区域的 w | | dh | float\_t | 绘制区域的 h | | dst\_w | float\_t | 绘制图片的宽 | | dst\_h | float\_t | 绘制图片的高 | #### 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\_fbo\_to\_bitmap 函数 ----------------------- * 函数功能: >
把 fbo 对象的数据拷贝到 bitmap 中。 * 函数原型: ``` ret_t vgcanvas_fbo_to_bitmap (vgcanvas_t* vg, framebuffer_object_t* fbo, bitmap_t* img, const rect_t* r); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | fbo | framebuffer\_object\_t* | 需要创建 fbo 的对象。 | | img | bitmap\_t* | 输出的 bitmap 的对象。 | | r | const rect\_t* | 需要拷贝的区域。 | #### 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, const char* text, float_t x, float_t y, float_t max_width); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | text | const 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\_get\_canvas 函数 ----------------------- * 函数功能: >
获取 canvas 对象。 * 函数原型: ``` canvas_t* vgcanvas_get_canvas (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | canvas\_t* | 成功返回 canvas 对象,失败返回 NULL。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_get\_clip\_rect 函数 ----------------------- * 函数功能: >
获取矩形裁剪。 * 函数原型: ``` const rectf_t* vgcanvas_get_clip_rect (vgcanvas_t* vg); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | const rectf\_t* | 返回裁剪区。 | | vg | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_get\_height 函数 ----------------------- * 函数功能: >
获取高度。 * 函数原型: ``` wh_t vgcanvas_get_height (vgcanvas_t* vgcanvas); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | wh\_t | 返回高度。 | | vgcanvas | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_get\_text\_metrics 函数 ----------------------- * 函数功能: >
获取当前字体的度量信息。 * 函数原型: ``` ret_t vgcanvas_get_text_metrics (vgcanvas_t* vg, float_t* ascent, float_t* descent, float_t* line_hight); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | ascent | float\_t* | 用于返回ascent。 | | descent | float\_t* | 用于返回descent。 | | line\_hight | float\_t* | 用于返回line height。 | #### vgcanvas\_get\_width 函数 ----------------------- * 函数功能: >
获取宽度。 * 函数原型: ``` wh_t vgcanvas_get_width (vgcanvas_t* vgcanvas); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | wh\_t | 返回宽度。 | | vgcanvas | vgcanvas\_t* | vgcanvas对象。 | #### vgcanvas\_intersect\_clip\_rect 函数 ----------------------- * 函数功能: >
设置一个与前一个裁剪区做交集的矩形裁剪区。 如果下面这种情况,则不能直接调用 rect_intersect 函数来做矩形交集和 vgcanvas_clip_rect 函数设置裁剪区,而采用本函数做交集。 由于缩放和旋转以及平移会导致 vg 的坐标系和上一个裁剪区的坐标系不同, 导致直接使用做交集的话,裁剪区会出错。 ``` vgcanvas_clip_rect(vg, old_r.x, old_r.y, old_r.w, old_r.h); vgcanvas_save(vg); vgcanvas_scale(vg, scale_x, scale_y); vgcanvas_rotate(vg, TK_D2R(15)); vgcanvas_intersect_clip_rect(vg, r.x, r.y, r.w, r.h); .................. vgcanvas_restore(vg); ``` * 函数原型: ``` ret_t vgcanvas_intersect_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\_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\_is\_rectf\_in\_clip\_rect 函数 ----------------------- * 函数功能: >
矩形区域是否在矩形裁剪中。 * 函数原型: ``` bool_t vgcanvas_is_rectf_in_clip_rect (vgcanvas_t* vg, float_t left, float_t top, float_t right, float_t bottom); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | bool\_t | 返回 TURE 则在区域中,返回 FALSE 则不在区域中。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | left | float\_t | 矩形区域左边。 | | top | float\_t | 矩形区域上边。 | | right | float\_t | 矩形区域右边。 | | bottom | float\_t | 矩形区域下边。 | #### 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, const char* text); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | float\_t | 返回text的宽度。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | text | const 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\_path\_winding 函数 ----------------------- * 函数功能: >
设置路径填充实心与否。 >CCW(1)为实心,CW(2)为镂空,设置其他则默认根据非零环绕规则判断(nonzero)。 * 函数原型: ``` ret_t vgcanvas_path_winding (vgcanvas_t* vg, bool_t dir); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | dir | bool\_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\_reset\_curr\_state 函数 ----------------------- * 函数功能: >
重置当前状态。 * 函数原型: ``` ret_t vgcanvas_reset_curr_state (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\_gradient 函数 ----------------------- * 函数功能: >
设置填充颜色为渐变色。 >目前只有部分backend支持(如cairo)。 * 函数原型: ``` ret_t vgcanvas_set_fill_gradient (vgcanvas_t* vg, const vg_gradient_t* gradient); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | gradient | const vg\_gradient\_t* | gradient对象。 | #### 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, const char* font); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | font | const char* | 字体名称。 | #### vgcanvas\_set\_font\_size 函数 ----------------------- * 函数功能: >
设置字体的大小。 * 函数原型: ``` ret_t vgcanvas_set_font_size (vgcanvas_t* vg, float_t size); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | size | 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, const char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | const char* | 取值:butt|round|square,必须为常量字符串。 | #### vgcanvas\_set\_line\_join 函数 ----------------------- * 函数功能: >
设置line join。 * 函数原型: ``` ret_t vgcanvas_set_line_join (vgcanvas_t* vg, const char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | const 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* str); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | str | const char* | 颜色。 | #### vgcanvas\_set\_stroke\_gradient 函数 ----------------------- * 函数功能: >
设置线条颜色为渐变色。 >目前只有部分backend支持(如cairo)。 * 函数原型: ``` ret_t vgcanvas_set_stroke_gradient (vgcanvas_t* vg, const vg_gradient_t* gradient); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | gradient | const vg\_gradient\_t* | gradient对象。 | #### 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, const char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | const char* | 取值:left|center|right,必须为常量字符串。 | #### vgcanvas\_set\_text\_baseline 函数 ----------------------- * 函数功能: >
设置文本垂直对齐的方式。 * 函数原型: ``` ret_t vgcanvas_set_text_baseline (vgcanvas_t* vg, const char* value); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | value | const 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方向偏移。 | #### vgcanvas\_unbind\_fbo 函数 ----------------------- * 函数功能: >
解开绑定 fbo 对象。 * 函数原型: ``` ret_t vgcanvas_unbind_fbo (vgcanvas_t* vg, framebuffer_object_t* fbo); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | vg | vgcanvas\_t* | vgcanvas对象。 | | fbo | framebuffer\_object\_t* | 需要创建 fbo 的对象。 | #### anti\_alias 属性 ----------------------- >
是否启用反走样功能。 * 类型:bool\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### fill\_color 属性 ----------------------- >
填充颜色 * 类型:color\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### font 属性 ----------------------- >
字体。 * 类型:char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### font\_size 属性 ----------------------- >
字体大小。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### global\_alpha 属性 ----------------------- >
全局alpha。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### h 属性 ----------------------- >
canvas的高度 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_cap 属性 ----------------------- >
line\_cap。 @see http://www.w3school.com.cn/tags/canvas_linecap.asp * 类型:const char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_join 属性 ----------------------- >
line\_join。 @see http://www.w3school.com.cn/tags/canvas_linejoin.asp * 类型:const char* | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### line\_width 属性 ----------------------- >
线宽。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### miter\_limit 属性 ----------------------- >
miter\_limit。 @see http://www.w3school.com.cn/tags/canvas_miterlimit.asp * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### ratio 属性 ----------------------- >
显示比例。 * 类型:float\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 | #### stride 属性 ----------------------- >
一行占的字节 * 类型:uint32\_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的宽度 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | | 可脚本化 | 是 |