9.3. API参考¶
该功能模块为用户提供以下API:
CVI_RGN_Create :创建一个区域。
CVI_RGN_Destroy :销毁一个区域。
CVI_RGN_GetAttr :获取区域属性。
CVI_RGN_SetAttr :设置区域属性。
CVI_RGN_SetBitMap :设置区域位图。
CVI_RGN_AttachToChn :将区域叠加到通道上。
CVI_RGN_DetachFromChn :将区域从通道中撤出。
CVI_RGN_SetDisplayAttr :设置区域的通道显示属性。
CVI_RGN_GetDisplayAttr :获取区域的通道显示属性。
CVI_RGN_GetCanvasInfo :获取区域画布信息。
CVI_RGN_UpdateCanvas :更新区域画布信息。
CVI_RGN_SetChnPalette :设置通道色盘信息。
9.3.1. CVI_RGN_Create¶
【描述】
创建一个区域
【语法】
CVI_S32 CVI_RGN_Create(RGN_HANDLE Handle, const RGN_ATTR_S *pstRegion);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。
必须是未使用过的Handle号
取值范围:[0, 0xFFFFFFFF]。
|
输入 |
pstRegion |
区域属性指针。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
Handle由用户指定,必须为单一不可重复。
不支持重复创建
创建Overlay/OverLayEx以外的区域时,只需指定区域类型即可。其他信息,是在调用 CVI_RGN_AttachToChn 时指定。
【举例】
CVI_S32 s32Ret;
RGN_HANDLE Handle = 0;
RGN_ATTR_S stRegion;
RGN_ATTR_S stRgnAttr;
stRegion.enType = OVERLAYEX_RGN;
stRegion.unAttr.stOverlayEx.enPixelFormat = PIXEL_FORMAT_ARGB_1555;
stRegion.unAttr.stOverlayEx.stSize.u32Height = 200;
stRegion.unAttr.stOverlayEx.stSize.u32Width = 300;
stRegion.unAttr.stOverlayEx.u32BgColor = 0x00000000; // ARGB1555 transparent
stRegion.unAttr.stOverlayEx.u32CanvasNum = 2;
s32Ret = CVI_RGN_Create(Handle, &stRegion);
if (s32Ret != CVI_SUCCESS) {
return CVI_FAILURE;
}
s32Ret = CVI_RGN_GetAttr (Handle, &stRgnAttr);
if (s32Ret != CVI_SUCCESS) {
return CVI_FAILURE;
}
stRgnAttr.unAttr.stOverlay.u32BgColor = 0x0000801f; // ARGB1555 blue
s32Ret = CVI_RGN_SetAttr (Handle, &stRgnAttr);
if (s32Ret != CVI_SUCCESS) {
return CVI_FAILURE;
}
s32Ret = CVI_RGN_Destory (Handle);
if (s32Ret != CVI_SUCCESS) {
return CVI_FAILURE;
}
【相关主题】
9.3.2. CVI_RGN_Destroy¶
【描述】
销毁一个区域
【语法】
CVI_S32 CVI_RGN_Destroy(RGN_HANDLE Handle);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
【举例】
参见 CVI_RGN_Create 举例
【相关主题】
9.3.3. CVI_RGN_GetAttr¶
【描述】
获取区域属性
【语法】
CVI_S32 CVI_RGN_GetAttr(RGN_HANDLE Handle, RGN_ATTR_S *pstRegion);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstRegion |
区域属性指针 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
【举例】
参见 CVI_RGN_Create 举例
【相关主题】
9.3.4. CVI_RGN_SetAttr¶
【描述】
设置区域属性
【语法】
CVI_S32 CVI_RGN_SetAttr(RGN_HANDLE Handle, const RGN_ATTR_S *pstRegion);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstRegion |
区域属性指针 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
仅Overlay/OverlayEx支援此接口
【举例】
参见 CVI_RGN_Create 举例
【相关主题】
9.3.5. CVI_RGN_SetBitMap¶
【描述】
设置区域位图,将Bitmap填充到区域中。
【语法】
CVI_S32 CVI_RGN_SetBitMap(RGN_HANDLE Handle, const BITMAP_S *pstBitmap);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstBitmap |
Bitmap属性指针可参考”系统控制”章节的 BITMAP_S |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
Bitmap必须小于等于区域的大小
Bitmap和区域的像素格式必须一致
可多次调用
只支援Overlay/OverlayEx
【举例】
无。
【相关主题】
无。
9.3.6. CVI_RGN_AttachToChn¶
【描述】
将区域叠加到通道上
【语法】
CVI_S32 CVI_RGN_AttachToChn(RGN_HANDLE Handle, const MMF_CHN_S *pstChn, const RGN_CHN_ATTR_S *pstChnAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstChn |
通道信息指针 |
输入 |
pstChnAttr |
区域通道属性指针 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
通道必须已经创建
【举例】
无。
【相关主题】
9.3.7. CVI_RGN_DetachFromChn¶
【描述】
将区域从通道中撤出
【语法】
CVI_S32 CVI_RGN_DetachFromChn(RGN_HANDLE Handle, const MMF_CHN_S *pstChn);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstChn |
通道信息指针 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
【举例】
无。
【相关主题】
9.3.8. CVI_RGN_SetDisplayAttr¶
【描述】
设置区域的通道显示属性
【语法】
CVI_S32 CVI_RGN_SetDisplayAttr(RGN_HANDLE Handle, const MMF_CHN_S *pstChn, const RGN_CHN_ATTR_S *pstChnAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstChn |
通道信息指针 |
输入 |
pstChnAttr |
区域通道属性指针 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
区域必须已经跟通道绑定
【举例】
无。
【相关主题】
9.3.9. CVI_RGN_GetDisplayAttr¶
【描述】
获取区域的通道显示属性
【语法】
CVI_S32 CVI_RGN_GetDisplayAttr(RGN_HANDLE Handle, const MMF_CHN_S *pstChn, RGN_CHN_ATTR_S *pstChnAttr);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstChn |
通道信息指针 |
输入 |
pstChnAttr |
区域通道属性指针 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
区域必须已经跟通道绑定
【举例】
无。
【相关主题】
9.3.10. CVI_RGN_GetCanvasInfo¶
【描述】
获取区域的画布信息
【语法】
CVI_S32 CVI_RGN_GetCanvasInfo(RGN_HANDLE Handle, RGN_CANVAS_INFO_S *pstCanvasInfo);
【参数】
参数名称 描述 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstCanvasInfo |
区域画布信息指针 |
输出 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
仅支援Overlay/OverlayEx
- 此接口功能类似 CVI_RGN_SetBitMap ,主要差异在于 CVI_RGN_SetBitMap在更新画布的过程中,是直接作用在所绑定的通道上,并且会多一次内存拷贝。而此接口不会有以上问题,但需要两块画布(double buffer)来实现。
此接口用于获取画布信息,之后用户可以直接对画布做操作,在完成更新之后,在调用进行 CVI_RGN_UpdateCanvas 更新(swap buffer)。
在调用了此接口之后,未调用 CVI_RGN_UpdateCanvas 之前,不可调用 CVI_RGN_SetBitMap 。
【举例】
无。
【相关主题】
9.3.11. CVI_RGN_UpdateCanvas¶
【描述】
更新区域的画布
【语法】
CVI_S32 CVI_RGN_UpdateCanvas(RGN_HANDLE Handle);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
必须先获取画布信息,在对画布更新完成之后,在调用此接口进行更新。
仅支援Overlay/OverlayEx
【举例】
无。
【相关主题】
9.3.12. CVI_RGN_SetChnPalette¶
【描述】
设置通道色盘信息
【语法】
CVI_S32 CVI_RGN_SetChnPalette(RGN_HANDLE Handle, const MMF_CHN_S *pstChn, RGN_PALETTE_S *pstPalette);
【参数】
参数名称 |
描述 |
输入/输出 |
|---|---|---|
Handle |
区域号。 取值范围: [0, 0xFFFFFFFF]。 |
输入 |
pstChn |
绑定通道号的信息 |
输入 |
pstPalette |
色盘信息 |
输入 |
【返回值】
返回值 |
描述 |
|---|---|
0 |
成功。 |
非0 |
失败,请参见 错误码 。 |
【需求】
头文件:cvi_comm_region.h、cvi_region.h
库文件:librgn.a
【注意】
区域必须已经创建
仅支援Overlay/OverlayEx
【举例】
无。
【相关主题】
无。