# drawing_region.h
## Overview
The **drawing_region.h** file declares the functions related to the region in the drawing module, including creating a region, setting the boundary, and destroying a region.
**File to include**: <native_drawing/drawing_region.h>
**Library**: libnative_drawing.so
**Since**: 12
**Related module**: [Drawing](_drawing.md)
## Summary
### Types
| Name | Description |
| -------- | -------- |
| typedef enum [OH_Drawing_RegionOpMode](_drawing.md#oh_drawing_regionopmode) [OH_Drawing_RegionOpMode](_drawing.md#oh_drawing_regionopmode) | Defines an enum for the operation modes available for a region. |
### Enums
| Name | Description |
| -------- | -------- |
| [OH_Drawing_RegionOpMode](_drawing.md#oh_drawing_regionopmode) {
REGION_OP_MODE_DIFFERENCE, REGION_OP_MODE_INTERSECT, REGION_OP_MODE_UNION, REGION_OP_MODE_XOR,
REGION_OP_MODE_REVERSE_DIFFERENCE, REGION_OP_MODE_REPLACE
} | Enumerates the operation modes available for a region. |
### Functions
| Name | Description |
| -------- | -------- |
| [OH_Drawing_Region](_drawing.md#oh_drawing_region) \* [OH_Drawing_RegionCreate](_drawing.md#oh_drawing_regioncreate) (void) | Creates an **OH_Drawing_Region** object for more accurate graphical control. |
| bool [OH_Drawing_RegionContains](_drawing.md#oh_drawing_regioncontains) ([OH_Drawing_Region](_drawing.md#oh_drawing_region) \*region, int32_t x, int32_t y) | Checks whether a region contains the specified point. |
| bool [OH_Drawing_RegionOp](_drawing.md#oh_drawing_regionop) ([OH_Drawing_Region](_drawing.md#oh_drawing_region) \*region, const [OH_Drawing_Region](_drawing.md#oh_drawing_region) \*other, [OH_Drawing_RegionOpMode](_drawing.md#oh_drawing_regionopmode) op) | Combines two regions based on the specified operation mode. |
| bool [OH_Drawing_RegionSetRect](_drawing.md#oh_drawing_regionsetrect) ([OH_Drawing_Region](_drawing.md#oh_drawing_region) \*region, const [OH_Drawing_Rect](_drawing.md#oh_drawing_rect) \*rect) | Sets the boundary for an **OH_Drawing_Region** object. |
| bool [OH_Drawing_RegionSetPath](_drawing.md#oh_drawing_regionsetpath) ([OH_Drawing_Region](_drawing.md#oh_drawing_region) \*region, const [OH_Drawing_Path](_drawing.md#oh_drawing_path) \*path, const [OH_Drawing_Region](_drawing.md#oh_drawing_region) \*clip) | Sets a region to the area described by the path. |
| void [OH_Drawing_RegionDestroy](_drawing.md#oh_drawing_regiondestroy) ([OH_Drawing_Region](_drawing.md#oh_drawing_region) \*) | Destroys an **OH_Drawing_Region** object and reclaims the memory occupied by the object. |