awtk/docs/manual/canvas_offline_t.md

358 lines
12 KiB
Markdown
Raw Normal View History

2020-07-10 16:56:53 +08:00
## canvas\_offline\_t
### 概述
离线画布 canvas。
----------------------------------
### 函数
<p id="canvas_offline_t_methods">
| 函数名称 | 说明 |
| -------- | ------------ |
| <a href="#canvas_offline_t_canvas_offline_begin_draw">canvas\_offline\_begin\_draw</a> | 设置离线 canvas 开始绘图 |
2020-09-16 09:58:28 +08:00
| <a href="#canvas_offline_t_canvas_offline_bitmap_move_to_new_bitmap">canvas\_offline\_bitmap\_move\_to\_new\_bitmap</a> | 把离线 canvas 的离线 bitmap 移动赋值给新的 bitmap。 |
2020-09-17 14:23:47 +08:00
| <a href="#canvas_offline_t_canvas_offline_clear_canvas">canvas\_offline\_clear\_canvas</a> | 清除离线 canvas 所有数据,并把背景设置为全透明(注意:该离线 canvas 需要有透明通道) |
2020-07-10 16:56:53 +08:00
| <a href="#canvas_offline_t_canvas_offline_create">canvas\_offline\_create</a> | 创建一个离线的 canvas |
2020-09-17 14:23:47 +08:00
| <a href="#canvas_offline_t_canvas_offline_custom_begin_draw">canvas\_offline\_custom\_begin\_draw</a> | 用户自定义 canvas_offline_custom_begin_draw |
| <a href="#canvas_offline_t_canvas_offline_custom_bitmap_move_to_new_bitmap">canvas\_offline\_custom\_bitmap\_move\_to\_new\_bitmap</a> | 用户自定义 canvas_offline_custom_bitmap_move_to_new_bitmap |
| <a href="#canvas_offline_t_canvas_offline_custom_clear_canvas">canvas\_offline\_custom\_clear\_canvas</a> | 用户自定义 canvas_offline_custom_clear_canvas |
| <a href="#canvas_offline_t_canvas_offline_custom_create">canvas\_offline\_custom\_create</a> | 用户自定义 canvas_offline_create |
| <a href="#canvas_offline_t_canvas_offline_custom_destroy">canvas\_offline\_custom\_destroy</a> | 用户自定义 canvas_offline_custom_destroy |
| <a href="#canvas_offline_t_canvas_offline_custom_end_draw">canvas\_offline\_custom\_end\_draw</a> | 用户自定义 canvas_offline_custom_end_draw |
| <a href="#canvas_offline_t_canvas_offline_custom_flush_bitmap">canvas\_offline\_custom\_flush\_bitmap</a> | 用户自定义 canvas_offline_custom_flush_bitmap |
| <a href="#canvas_offline_t_canvas_offline_custom_get_bitmap">canvas\_offline\_custom\_get\_bitmap</a> | 用户自定义 canvas_offline_custom_get_bitmap |
2020-07-10 16:56:53 +08:00
| <a href="#canvas_offline_t_canvas_offline_destroy">canvas\_offline\_destroy</a> | 释放离线 canvas 和离线 bitmap |
| <a href="#canvas_offline_t_canvas_offline_end_draw">canvas\_offline\_end\_draw</a> | 设置离线 canvas 结束绘图 |
| <a href="#canvas_offline_t_canvas_offline_flush_bitmap">canvas\_offline\_flush\_bitmap</a> | 把离线 canvas 的数据放到绑定的 bitmap 中 |
| <a href="#canvas_offline_t_canvas_offline_get_bitmap">canvas\_offline\_get\_bitmap</a> | 获取离线 canvas 的离线 bitmap。 |
### 属性
<p id="canvas_offline_t_properties">
| 属性名称 | 类型 | 说明 |
| -------- | ----- | ------------ |
| <a href="#canvas_offline_t_bitmap">bitmap</a> | bitmap\_t* | 绑定的离线 bitmap |
#### canvas\_offline\_begin\_draw 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_begin_draw">设置离线 canvas 开始绘图
* 函数原型:
```
ret_t canvas_offline_begin_draw (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
2020-09-16 09:58:28 +08:00
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_bitmap\_move\_to\_new\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_bitmap_move_to_new_bitmap">把离线 canvas 的离线 bitmap 移动赋值给新的 bitmap。
移动赋值后原来的离线 canvas 的离线 bitmap 就会被置空。
2020-09-17 14:23:47 +08:00
备注:在移动赋值之前会先调用 canvas_offline_flush_bitmap 把数据回流到内存中。
2020-09-16 09:58:28 +08:00
* 函数原型:
```
2020-09-17 14:23:47 +08:00
ret_t canvas_offline_bitmap_move_to_new_bitmap (canvas_t* canvas, bitmap_t* bitmap);
2020-09-16 09:58:28 +08:00
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
2020-09-17 14:23:47 +08:00
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
2020-09-16 09:58:28 +08:00
| canvas | canvas\_t* | 离线 canvas 对象。 |
2020-09-17 14:23:47 +08:00
| bitmap | bitmap\_t* | 新的 bitmap 对象。 |
2020-09-16 09:58:28 +08:00
#### canvas\_offline\_clear\_canvas 函数
-----------------------
* 函数功能:
2020-09-17 14:23:47 +08:00
> <p id="canvas_offline_t_canvas_offline_clear_canvas">清除离线 canvas 所有数据,并把背景设置为全透明(注意:该离线 canvas 需要有透明通道)
2020-09-16 09:58:28 +08:00
该函数调用前必须要先 canvas_offline_begin_draw 函数。
该函数用来解决离线 canvas 多次绘图半透效果后导致半透效果无效的问题。
* 函数原型:
```
ret_t canvas_offline_clear_canvas (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
2020-07-10 16:56:53 +08:00
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_create 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_create">创建一个离线的 canvas
在 opengl 模式下 format 参数只能为 BITMAP_FMT_RGBA8888
在其他模式下,离线 canvas 格式可以为 rgbabgarbgr565和rgb565
* 函数原型:
```
canvas_t* canvas_offline_create (uint32_t w, uint32_t h, bitmap_format_t format);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | canvas\_t* | 成功返回 canvas ,失败返回 NULL。 |
| w | uint32\_t | 离线 canvas 的宽。 |
| h | uint32\_t | 离线 canvas 的高。 |
| format | bitmap\_format\_t | 离线 canvas 的格式。 |
2020-09-17 14:23:47 +08:00
#### canvas\_offline\_custom\_begin\_draw 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_begin_draw">用户自定义 canvas_offline_custom_begin_draw
* 函数原型:
```
ret_t canvas_offline_custom_begin_draw (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_bitmap\_move\_to\_new\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_bitmap_move_to_new_bitmap">用户自定义 canvas_offline_custom_bitmap_move_to_new_bitmap
* 函数原型:
```
bitmap_t* canvas_offline_custom_bitmap_move_to_new_bitmap (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | bitmap\_t* | 返回 bitmap\_t 对象表示成功,返回 NULL 表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_clear\_canvas 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_clear_canvas">用户自定义 canvas_offline_custom_clear_canvas
* 函数原型:
```
ret_t canvas_offline_custom_clear_canvas (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_create 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_create">用户自定义 canvas_offline_create
* 函数原型:
```
canvas_t* canvas_offline_custom_create (uint32_t w, uint32_t h, bitmap_format_t format);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | canvas\_t* | 成功返回 canvas ,失败返回 NULL。 |
| w | uint32\_t | 离线 canvas 的宽。 |
| h | uint32\_t | 离线 canvas 的高。 |
| format | bitmap\_format\_t | 离线 canvas 的格式。 |
#### canvas\_offline\_custom\_destroy 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_destroy">用户自定义 canvas_offline_custom_destroy
* 函数原型:
```
ret_t canvas_offline_custom_destroy (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_end\_draw 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_end_draw">用户自定义 canvas_offline_custom_end_draw
* 函数原型:
```
ret_t canvas_offline_custom_end_draw (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_flush\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_flush_bitmap">用户自定义 canvas_offline_custom_flush_bitmap
* 函数原型:
```
ret_t canvas_offline_custom_flush_bitmap (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_custom\_get\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_custom_get_bitmap">用户自定义 canvas_offline_custom_get_bitmap
* 函数原型:
```
bitmap_t* canvas_offline_custom_get_bitmap (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | bitmap\_t* | 返回 bitmap\_t 对象表示成功,返回 NULL 表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
2020-07-10 16:56:53 +08:00
#### canvas\_offline\_destroy 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_destroy">释放离线 canvas 和离线 bitmap
* 函数原型:
```
ret_t canvas_offline_destroy (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_end\_draw 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_end_draw">设置离线 canvas 结束绘图
* 函数原型:
```
ret_t canvas_offline_end_draw (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_flush\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_flush_bitmap">把离线 canvas 的数据放到绑定的 bitmap 中
该函数只有在 opengl 模式才需要调用,是否把显存中的数据回传到内存中。
* 函数原型:
```
ret_t canvas_offline_flush_bitmap (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | ret\_t | 返回RET\_OK表示成功否则表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### canvas\_offline\_get\_bitmap 函数
-----------------------
* 函数功能:
> <p id="canvas_offline_t_canvas_offline_get_bitmap">获取离线 canvas 的离线 bitmap。
* 函数原型:
```
bitmap_t* canvas_offline_get_bitmap (canvas_t* canvas);
```
* 参数说明:
| 参数 | 类型 | 说明 |
| -------- | ----- | --------- |
| 返回值 | bitmap\_t* | 返回 bitmap\_t 对象表示成功,返回 NULL 表示失败。 |
| canvas | canvas\_t* | 离线 canvas 对象。 |
#### bitmap 属性
-----------------------
> <p id="canvas_offline_t_bitmap">绑定的离线 bitmap
* 类型bitmap\_t*
| 特性 | 是否支持 |
| -------- | ----- |
| 可直接读取 | 是 |
| 可直接修改 | 否 |