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/>引用文件:&lt;vulkan/vulkan.h&gt;<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