1# Vulkan模块 2 3 4## 概述 5 6提供OpenHarmony平台扩展的Vulkan能力,扩展了使用OHNativeWindow创建Vulkan Surface的能力,以及获取OH_NativeBuffer和OH_NativeBuffer属性的能力。 7 8\@syscap SystemCapability.Graphic.Vulkan 9 10**起始版本:** 11 1210 13 14 15## 汇总 16 17 18### 文件 19 20| 名称 | 描述 | 21| -------- | -------- | 22| [vulkan_ohos.h](vulkan__ohos_8h.md) | 定义了OpenHarmony平台扩展的Vulkan接口。<br/>引用文件:<vulkan/vulkan.h><br/>库:libvulkan.so | 23 24 25### 结构体 26 27| 名称 | 描述 | 28| -------- | -------- | 29| [VkSurfaceCreateInfoOHOS](_vk_surface_create_info_o_h_o_s.md) | 包含创建Vulkan Surface时必要的参数。 | 30| [VkNativeBufferUsageOHOS](_vk_native_buffer_usage_o_h_o_s.md) | 提供OpenHarmony NativeBuffer用途的说明。 | 31| [VkNativeBufferPropertiesOHOS](_vk_native_buffer_properties_o_h_o_s.md) | 包含了NativeBuffer的属性。 | 32| [VkNativeBufferFormatPropertiesOHOS](_vk_native_buffer_format_properties_o_h_o_s.md) | 包含了NativeBuffer的一些格式属性。 | 33| [VkImportNativeBufferInfoOHOS](_vk_import_native_buffer_info_o_h_o_s.md) | 包含了OH_NativeBuffer结构体的指针。 | 34| [VkMemoryGetNativeBufferInfoOHOS](_vk_memory_get_native_buffer_info_o_h_o_s.md) | 用于从Vulkan内存中获取OH_NativeBuffer。 | 35| [VkExternalFormatOHOS](_vk_external_format_o_h_o_s.md) | 表示外部定义的格式标识符。 | 36 37 38### 宏定义 39 40| 名称 | 描述 | 41| -------- | -------- | 42| [VK_OHOS_surface](#vk_ohos_surface) 1 | OpenHarmony平台Surface扩展宏定义。 | 43| [VK_OHOS_SURFACE_SPEC_VERSION](#vk_ohos_surface_spec_version) 1 | OpenHarmony平台Surface扩展版本号。 | 44| [VK_OHOS_SURFACE_EXTENSION_NAME](#vk_ohos_surface_extension_name) "VK_OHOS_surface" | OpenHarmony平台Surface扩展名。 | 45| [VK_OHOS_external_memory](#vk_ohos_external_memory) 1 | OpenHarmony平台external_memory扩展宏定义。 | 46| [VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION](#vk_ohos_external_memory_spec_version) 1 | OpenHarmony平台external_memory扩展版本号。 | 47| [VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME](#vk_ohos_external_memory_extension_name) "VK_OHOS_external_memory" | OpenHarmony平台external_memory扩展名。 | 48 49 50### 类型定义 51 52| 名称 | 描述 | 53| -------- | -------- | 54| [OHNativeWindow](#ohnativewindow) | OH本地窗口。 | 55| [VkSurfaceCreateFlagsOHOS](#vksurfacecreateflagsohos) | 用于Vulkan Surface创建时使用到的VkFlags类型位掩码,预留的标志类型。 | 56| [VkSurfaceCreateInfoOHOS](#vksurfacecreateinfoohos) | 包含创建Vulkan Surface时必要的参数。 | 57| VkResult ([VKAPI_PTR *PFN_vkCreateSurfaceOHOS](#pfn_vkcreatesurfaceohos)) (VkInstance instance, const [VkSurfaceCreateInfoOHOS](_vk_surface_create_info_o_h_o_s.md) \*pCreateInfo, const VkAllocationCallbacks \*pAllocator, VkSurfaceKHR \*pSurface) | 创建Vulkan Surface的函数指针定义。 | 58| [VkNativeBufferUsageOHOS](#vknativebufferusageohos) | 提供OpenHarmony NativeBuffer用途的说明。 | 59| [VkNativeBufferPropertiesOHOS](#vknativebufferpropertiesohos) | 包含了NativeBuffer的属性。 | 60| [VkNativeBufferFormatPropertiesOHOS](#vknativebufferformatpropertiesohos) | 包含了NativeBuffer的一些格式属性。 | 61| [VkImportNativeBufferInfoOHOS](#vkimportnativebufferinfoohos) | 包含了OH_NativeBuffer结构体的指针。 | 62| [VkMemoryGetNativeBufferInfoOHOS](#vkmemorygetnativebufferinfoohos) | 用于从Vulkan内存中获取OH_NativeBuffer。 | 63| [VkExternalFormatOHOS](#vkexternalformatohos) | 表示外部定义的格式标识符。 | 64| VkResult ([VKAPI_PTR *PFN_vkGetNativeBufferPropertiesOHOS](#pfn_vkgetnativebufferpropertiesohos)) (VkDevice device, const struct OH_NativeBuffer \*buffer, [VkNativeBufferPropertiesOHOS](_vk_native_buffer_properties_o_h_o_s.md) \*pProperties) | 获取OH_NativeBuffer属性的函数指针定义。 | 65| VkResult ([VKAPI_PTR *PFN_vkGetMemoryNativeBufferOHOS](#pfn_vkgetmemorynativebufferohos)) (VkDevice device, const [VkMemoryGetNativeBufferInfoOHOS](_vk_memory_get_native_buffer_info_o_h_o_s.md) \*pInfo, struct OH_NativeBuffer \*\*pBuffer) | 获取OH_NativeBuffer的函数指针定义。 | 66 67 68### 函数 69 70| 名称 | 描述 | 71| -------- | -------- | 72| VKAPI_ATTR VkResult VKAPI_CALL [vkCreateSurfaceOHOS](#vkcreatesurfaceohos) (VkInstance instance, const [VkSurfaceCreateInfoOHOS](_vk_surface_create_info_o_h_o_s.md) \*pCreateInfo, const VkAllocationCallbacks \*pAllocator, VkSurfaceKHR \*pSurface) | 创建Vulkan Surface。 | 73| VKAPI_ATTR VkResult VKAPI_CALL [vkGetNativeBufferPropertiesOHOS](#vkgetnativebufferpropertiesohos) (VkDevice device, const struct OH_NativeBuffer \*buffer, [VkNativeBufferPropertiesOHOS](_vk_native_buffer_properties_o_h_o_s.md) \*pProperties) | 获取OH_NativeBuffer属性。 | 74| VKAPI_ATTR VkResult VKAPI_CALL [vkGetMemoryNativeBufferOHOS](#vkgetmemorynativebufferohos) (VkDevice device, const [VkMemoryGetNativeBufferInfoOHOS](_vk_memory_get_native_buffer_info_o_h_o_s.md) \*pInfo, struct OH_NativeBuffer \*\*pBuffer) | 获取OH_NativeBuffer。 | 75| VKAPI_ATTR VkResult VKAPI_CALL [vkGetSwapchainGrallocUsageOHOS](#vkgetswapchaingrallocusageohos) (VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, uint64_t \*grallocUsage) | 根据给定的Vulkan设备、图像格式和图像使用标志, 返回适当的Gralloc(内存分配器)使用标志。 | 76| VKAPI_ATTR VkResult VKAPI_CALL [vkAcquireImageOHOS](#vkacquireimageohos) (VkDevice device, VkImage image, int32_t nativeFenceFd, VkSemaphore semaphore, VkFence fence) | 用于获取交换链图像的所有权, 并将外部信号的Fence导入到VkSemaphore对象和VkFence对象中。 | 77| VKAPI_ATTR VkResult VKAPI_CALL [vkQueueSignalReleaseImageOHOS](#vkqueuesignalreleaseimageohos) (VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore \*pWaitSemaphores, VkImage image, int32_t \*pNativeFenceFd) | 当前图像使用完毕后,通过该函数向系统硬件缓冲区发出释放信号, 以便其他组件可以访问该图像。 | 78 79 80### 变量 81 82| 名称 | 描述 | 83| -------- | -------- | 84| [VkSurfaceCreateInfoOHOS::sType](#stype-17) | 结构体类型。 | 85| [VkSurfaceCreateInfoOHOS::pNext](#pnext-17) | 下一级结构体指针。 | 86| [VkSurfaceCreateInfoOHOS::flags](#flags) | 预留的标志类型参数。 | 87| [VkSurfaceCreateInfoOHOS::window](#window) | OHNativeWindow指针。 | 88| [VkNativeBufferUsageOHOS::sType](#stype-27) | 结构体类型。 | 89| [VkNativeBufferUsageOHOS::pNext](#pnext-27) | 下一级结构体指针。 | 90| [VkNativeBufferUsageOHOS::OHOSNativeBufferUsage](#ohosnativebufferusage) | NativeBuffer的用途说明。 | 91| [VkNativeBufferPropertiesOHOS::sType](#stype-37) | 结构体类型。 | 92| [VkNativeBufferPropertiesOHOS::pNext](#pnext-37) | 下一级结构体指针。 | 93| [VkNativeBufferPropertiesOHOS::allocationSize](#allocationsize) | 占用的内存大小。 | 94| [VkNativeBufferPropertiesOHOS::memoryTypeBits](#memorytypebits) | 内存类型。 | 95| [VkNativeBufferFormatPropertiesOHOS::sType](#stype-47) | 结构体类型。 | 96| [VkNativeBufferFormatPropertiesOHOS::pNext](#pnext-47) | 下一级结构体指针。 | 97| [VkNativeBufferFormatPropertiesOHOS::format](#format) | 格式说明。 | 98| [VkNativeBufferFormatPropertiesOHOS::externalFormat](#externalformat-12) | 外部定义的格式标识符。 | 99| [VkNativeBufferFormatPropertiesOHOS::formatFeatures](#formatfeatures) | 描述了与externalFormat对应的能力。 | 100| [VkNativeBufferFormatPropertiesOHOS::samplerYcbcrConversionComponents](#samplerycbcrconversioncomponents) | 表示一组VkComponentSwizzle。 | 101| [VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrModel](#suggestedycbcrmodel) | 色彩模型。 | 102| [VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrRange](#suggestedycbcrrange) | 色彩数值范围。 | 103| [VkNativeBufferFormatPropertiesOHOS::suggestedXChromaOffset](#suggestedxchromaoffset) | X色度偏移。 | 104| [VkNativeBufferFormatPropertiesOHOS::suggestedYChromaOffset](#suggestedychromaoffset) | Y色度偏移。 | 105| [VkImportNativeBufferInfoOHOS::sType](#stype-57) | 结构体类型。 | 106| [VkImportNativeBufferInfoOHOS::pNext](#pnext-57) | 下一级结构体指针。 | 107| [VkImportNativeBufferInfoOHOS::buffer](#buffer) | OH_NativeBuffer结构体的指针。 | 108| [VkMemoryGetNativeBufferInfoOHOS::sType](#stype-67) | 结构体类型。 | 109| [VkMemoryGetNativeBufferInfoOHOS::pNext](#pnext-67) | 下一级结构体指针。 | 110| [VkMemoryGetNativeBufferInfoOHOS::memory](#memory) | VkDeviceMemory对象。 | 111| [VkExternalFormatOHOS::sType](#stype-77) | 结构体类型。 | 112| [VkExternalFormatOHOS::pNext](#pnext-77) | 下一级结构体指针。 | 113| [VkExternalFormatOHOS::externalFormat](#externalformat-22) | 外部定义的格式标识符。 | 114 115 116## 宏定义说明 117 118 119### VK_OHOS_external_memory 120 121 122``` 123#define VK_OHOS_external_memory 1 124``` 125 126**描述:** 127 128OpenHarmony平台external_memory扩展宏定义。 129 130 131### VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME 132 133 134``` 135#define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory" 136``` 137 138**描述:** 139 140OpenHarmony平台external_memory扩展名。 141 142 143### VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 144 145 146``` 147#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1 148``` 149 150**描述:** 151 152OpenHarmony平台external_memory扩展版本号。 153 154 155### VK_OHOS_surface 156 157 158``` 159#define VK_OHOS_surface 1 160``` 161 162**描述:** 163 164OpenHarmony平台Surface扩展宏定义。 165 166 167### VK_OHOS_SURFACE_EXTENSION_NAME 168 169 170``` 171#define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface" 172``` 173 174**描述:** 175 176OpenHarmony平台Surface扩展名。 177 178 179### VK_OHOS_SURFACE_SPEC_VERSION 180 181 182``` 183#define VK_OHOS_SURFACE_SPEC_VERSION 1 184``` 185 186**描述:** 187 188OpenHarmony平台Surface扩展版本号。 189 190 191## 类型定义说明 192 193 194### OHNativeWindow 195 196 197``` 198typedef struct NativeWindow OHNativeWindow 199``` 200 201**描述:** 202 203OH本地窗口。 204 205 206### PFN_vkCreateSurfaceOHOS 207 208 209``` 210typedef VkResult(VKAPI_PTR * PFN_vkCreateSurfaceOHOS) (VkInstance instance, const VkSurfaceCreateInfoOHOS *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) 211``` 212 213**描述:** 214 215创建Vulkan Surface的函数指针定义。 216 217\@syscap SystemCapability.Graphic.Vulkan 218 219**参数:** 220 221| 名称 | 描述 | 222| -------- | -------- | 223| instance | Vulkan实例。 | 224| pCreateInfo | 一个VkSurfaceCreateInfoOHOS结构体的指针,包含创建Vulkan Surface时必要的参数。 | 225| pAllocator | 用户自定义内存分配的回调函数,如果不需要可以传入NULL,接口会使用默认的内存分配函数。 | 226| pSurface | 出参,用于接收创建的Vulkan Surface,类型为VkSurfaceKHR。 | 227 228**返回:** 229 230返回一个VkResult类型的错误码,返回值为VK_SUCCESS表示执行成功。 231 232 233### PFN_vkGetMemoryNativeBufferOHOS 234 235 236``` 237typedef VkResult(VKAPI_PTR * PFN_vkGetMemoryNativeBufferOHOS) (VkDevice device, const VkMemoryGetNativeBufferInfoOHOS *pInfo, struct OH_NativeBuffer **pBuffer) 238``` 239 240**描述:** 241 242获取OH_NativeBuffer的函数指针定义。 243 244\@syscap SystemCapability.Graphic.Vulkan 245 246**参数:** 247 248| 名称 | 描述 | 249| -------- | -------- | 250| device | VkDevice对象。 | 251| pInfo | VkMemoryGetNativeBufferInfoOHOS结构体对象。 | 252| pBuffer | 用于接收获取到的OH_NativeBuffer。 | 253 254**返回:** 255 256返回一个VkResult类型的错误码,返回值为VK_SUCCESS表示执行成功。 257 258 259### PFN_vkGetNativeBufferPropertiesOHOS 260 261 262``` 263typedef VkResult(VKAPI_PTR * PFN_vkGetNativeBufferPropertiesOHOS) (VkDevice device, const struct OH_NativeBuffer *buffer, VkNativeBufferPropertiesOHOS *pProperties) 264``` 265 266**描述:** 267 268获取OH_NativeBuffer属性的函数指针定义。 269 270\@syscap SystemCapability.Graphic.Vulkan 271 272**参数:** 273 274| 名称 | 描述 | 275| -------- | -------- | 276| device | VkDevice对象。 | 277| buffer | OH_NativeBuffer结构体指针。 | 278| pProperties | 用于接收OH_NativeBuffer属性的结构体。 | 279 280**返回:** 281 282返回一个VkResult类型的错误码,返回值为VK_SUCCESS表示执行成功。 283 284 285### VkExternalFormatOHOS 286 287 288``` 289typedef struct VkExternalFormatOHOS VkExternalFormatOHOS 290``` 291 292**描述:** 293 294表示外部定义的格式标识符。 295 296 297### VkImportNativeBufferInfoOHOS 298 299 300``` 301typedef struct VkImportNativeBufferInfoOHOS VkImportNativeBufferInfoOHOS 302``` 303 304**描述:** 305 306包含了OH_NativeBuffer结构体的指针。 307 308 309### VkMemoryGetNativeBufferInfoOHOS 310 311 312``` 313typedef struct VkMemoryGetNativeBufferInfoOHOS VkMemoryGetNativeBufferInfoOHOS 314``` 315 316**描述:** 317 318用于从Vulkan内存中获取OH_NativeBuffer。 319 320 321### VkNativeBufferFormatPropertiesOHOS 322 323 324``` 325typedef struct VkNativeBufferFormatPropertiesOHOS VkNativeBufferFormatPropertiesOHOS 326``` 327 328**描述:** 329 330包含了NativeBuffer的一些格式属性。 331 332 333### VkNativeBufferPropertiesOHOS 334 335 336``` 337typedef struct VkNativeBufferPropertiesOHOS VkNativeBufferPropertiesOHOS 338``` 339 340**描述:** 341 342包含了NativeBuffer的属性。 343 344 345### VkNativeBufferUsageOHOS 346 347 348``` 349typedef struct VkNativeBufferUsageOHOS VkNativeBufferUsageOHOS 350``` 351 352**描述:** 353 354提供OpenHarmony NativeBuffer用途的说明。 355 356 357### VkSurfaceCreateFlagsOHOS 358 359 360``` 361typedef VkFlags VkSurfaceCreateFlagsOHOS 362``` 363 364**描述:** 365 366用于Vulkan Surface创建时使用到的VkFlags类型位掩码,预留的标志类型。 367 368 369### VkSurfaceCreateInfoOHOS 370 371 372``` 373typedef struct VkSurfaceCreateInfoOHOS VkSurfaceCreateInfoOHOS 374``` 375 376**描述:** 377 378包含创建Vulkan Surface时必要的参数。 379 380 381## 函数说明 382 383 384### vkAcquireImageOHOS() 385 386``` 387VKAPI_ATTR VkResult VKAPI_CALL vkAcquireImageOHOS (VkDevice device, VkImage image, int32_t nativeFenceFd, VkSemaphore semaphore, VkFence fence ) 388``` 389 390**描述** 391 392用于获取交换链图像的所有权, 并将外部信号的Fence导入到VkSemaphore对象和VkFence对象中。 393 394**系统能力:** SystemCapability.Graphic.Vulkan 395 396**起始版本:** 10 397 398**参数:** 399 400| 名称 | 描述 | 401| -------- | -------- | 402| device | VkDevice对象。 | 403| image | 要获取的Vulkan图像 | 404| nativeFenceFd | 原生Fence的文件描述符 | 405| semaphore | 表示图像可用状态的Vulkan Semaphore(信号量) | 406| fence | 用于在图像获取完成时进行同步的Vulkan Fence | 407 408**返回:** 409 410返回一个VkResult类型的错误码,具体返回类型如下: 411返回VK_SUCCESS,表示执行成功。 412返回VK_ERROR_OUT_OF_HOST_MEMORY,表示主机内存不足。 413 414### vkCreateSurfaceOHOS() 415 416 417``` 418VKAPI_ATTR VkResult VKAPI_CALL vkCreateSurfaceOHOS (VkInstance instance, const VkSurfaceCreateInfoOHOS * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface ) 419``` 420 421**描述:** 422 423创建Vulkan Surface。 424 425\@syscap SystemCapability.Graphic.Vulkan 426 427**参数:** 428 429| 名称 | 描述 | 430| -------- | -------- | 431| instance | Vulkan实例。 | 432| pCreateInfo | 一个VkSurfaceCreateInfoOHOS结构体的指针,包含创建Vulkan Surface时必要的参数。 | 433| pAllocator | 用户自定义内存分配的回调函数,如果不需要可以传入NULL,接口会使用默认的内存分配函数。 | 434| pSurface | 出参,用于接收创建的Vulkan Surface,类型为VkSurfaceKHR。 | 435 436**返回:** 437 438返回一个VkResult类型的错误码,具体返回类型如下: 439返回VK_SUCCESS,表示执行成功。 440返回VK_ERROR_OUT_OF_HOST_MEMORY,表示分配VkSurfaceKHR内存失败。 441返回VK_ERROR_SURFACE_LOST_KHR,表示操作NativeWindow失败。 442 443 444### vkGetMemoryNativeBufferOHOS() 445 446 447``` 448VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS (VkDevice device, const VkMemoryGetNativeBufferInfoOHOS * pInfo, struct OH_NativeBuffer ** pBuffer ) 449``` 450 451**描述:** 452 453获取OH_NativeBuffer。 454 455\@syscap SystemCapability.Graphic.Vulkan 456 457**参数:** 458 459| 名称 | 描述 | 460| -------- | -------- | 461| device | VkDevice对象。 | 462| pInfo | VkMemoryGetNativeBufferInfoOHOS结构体对象。 | 463| pBuffer | 用于接收获取到的OH_NativeBuffer。 | 464 465**返回:** 466 467返回一个VkResult类型的错误码,具体返回类型如下: 468返回VK_SUCCESS,表示执行成功。 469返回VK_ERROR_OUT_OF_HOST_MEMORY,表示pInfo入参异常,或获取的pBuffer异常。 470 471### vkGetNativeBufferPropertiesOHOS() 472 473 474``` 475VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS (VkDevice device, const struct OH_NativeBuffer * buffer, VkNativeBufferPropertiesOHOS * pProperties ) 476``` 477 478**描述:** 479 480获取OH_NativeBuffer属性。 481 482\@syscap SystemCapability.Graphic.Vulkan 483 484**参数:** 485 486| 名称 | 描述 | 487| -------- | -------- | 488| device | VkDevice对象。 | 489| buffer | OH_NativeBuffer结构体指针。 | 490| pProperties | 用于接收OH_NativeBuffer属性的结构体。 | 491 492**返回:** 493 494返回一个VkResult类型的错误码,具体返回类型如下: 495返回VK_SUCCESS,表示执行成功。 496返回VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR,表示入参存在异常。 497返回VK_ERROR_OUT_OF_DEVICE_MEMORY,表示设备内存不足。 498 499 500### vkGetSwapchainGrallocUsageOHOS() 501 502``` 503VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainGrallocUsageOHOS (VkDevice device, VkFormat format, VkImageUsageFlags imageUsage, uint64_t* grallocUsage ) 504``` 505 506**描述** 507 508根据给定的Vulkan设备、图像格式和图像使用标志, 返回适当的Gralloc(内存分配器)使用标志。 509 510**系统能力:** SystemCapability.Graphic.Vulkan 511 512**起始版本:** 10 513 514**参数:** 515 516| 名称 | 描述 | 517| -------- | -------- | 518| device | VkDevice对象。 | 519| format | 图像格式。 | 520| imageUsage | 图像使用标志。 | 521| grallocUsage | 出参, 返回Gralloc(内存分配器)使用标志。 | 522 523**返回:** 524 525返回一个VkResult类型的错误码,具体返回类型如下: 526返回VK_SUCCESS,表示执行成功。 527返回VK_ERROR_INITIALIZATION_FAILED,表示入参异常。 528 529### vkQueueSignalReleaseImageOHOS() 530 531``` 532VKAPI_ATTR VkResult VKAPI_CALL vkQueueSignalReleaseImageOHOS (VkQueue queue, uint32_t waitSemaphoreCount, const VkSemaphore* pWaitSemaphores, VkImage image, int32_t* pNativeFenceFd ) 533``` 534 535**描述** 536 537当前图像使用完毕后,通过该函数向系统硬件缓冲区发出释放信号, 以便其他组件可以访问该图像 538 539**系统能力:** SystemCapability.Graphic.Vulkan 540 541**起始版本:** 10 542 543**参数:** 544 545| 名称 | 描述 | 546| -------- | -------- | 547| queue | Vulkan队列的句柄 | 548| waitSemaphoreCount | 等待Semaphore(信号量)的数量 | 549| pWaitSemaphores | 指向等待Semaphore(信号量)数组的指针 | 550| images | 要释放的Vulkan图像句柄 | 551| pNativeFenceFd | 指向Fence的文件描述符的指针 | 552 553**返回:** 554 555返回一个VkResult类型的错误码,具体返回类型如下: 556返回VK_SUCCESS,表示执行成功。 557返回VK_ERROR_DEVICE_LOST,表示Vulkan设备链接丢失。 558返回VK_ERROR_OUT_OF_HOST_MEMORY,表示主机内存不足。 559 560## 变量说明 561 562 563### allocationSize 564 565 566``` 567VkDeviceSize VkNativeBufferPropertiesOHOS::allocationSize 568``` 569 570**描述:** 571 572占用的内存大小。 573 574 575### buffer 576 577 578``` 579struct OH_NativeBuffer* VkImportNativeBufferInfoOHOS::buffer 580``` 581 582**描述:** 583 584OH_NativeBuffer结构体的指针。 585 586 587### externalFormat [1/2] 588 589 590``` 591uint64_t VkNativeBufferFormatPropertiesOHOS::externalFormat 592``` 593 594**描述:** 595 596外部定义的格式标识符。 597 598 599### externalFormat [2/2] 600 601 602``` 603uint64_t VkExternalFormatOHOS::externalFormat 604``` 605 606**描述:** 607 608外部定义的格式标识符。 609 610 611### flags 612 613 614``` 615VkSurfaceCreateFlagsOHOS VkSurfaceCreateInfoOHOS::flags 616``` 617 618**描述:** 619 620预留的标志类型参数。 621 622 623### format 624 625 626``` 627VkFormat VkNativeBufferFormatPropertiesOHOS::format 628``` 629 630**描述:** 631 632格式说明。 633 634 635### formatFeatures 636 637 638``` 639VkFormatFeatureFlags VkNativeBufferFormatPropertiesOHOS::formatFeatures 640``` 641 642**描述:** 643 644描述了与externalFormat对应的能力。 645 646 647### memory 648 649 650``` 651VkDeviceMemory VkMemoryGetNativeBufferInfoOHOS::memory 652``` 653 654**描述:** 655 656VkDeviceMemory对象。 657 658 659### memoryTypeBits 660 661 662``` 663uint32_t VkNativeBufferPropertiesOHOS::memoryTypeBits 664``` 665 666**描述:** 667 668内存类型。 669 670 671### OHOSNativeBufferUsage 672 673 674``` 675uint64_t VkNativeBufferUsageOHOS::OHOSNativeBufferUsage 676``` 677 678**描述:** 679 680NativeBuffer的用途说明。 681 682 683### pNext [1/7] 684 685 686``` 687const void* VkSurfaceCreateInfoOHOS::pNext 688``` 689 690**描述:** 691 692下一级结构体指针。 693 694 695### pNext [2/7] 696 697 698``` 699void* VkNativeBufferUsageOHOS::pNext 700``` 701 702**描述:** 703 704下一级结构体指针。 705 706 707### pNext [3/7] 708 709 710``` 711void* VkNativeBufferPropertiesOHOS::pNext 712``` 713 714**描述:** 715 716下一级结构体指针。 717 718 719### pNext [4/7] 720 721 722``` 723void* VkNativeBufferFormatPropertiesOHOS::pNext 724``` 725 726**描述:** 727 728下一级结构体指针。 729 730 731### pNext [5/7] 732 733 734``` 735const void* VkImportNativeBufferInfoOHOS::pNext 736``` 737 738**描述:** 739 740下一级结构体指针。 741 742 743### pNext [6/7] 744 745 746``` 747const void* VkMemoryGetNativeBufferInfoOHOS::pNext 748``` 749 750**描述:** 751 752下一级结构体指针。 753 754 755### pNext [7/7] 756 757 758``` 759void* VkExternalFormatOHOS::pNext 760``` 761 762**描述:** 763 764下一级结构体指针。 765 766 767### samplerYcbcrConversionComponents 768 769 770``` 771VkComponentMapping VkNativeBufferFormatPropertiesOHOS::samplerYcbcrConversionComponents 772``` 773 774**描述:** 775 776表示一组VkComponentSwizzle。 777 778 779### sType [1/7] 780 781 782``` 783VkStructureType VkSurfaceCreateInfoOHOS::sType 784``` 785 786**描述:** 787 788结构体类型。 789 790 791### sType [2/7] 792 793 794``` 795VkStructureType VkNativeBufferUsageOHOS::sType 796``` 797 798**描述:** 799 800结构体类型。 801 802 803### sType [3/7] 804 805 806``` 807VkStructureType VkNativeBufferPropertiesOHOS::sType 808``` 809 810**描述:** 811 812结构体类型。 813 814 815### sType [4/7] 816 817 818``` 819VkStructureType VkNativeBufferFormatPropertiesOHOS::sType 820``` 821 822**描述:** 823 824结构体类型。 825 826 827### sType [5/7] 828 829 830``` 831VkStructureType VkImportNativeBufferInfoOHOS::sType 832``` 833 834**描述:** 835 836结构体类型。 837 838 839### sType [6/7] 840 841 842``` 843VkStructureType VkMemoryGetNativeBufferInfoOHOS::sType 844``` 845 846**描述:** 847 848结构体类型。 849 850 851### sType [7/7] 852 853 854``` 855VkStructureType VkExternalFormatOHOS::sType 856``` 857 858**描述:** 859 860结构体类型。 861 862 863### suggestedXChromaOffset 864 865 866``` 867VkChromaLocation VkNativeBufferFormatPropertiesOHOS::suggestedXChromaOffset 868``` 869 870**描述:** 871 872X色度偏移。 873 874 875### suggestedYcbcrModel 876 877 878``` 879VkSamplerYcbcrModelConversion VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrModel 880``` 881 882**描述:** 883 884色彩模型。 885 886 887### suggestedYcbcrRange 888 889 890``` 891VkSamplerYcbcrRange VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrRange 892``` 893 894**描述:** 895 896色彩数值范围。 897 898 899### suggestedYChromaOffset 900 901 902``` 903VkChromaLocation VkNativeBufferFormatPropertiesOHOS::suggestedYChromaOffset 904``` 905 906**描述:** 907 908Y色度偏移。 909 910 911### window 912 913 914``` 915OHNativeWindow* VkSurfaceCreateInfoOHOS::window 916``` 917 918**描述:** 919 920OHNativeWindow指针。 921