1# OH_NativeBuffer 2 3 4提供NativeBuffer功能 5 6 7@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 8 9 10**起始版本:** 11 12 139 14 15 16## 汇总 17 18 19### 文件 20 21| 文件名称 | 描述 | 22| -------- | -------- | 23| [native_buffer.h](native__buffer_8h.md) | 定义获取和使用NativeBuffer的相关函数<br>引用文件:<native_buffer/native_buffer.h> | 24 25 26### 结构体 27 28| 结构体名称 | 描述 | 29| -------- | -------- | 30| [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) | OH_NativeBuffer的属性配置,用于申请新的OH_NativeBuffer实例或查询现有实例的相关属性 | 31 32 33### 函数 34 35| 函数名称 | 描述 | 36| -------- | -------- | 37| [OH_NativeBuffer_Alloc](#oh_nativebuffer_alloc) (const [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例 | 38| [OH_NativeBuffer_Reference](#oh_nativebuffer_reference) (OH_NativeBuffer \*buffer) | 将OH_NativeBuffer对象的引用计数加1 | 39| [OH_NativeBuffer_Unreference](#oh_nativebuffer_unreference) (OH_NativeBuffer \*buffer) | 将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉 | 40| [OH_NativeBuffer_GetConfig](#oh_nativebuffer_getconfig) (OH_NativeBuffer \*buffer, [OH_NativeBuffer_Config](_o_h___native_buffer___config.md) \*config) | 用于获取OH_NativeBuffer的属性 | 41| [OH_NativeBuffer_Map](#oh_nativebuffer_map) (OH_NativeBuffer \*buffer, void \*\*virAddr) | 将OH_NativeBuffer对应的ION内存映射到进程空间 | 42| [OH_NativeBuffer_Unmap](#oh_nativebuffer_unmap) (OH_NativeBuffer \*buffer) | 将OH_NativeBuffer对应的ION内存从进程空间移除 | 43| [OH_NativeBuffer_GetSeqNum](#oh_nativebuffer_getseqnum) (OH_NativeBuffer \*buffer) | 获取OH_NativeBuffer的序列号 | 44 45 46## 详细描述 47 48 49## 函数说明 50 51 52### OH_NativeBuffer_Alloc() 53 54 55``` 56OH_NativeBuffer* OH_NativeBuffer_Alloc (const OH_NativeBuffer_Config * config) 57``` 58 59**描述:** 60 61通过OH_NativeBuffer_Config创建OH_NativeBuffer实例,每次调用都会产生一个新的OH_NativeBuffer实例 62 63@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 64 65**参数:** 66 67| Name | 描述 | 68| -------- | -------- | 69| config | 参数是一个指向OH_NativeBuffer属性的指针,类型为OH_NativeBuffer_Config | 70 71**返回:** 72 73创建成功则返回一个指向OH_NativeBuffer结构体实例的指针,否则返回NULL 74 75**起始版本:** 76 779 78 79 80### OH_NativeBuffer_GetConfig() 81 82 83``` 84void OH_NativeBuffer_GetConfig (OH_NativeBuffer * buffer, OH_NativeBuffer_Config * config ) 85``` 86 87**描述:** 88 89用于获取OH_NativeBuffer的属性 90 91@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 92 93**参数:** 94 95| Name | 描述 | 96| -------- | -------- | 97| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 98| config | 参数是一个指向OH_NativeBuffer_Config的指针,用于接收OH_NativeBuffer的属性 | 99 100**起始版本:** 101 1029 103 104 105### OH_NativeBuffer_GetSeqNum() 106 107 108``` 109uint32_t OH_NativeBuffer_GetSeqNum (OH_NativeBuffer * buffer) 110``` 111 112**描述:** 113 114获取OH_NativeBuffer的序列号 115 116@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 117 118**参数:** 119 120| Name | 描述 | 121| -------- | -------- | 122| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 123 124**返回:** 125 126返回对应OH_NativeBuffer的唯一序列号 127 128**起始版本:** 129 1309 131 132 133### OH_NativeBuffer_Map() 134 135 136``` 137int32_t OH_NativeBuffer_Map (OH_NativeBuffer * buffer, void ** virAddr ) 138``` 139 140**描述:** 141 142将OH_NativeBuffer对应的ION内存映射到进程空间 143 144@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 145 146**参数:** 147 148| Name | 描述 | 149| -------- | -------- | 150| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 151| virAddr | 参数是一个二级指针,二级指针指向虚拟内存的地址 | 152 153**返回:** 154 155返回一个由GSError定义的int32_t类型的错误码 156 157**起始版本:** 158 1599 160 161 162### OH_NativeBuffer_Reference() 163 164 165``` 166int32_t OH_NativeBuffer_Reference (OH_NativeBuffer * buffer) 167``` 168 169**描述:** 170 171将OH_NativeBuffer对象的引用计数加1 172 173@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 174 175**参数:** 176 177| Name | 描述 | 178| -------- | -------- | 179| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 180 181**返回:** 182 183返回一个由GSError定义的int32_t类型的错误码 184 185**起始版本:** 186 1879 188 189 190### OH_NativeBuffer_Unmap() 191 192 193``` 194int32_t OH_NativeBuffer_Unmap (OH_NativeBuffer * buffer) 195``` 196 197**描述:** 198 199将OH_NativeBuffer对应的ION内存从进程空间移除 200 201@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 202 203**参数:** 204 205| Name | 描述 | 206| -------- | -------- | 207| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 208 209**返回:** 210 211返回一个由GSError定义的int32_t类型的错误码 212 213**起始版本:** 214 2159 216 217 218### OH_NativeBuffer_Unreference() 219 220 221``` 222int32_t OH_NativeBuffer_Unreference (OH_NativeBuffer * buffer) 223``` 224 225**描述:** 226 227将OH_NativeBuffer对象的引用计数减1,当引用计数为0的时候,该NativeBuffer对象会被析构掉 228 229@syscap SystemCapability.Graphic.Graphic2D.OH_NativeBuffer 230 231**参数:** 232 233| Name | 描述 | 234| -------- | -------- | 235| buffer | 参数是一个指向OH_NativeBuffer实例的指针 | 236 237**返回:** 238 239返回一个由GSError定义的int32_t类型的错误码 240 241**起始版本:** 242 2439 244