1# drawing_region.h 2 3## 概述 4 5定义了与区域相关的功能函数,包括区域的创建,边界设置和销毁等。 6 7**引用文件:** <native_drawing/drawing_region.h> 8 9**库:** libnative_drawing.so 10 11**起始版本:** 12 12 13**相关模块:** [Drawing](capi-drawing.md) 14 15## 汇总 16 17### 枚举 18 19| 名称 | typedef关键字 | 描述 | 20| -- | -- | -- | 21| [OH_Drawing_RegionOpMode](#oh_drawing_regionopmode) | OH_Drawing_RegionOpMode | 区域操作类型枚举。 | 22 23### 函数 24 25| 名称 | 描述 | 26| -- | -- | 27| [OH_Drawing_Region* OH_Drawing_RegionCreate(void)](#oh_drawing_regioncreate) | 用于创建一个区域对象,实现更精确的图形控制。 | 28| [OH_Drawing_Region* OH_Drawing_RegionCopy(const OH_Drawing_Region* region)](#oh_drawing_regioncopy) | 用于创建一个区域对象的拷贝。 | 29| [bool OH_Drawing_RegionContains(OH_Drawing_Region* region, int32_t x, int32_t y)](#oh_drawing_regioncontains) | 判断区域是否包含指定坐标点。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 | 30| [bool OH_Drawing_RegionOp(OH_Drawing_Region* region, const OH_Drawing_Region* other, OH_Drawing_RegionOpMode op)](#oh_drawing_regionop) | 将两个区域按照指定的区域操作类型合并。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>op不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 | 31| [bool OH_Drawing_RegionSetRect(OH_Drawing_Region* region, const OH_Drawing_Rect* rect)](#oh_drawing_regionsetrect) | 用于尝试给区域对象设置矩形边界。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 | 32| [bool OH_Drawing_RegionSetPath(OH_Drawing_Region* region, const OH_Drawing_Path* path, const OH_Drawing_Region* clip)](#oh_drawing_regionsetpath) | 给区域对象设置为指定区域内路径表示的范围。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、path、clip任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 | 33| [void OH_Drawing_RegionDestroy(OH_Drawing_Region* region)](#oh_drawing_regiondestroy) | 用于销毁区域对象并回收该对象占有的内存。 | 34 35## 枚举类型说明 36 37### OH_Drawing_RegionOpMode 38 39``` 40enum OH_Drawing_RegionOpMode 41``` 42 43**描述** 44 45区域操作类型枚举。 46 47**起始版本:** 12 48 49| 枚举项 | 描述 | 50| -- | -- | 51| REGION_OP_MODE_DIFFERENCE | 差集操作。 | 52| REGION_OP_MODE_INTERSECT | 交集操作。 | 53| REGION_OP_MODE_UNION | 并集操作。 | 54| REGION_OP_MODE_XOR | 异或操作。 | 55| REGION_OP_MODE_REVERSE_DIFFERENCE | 反向差集操作。 | 56| REGION_OP_MODE_REPLACE | 替换操作。 | 57 58 59## 函数说明 60 61### OH_Drawing_RegionCreate() 62 63``` 64OH_Drawing_Region* OH_Drawing_RegionCreate(void) 65``` 66 67**描述** 68 69用于创建一个区域对象,实现更精确的图形控制。 70 71**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 72 73**起始版本:** 12 74 75**返回:** 76 77| 类型 | 说明 | 78| -- | -- | 79| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* | 函数会返回一个指针,指针指向创建的区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)。 | 80 81### OH_Drawing_RegionCopy() 82 83``` 84OH_Drawing_Region* OH_Drawing_RegionCopy(const OH_Drawing_Region* region) 85``` 86 87**描述** 88 89用于创建一个区域对象的拷贝。 90 91**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 92 93**起始版本:** 20 94 95 96**参数:** 97 98| 参数项 | 描述 | 99| -- | -- | 100| const [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向用于拷贝的区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 101 102**返回:** 103 104| 类型 | 说明 | 105| -- | -- | 106| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* | 函数会返回一个指针,指针指向创建的新区域对象。 | 107 108### OH_Drawing_RegionContains() 109 110``` 111bool OH_Drawing_RegionContains(OH_Drawing_Region* region, int32_t x, int32_t y) 112``` 113 114**描述** 115 116判断区域是否包含指定坐标点。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 117 118**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 119 120**起始版本:** 12 121 122 123**参数:** 124 125| 参数项 | 描述 | 126| -- | -- | 127| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 128| int32_t x | 表示指定坐标点的x轴坐标。 | 129| int32_t y | 表示指定坐标点的y轴坐标。 | 130 131**返回:** 132 133| 类型 | 说明 | 134| -- | -- | 135| bool | 返回区域是否包含指定坐标点。true表示区域包含该坐标点,false表示区域不包含该坐标点。 | 136 137### OH_Drawing_RegionOp() 138 139``` 140bool OH_Drawing_RegionOp(OH_Drawing_Region* region, const OH_Drawing_Region* other, OH_Drawing_RegionOpMode op) 141``` 142 143**描述** 144 145将两个区域按照指定的区域操作类型合并。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、dst任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER;<br>op不在枚举范围内时返回OH_DRAWING_ERROR_PARAMETER_OUT_OF_RANGE。 146 147**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 148 149**起始版本:** 12 150 151 152**参数:** 153 154| 参数项 | 描述 | 155| -- | -- | 156| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针,操作完成后的区域结果将会保存在此区域对象中。 | 157| const [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* other | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 158| [OH_Drawing_RegionOpMode](#oh_drawing_regionopmode) op | 区域操作枚举类型,支持可选的具体模式可见[OH_Drawing_RegionOpMode](capi-drawing-region-h.md#oh_drawing_regionopmode)枚举。 | 159 160**返回:** 161 162| 类型 | 说明 | 163| -- | -- | 164| bool | 返回操作后的区域是否为空。true表示区域不为空,false表示区域为空。 | 165 166### OH_Drawing_RegionSetRect() 167 168``` 169bool OH_Drawing_RegionSetRect(OH_Drawing_Region* region, const OH_Drawing_Rect* rect) 170``` 171 172**描述** 173 174用于尝试给区域对象设置矩形边界。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、rect任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 175 176**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 177 178**起始版本:** 12 179 180 181**参数:** 182 183| 参数项 | 描述 | 184| -- | -- | 185| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 186| const [OH_Drawing_Rect](capi-drawing-oh-drawing-rect.md)* rect | 指向矩形对象的指针。 | 187 188**返回:** 189 190| 类型 | 说明 | 191| -- | -- | 192| bool | 返回区域对象设置矩形边界是否成功的结果。true表示设置矩形边界成功,false表示设置矩形边界失败。 | 193 194### OH_Drawing_RegionSetPath() 195 196``` 197bool OH_Drawing_RegionSetPath(OH_Drawing_Region* region, const OH_Drawing_Path* path, const OH_Drawing_Region* clip) 198``` 199 200**描述** 201 202给区域对象设置为指定区域内路径表示的范围。<br>本接口会产生错误码,可以通过[OH_Drawing_ErrorCodeGet](capi-drawing-error-code-h.md#oh_drawing_errorcodeget)查看错误码的取值。<br>region、path、clip任意一个为NULL时返回OH_DRAWING_ERROR_INVALID_PARAMETER。 203 204**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 205 206**起始版本:** 12 207 208 209**参数:** 210 211| 参数项 | 描述 | 212| -- | -- | 213| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 214| const [OH_Drawing_Path](capi-drawing-oh-drawing-path.md)* path | 指向路径对象[OH_Drawing_Path](capi-drawing-oh-drawing-path.md)的指针。 | 215| const [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* clip | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 216 217**返回:** 218 219| 类型 | 说明 | 220| -- | -- | 221| bool | 返回操作后的区域是否为空。true表示区域不为空,false表示区域为空。 | 222 223### OH_Drawing_RegionDestroy() 224 225``` 226void OH_Drawing_RegionDestroy(OH_Drawing_Region* region) 227``` 228 229**描述** 230 231用于销毁区域对象并回收该对象占有的内存。 232 233**系统能力:** SystemCapability.Graphic.Graphic2D.NativeDrawing 234 235**起始版本:** 12 236 237 238**参数:** 239 240| 参数项 | 描述 | 241| -- | -- | 242| [OH_Drawing_Region](capi-drawing-oh-drawing-region.md)* region | 指向区域对象[OH_Drawing_Region](capi-drawing-oh-drawing-region.md)的指针。 | 243 244 245