## dirty\_rects\_t ### 概述 支持多个脏矩形。 > 在通常情况下,脏矩形的个数并不多,而且一般都是不重叠的, > 所以为了降低计算开销、避免内存分配和简化实现。这里采用下列措施: * 如果新的脏矩形是独立的,直接加入进来。 * 如果新的脏矩形与某个脏矩形有重叠,则合并到该脏矩形。 * 如果脏矩形的个数超出最大个数则进行合并。 ---------------------------------- ### 函数
| 函数名称 | 说明 | | -------- | ------------ | | dirty\_rects\_add | 增加脏矩形。 | | dirty\_rects\_deinit | 释放dirty_rects对象。 | | dirty\_rects\_fix | 脏矩形之间可能重叠,合并重叠的脏矩形。 | | dirty\_rects\_init | 初始化dirty_rects对象。 | | dirty\_rects\_remove | 删除指定序数的矩形。 | | dirty\_rects\_reset | 重置dirty_rects对象。 | | dirty\_rects\_set\_debug | 设置是否开启调试模式。 | | dirty\_rects\_set\_disable\_multiple | 设置是否关闭多脏矩形模式(方便对比测试和调试)。 | | dirty\_rects\_set\_profile | 设置是否开启profile模式。 | ### 属性
| 属性名称 | 类型 | 说明 | | -------- | ----- | ------------ | | max | rect\_t | 最大脏矩形。 | | nr | uint32\_t | 个数。 | | rects | rect\_t | 脏矩形。 | #### dirty\_rects\_add 函数 ----------------------- * 函数功能: >
增加脏矩形。 * 函数原型: ``` ret_t dirty_rects_add (dirty_rects_t* dirty_rects, rect_t* r); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | | r | rect\_t* | 脏矩形。 | #### dirty\_rects\_deinit 函数 ----------------------- * 函数功能: >
释放dirty_rects对象。 * 函数原型: ``` ret_t dirty_rects_deinit (dirty_rects_t* dirty_rects); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | #### dirty\_rects\_fix 函数 ----------------------- * 函数功能: >
脏矩形之间可能重叠,合并重叠的脏矩形。 * 函数原型: ``` ret_t dirty_rects_fix (dirty_rects_t* dirty_rects); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | #### dirty\_rects\_init 函数 ----------------------- * 函数功能: >
初始化dirty_rects对象。 * 函数原型: ``` ret_t dirty_rects_init (dirty_rects_t* dirty_rects); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | #### dirty\_rects\_remove 函数 ----------------------- * 函数功能: >
删除指定序数的矩形。 * 函数原型: ``` ret_t dirty_rects_remove (dirty_rects_t* dirty_rects, uint32_t index); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | | index | uint32\_t | 序数。 | #### dirty\_rects\_reset 函数 ----------------------- * 函数功能: >
重置dirty_rects对象。 * 函数原型: ``` ret_t dirty_rects_reset (dirty_rects_t* dirty_rects); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | #### dirty\_rects\_set\_debug 函数 ----------------------- * 函数功能: >
设置是否开启调试模式。 * 函数原型: ``` ret_t dirty_rects_set_debug (dirty_rects_t* dirty_rects, bool_t debug); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | | debug | bool\_t | 是否开启调试模式。 | #### dirty\_rects\_set\_disable\_multiple 函数 ----------------------- * 函数功能: >
设置是否关闭多脏矩形模式(方便对比测试和调试)。 * 函数原型: ``` ret_t dirty_rects_set_disable_multiple (dirty_rects_t* dirty_rects, bool_t disable_multiple); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | | disable\_multiple | bool\_t | 是否关闭多脏矩形模式。 | #### dirty\_rects\_set\_profile 函数 ----------------------- * 函数功能: >
设置是否开启profile模式。 * 函数原型: ``` ret_t dirty_rects_set_profile (dirty_rects_t* dirty_rects, bool_t profile); ``` * 参数说明: | 参数 | 类型 | 说明 | | -------- | ----- | --------- | | 返回值 | ret\_t | 返回RET\_OK表示成功,否则表示失败。 | | dirty\_rects | dirty\_rects\_t* | dirty\_rects对象。 | | profile | bool\_t | 是否开启profile模式。 | #### max 属性 ----------------------- >
最大脏矩形。 * 类型:rect\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### nr 属性 ----------------------- >
个数。 * 类型:uint32\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 | #### rects 属性 ----------------------- >
脏矩形。 * 类型:rect\_t | 特性 | 是否支持 | | -------- | ----- | | 可直接读取 | 是 | | 可直接修改 | 否 |