1# Vulkan Module 2 3 4## Overview 5 6The **Vulkan** module provides Vulkan capabilities extended by OpenHarmony. It provides extended APIs for creating a Vulkan surface using **OHNativeWindow** and obtaining **OH_NativeBuffer **and **OH_NativeBuffer** properties. 7 8\@syscap SystemCapability.Graphic.Vulkan 9 10**Since** 11 1210 13 14 15## Summary 16 17 18### Files 19 20| Name| Description| 21| -------- | -------- | 22| [vulkan_ohos.h](vulkan__ohos_8h.md) | Declares the Vulkan interfaces extended by OpenHarmony.<br>File to include: <vulkan/vulkan.h><br>Library: libvulkan.so | 23 24 25### Structs 26 27| Name| Description| 28| -------- | -------- | 29| [VkSurfaceCreateInfoOHOS](_vk_surface_create_info_o_h_o_s.md) | Defines the parameters required for creating a Vulkan surface.| 30| [VkNativeBufferUsageOHOS](_vk_native_buffer_usage_o_h_o_s.md) | Defines the usage of a **NativeBuffer**.| 31| [VkNativeBufferPropertiesOHOS](_vk_native_buffer_properties_o_h_o_s.md) | Defines the properties of a **NativeBuffer**.| 32| [VkNativeBufferFormatPropertiesOHOS](_vk_native_buffer_format_properties_o_h_o_s.md) | Defines the format properties of a **NativeBuffer**.| 33| [VkImportNativeBufferInfoOHOS](_vk_import_native_buffer_info_o_h_o_s.md) | Defines the pointer to an **OH_NativeBuffer** struct.| 34| [VkMemoryGetNativeBufferInfoOHOS](_vk_memory_get_native_buffer_info_o_h_o_s.md) | Defines a struct used to obtain an **OH_NativeBuffer** from the Vulkan memory.| 35| [VkExternalFormatOHOS](_vk_external_format_o_h_o_s.md) | Defines an externally defined format.| 36 37 38### Macros 39 40| Name| Description| 41| -------- | -------- | 42| [VK_OHOS_surface](#vk_ohos_surface) 1 | Surface extension macro definition of OpenHarmony.| 43| [VK_OHOS_SURFACE_SPEC_VERSION](#vk_ohos_surface_spec_version) 1 | Surface extension version of OpenHarmony.| 44| [VK_OHOS_SURFACE_EXTENSION_NAME](#vk_ohos_surface_extension_name) "VK_OHOS_surface" | Surface extension name of OpenHarmony.| 45| [VK_OHOS_external_memory](#vk_ohos_external_memory) 1 | External memory extension macro definition of OpenHarmony.| 46| [VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION](#vk_ohos_external_memory_spec_version) 1 | External memory extension version of OpenHarmony.| 47| [VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME](#vk_ohos_external_memory_extension_name) "VK_OHOS_external_memory" | External memory extension name of OpenHarmony.| 48 49 50### Types 51 52| Name| Description| 53| -------- | -------- | 54| [OHNativeWindow](#ohnativewindow) | Defines an **OHNativeWindow**.| 55| [VkSurfaceCreateFlagsOHOS](#vksurfacecreateflagsohos) | Defines the bit mask of the VkFlags type used for the creation of a Vulkan surface. It is a reserved flag type.| 56| [VkSurfaceCreateInfoOHOS](#vksurfacecreateinfoohos) | Defines the parameters required for creating a 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) | Defines the function pointer for creating a Vulkan surface.| 58| [VkNativeBufferUsageOHOS](#vknativebufferusageohos) | Defines the usage of a **NativeBuffer**.| 59| [VkNativeBufferPropertiesOHOS](#vknativebufferpropertiesohos) | Defines the properties of a **NativeBuffer**.| 60| [VkNativeBufferFormatPropertiesOHOS](#vknativebufferformatpropertiesohos) | Defines the format properties of a **NativeBuffer**.| 61| [VkImportNativeBufferInfoOHOS](#vkimportnativebufferinfoohos) | Defines the pointer to an **OH_NativeBuffer** struct.| 62| [VkMemoryGetNativeBufferInfoOHOS](#vkmemorygetnativebufferinfoohos) | Defines a struct used to obtain an **OH_NativeBuffer** from the Vulkan memory.| 63| [VkExternalFormatOHOS](#vkexternalformatohos) | Defines an externally defined format.| 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) | Defines a function pointer used to obtain **OH_NativeBuffer** properties.| 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) | Defines a function pointer used to obtain an **OH_NativeBuffer** instance.| 66 67 68### Functions 69 70| Name| Description| 71| -------- | -------- | 72| [vkCreateSurfaceOHOS](#vkcreatesurfaceohos) (VkInstance instance, const VkSurfaceCreateInfoOHOS \*pCreateInfo, const VkAllocationCallbacks \*pAllocator, VkSurfaceKHR \*pSurface) | Creates a Vulkan surface.| 73| [vkGetNativeBufferPropertiesOHOS](#vkgetnativebufferpropertiesohos) (VkDevice device, const struct OH_NativeBuffer \*buffer, VkNativeBufferPropertiesOHOS \*pProperties) | Obtains the properties of an **OH_NativeBuffer** instance.| 74| [vkGetMemoryNativeBufferOHOS](#vkgetmemorynativebufferohos) (VkDevice device, const VkMemoryGetNativeBufferInfoOHOS \*pInfo, struct OH_NativeBuffer \*\*pBuffer) | Obtains an **OH_NativeBuffer** instance.| 75 76 77### Variables 78 79| Name| Description| 80| -------- | -------- | 81| [VkSurfaceCreateInfoOHOS::sType](#stype-17) | Struct type.| 82| [VkSurfaceCreateInfoOHOS::pNext](#pnext-17) | Pointer to the next-level struct.| 83| [VkSurfaceCreateInfoOHOS::flags](#flags) | Reserved flag type.| 84| [VkSurfaceCreateInfoOHOS::window](#window) | Pointer to an **OHNativeWindow** instance.| 85| [VkNativeBufferUsageOHOS::sType](#stype-27) | Struct type.| 86| [VkNativeBufferUsageOHOS::pNext](#pnext-27) | Pointer to the next-level struct.| 87| [VkNativeBufferUsageOHOS::OHOSNativeBufferUsage](#ohosnativebufferusage) | Usage of a **NativeBuffer**.| 88| [VkNativeBufferPropertiesOHOS::sType](#stype-37) | Struct type.| 89| [VkNativeBufferPropertiesOHOS::pNext](#pnext-37) | Pointer to the next-level struct.| 90| [VkNativeBufferPropertiesOHOS::allocationSize](#allocationsize) | Size of the occupied memory.| 91| [VkNativeBufferPropertiesOHOS::memoryTypeBits](#memorytypebits) | Memory type.| 92| [VkNativeBufferFormatPropertiesOHOS::sType](#stype-47) | Struct type.| 93| [VkNativeBufferFormatPropertiesOHOS::pNext](#pnext-47) | Pointer to the next-level struct.| 94| [VkNativeBufferFormatPropertiesOHOS::format](#format) | Format properties.| 95| [VkNativeBufferFormatPropertiesOHOS::externalFormat](#externalformat-12) | Externally defined format.| 96| [VkNativeBufferFormatPropertiesOHOS::formatFeatures](#formatfeatures) | Features of the externally defined format.| 97| [VkNativeBufferFormatPropertiesOHOS::samplerYcbcrConversionComponents](#samplerycbcrconversioncomponents) | A group of VkComponentSwizzles.| 98| [VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrModel](#suggestedycbcrmodel) | Color model.| 99| [VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrRange](#suggestedycbcrrange) | Color value range.| 100| [VkNativeBufferFormatPropertiesOHOS::suggestedXChromaOffset](#suggestedxchromaoffset) | X chrominance offset.| 101| [VkNativeBufferFormatPropertiesOHOS::suggestedYChromaOffset](#suggestedychromaoffset) | Y chrominance offset.| 102| [VkImportNativeBufferInfoOHOS::sType](#stype-57) | Struct type.| 103| [VkImportNativeBufferInfoOHOS::pNext](#pnext-57) | Pointer to the next-level struct.| 104| [VkImportNativeBufferInfoOHOS::buffer](#buffer) | Pointer to an **OH_NativeBuffer** struct.| 105| [VkMemoryGetNativeBufferInfoOHOS::sType](#stype-67) | Struct type.| 106| [VkMemoryGetNativeBufferInfoOHOS::pNext](#pnext-67) | Pointer to the next-level struct.| 107| [VkMemoryGetNativeBufferInfoOHOS::memory](#memory) | **VkDeviceMemory** instance.| 108| [VkExternalFormatOHOS::sType](#stype-77) | Struct type.| 109| [VkExternalFormatOHOS::pNext](#pnext-77) | Pointer to the next-level struct.| 110| [VkExternalFormatOHOS::externalFormat](#externalformat-22) | Externally defined format.| 111 112 113## Macro Description 114 115 116### VK_OHOS_external_memory 117 118 119``` 120#define VK_OHOS_external_memory 1 121``` 122 123**Description** 124 125External memory extension macro definition of OpenHarmony. 126 127 128### VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME 129 130 131``` 132#define VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME "VK_OHOS_external_memory" 133``` 134 135**Description** 136 137External memory extension name of OpenHarmony. 138 139 140### VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 141 142 143``` 144#define VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION 1 145``` 146 147**Description** 148 149External memory extension version of OpenHarmony. 150 151 152### VK_OHOS_surface 153 154 155``` 156#define VK_OHOS_surface 1 157``` 158 159**Description** 160 161Surface extension macro definition of OpenHarmony. 162 163 164### VK_OHOS_SURFACE_EXTENSION_NAME 165 166 167``` 168#define VK_OHOS_SURFACE_EXTENSION_NAME "VK_OHOS_surface" 169``` 170 171**Description** 172 173Surface extension name of OpenHarmony. 174 175 176### VK_OHOS_SURFACE_SPEC_VERSION 177 178 179``` 180#define VK_OHOS_SURFACE_SPEC_VERSION 1 181``` 182 183**Description** 184 185Surface extension version of OpenHarmony. 186 187 188## Type Description 189 190 191### OHNativeWindow 192 193 194``` 195typedef struct NativeWindow OHNativeWindow 196``` 197 198**Description** 199 200Defines an **OHNativeWindow**. 201 202 203### PFN_vkCreateSurfaceOHOS 204 205 206``` 207typedef VkResult(VKAPI_PTR * PFN_vkCreateSurfaceOHOS) (VkInstance instance, const VkSurfaceCreateInfoOHOS *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) 208``` 209 210**Description** 211 212Defines the function pointer for creating a Vulkan surface. 213 214\@syscap SystemCapability.Graphic.Vulkan 215 216**Parameters** 217 218| Name| Description| 219| -------- | -------- | 220| instance | **Vulkan** instance.| 221| pCreateInfo | Pointer to the **VkSurfaceCreateInfoOHOS** struct, including the parameters required for creating a Vulkan surface.| 222| pAllocator | Pointer to a callback function for custom memory allocation. If custom memory allocation is not required, pass in **NULL**, and the default memory allocation function is used.| 223| pSurface | Pointer to the Vulkan surface created. The type is **VkSurfaceKHR**.| 224 225**Returns** 226 227Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 228 229 230### PFN_vkGetMemoryNativeBufferOHOS 231 232 233``` 234typedef VkResult(VKAPI_PTR * PFN_vkGetMemoryNativeBufferOHOS) (VkDevice device, const VkMemoryGetNativeBufferInfoOHOS *pInfo, struct OH_NativeBuffer **pBuffer) 235``` 236 237**Description** 238 239Defines a function pointer used to obtain an **OH_NativeBuffer** instance. 240 241\@syscap SystemCapability.Graphic.Vulkan 242 243**Parameters** 244 245| Name| Description| 246| -------- | -------- | 247| device | **VkDevice** instance.| 248| pInfo | Pointer to a **VkMemoryGetNativeBufferInfoOHOS** struct.| 249| pBuffer | Pointer to the **OH_NativeBuffer** obtained.| 250 251**Returns** 252 253Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 254 255 256### PFN_vkGetNativeBufferPropertiesOHOS 257 258 259``` 260typedef VkResult(VKAPI_PTR * PFN_vkGetNativeBufferPropertiesOHOS) (VkDevice device, const struct OH_NativeBuffer *buffer, VkNativeBufferPropertiesOHOS *pProperties) 261``` 262 263**Description** 264 265Defines a function pointer used to obtain **OH_NativeBuffer** properties. 266 267\@syscap SystemCapability.Graphic.Vulkan 268 269**Parameters** 270 271| Name| Description| 272| -------- | -------- | 273| device | **VkDevice** instance.| 274| buffer | Pointer to an **OH_NativeBuffer** struct.| 275| pProperties | Pointer to the struct holding the properties of **OH_NativeBuffer**.| 276 277**Returns** 278 279Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 280 281 282### VkExternalFormatOHOS 283 284 285``` 286typedef struct VkExternalFormatOHOS VkExternalFormatOHOS 287``` 288 289**Description** 290 291Defines an externally defined format. 292 293 294### VkImportNativeBufferInfoOHOS 295 296 297``` 298typedef struct VkImportNativeBufferInfoOHOS VkImportNativeBufferInfoOHOS 299``` 300 301**Description** 302 303Defines the pointer to an **OH_NativeBuffer** struct. 304 305 306### VkMemoryGetNativeBufferInfoOHOS 307 308 309``` 310typedef struct VkMemoryGetNativeBufferInfoOHOS VkMemoryGetNativeBufferInfoOHOS 311``` 312 313**Description** 314 315Defines a struct used to obtain an **OH_NativeBuffer** from the Vulkan memory. 316 317 318### VkNativeBufferFormatPropertiesOHOS 319 320 321``` 322typedef struct VkNativeBufferFormatPropertiesOHOS VkNativeBufferFormatPropertiesOHOS 323``` 324 325**Description** 326 327Defines the format properties of a **NativeBuffer**. 328 329 330### VkNativeBufferPropertiesOHOS 331 332 333``` 334typedef struct VkNativeBufferPropertiesOHOS VkNativeBufferPropertiesOHOS 335``` 336 337**Description** 338 339Defines the properties of a **NativeBuffer**. 340 341 342### VkNativeBufferUsageOHOS 343 344 345``` 346typedef struct VkNativeBufferUsageOHOS VkNativeBufferUsageOHOS 347``` 348 349**Description** 350 351Defines the usage of a **NativeBuffer**. 352 353 354### VkSurfaceCreateFlagsOHOS 355 356 357``` 358typedef VkFlags VkSurfaceCreateFlagsOHOS 359``` 360 361**Description** 362 363Defines the bit mask of the VkFlags type used for the creation of a Vulkan surface. It is a reserved flag type. 364 365 366### VkSurfaceCreateInfoOHOS 367 368 369``` 370typedef struct VkSurfaceCreateInfoOHOS VkSurfaceCreateInfoOHOS 371``` 372 373**Description** 374 375Defines the parameters required for creating a Vulkan surface. 376 377 378## Function Description 379 380 381### vkCreateSurfaceOHOS() 382 383 384``` 385VKAPI_ATTR VkResult VKAPI_CALL vkCreateSurfaceOHOS (VkInstance instance, const VkSurfaceCreateInfoOHOS * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface ) 386``` 387 388**Description** 389 390Creates a Vulkan surface. 391 392\@syscap SystemCapability.Graphic.Vulkan 393 394**Parameters** 395 396| Name| Description| 397| -------- | -------- | 398| instance | **Vulkan** instance.| 399| pCreateInfo | Pointer to the **VkSurfaceCreateInfoOHOS** struct, including the parameters required for creating a Vulkan surface.| 400| pAllocator | Pointer to a callback function for custom memory allocation. If custom memory allocation is not required, pass in **NULL**, and the default memory allocation function is used.| 401| pSurface | Pointer to the Vulkan surface created. The type is **VkSurfaceKHR**.| 402 403**Returns** 404 405Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 406 407 408### vkGetMemoryNativeBufferOHOS() 409 410 411``` 412VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryNativeBufferOHOS (VkDevice device, const VkMemoryGetNativeBufferInfoOHOS * pInfo, struct OH_NativeBuffer ** pBuffer ) 413``` 414 415**Description** 416 417Obtains an **OH_NativeBuffer** instance. 418 419\@syscap SystemCapability.Graphic.Vulkan 420 421**Parameters** 422 423| Name| Description| 424| -------- | -------- | 425| device | **VkDevice** instance.| 426| pInfo | Pointer to a **VkMemoryGetNativeBufferInfoOHOS** struct.| 427| pBuffer | Pointer to the **OH_NativeBuffer** obtained.| 428 429**Returns** 430 431Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 432 433 434### vkGetNativeBufferPropertiesOHOS() 435 436 437``` 438VKAPI_ATTR VkResult VKAPI_CALL vkGetNativeBufferPropertiesOHOS (VkDevice device, const struct OH_NativeBuffer * buffer, VkNativeBufferPropertiesOHOS * pProperties ) 439``` 440 441**Description** 442 443Obtains the properties of an **OH_NativeBuffer** instance. 444 445\@syscap SystemCapability.Graphic.Vulkan 446 447**Parameters** 448 449| Name| Description| 450| -------- | -------- | 451| device | **VkDevice** instance.| 452| buffer | Pointer to an **OH_NativeBuffer** struct.| 453| pProperties | Pointer to the struct holding the properties of **OH_NativeBuffer**.| 454 455**Returns** 456 457Returns **VK_SUCCESS** if the execution is successful; returns an error code of the VkResult type otherwise. 458 459 460## Variable Description 461 462 463### allocationSize 464 465 466``` 467VkDeviceSize VkNativeBufferPropertiesOHOS::allocationSize 468``` 469 470**Description** 471 472Size of the occupied memory. 473 474 475### buffer 476 477 478``` 479struct OH_NativeBuffer* VkImportNativeBufferInfoOHOS::buffer 480``` 481 482**Description** 483 484Pointer to an **OH_NativeBuffer** struct. 485 486 487### externalFormat [1/2] 488 489 490``` 491uint64_t VkNativeBufferFormatPropertiesOHOS::externalFormat 492``` 493 494**Description** 495 496Externally defined format. 497 498 499### externalFormat [2/2] 500 501 502``` 503uint64_t VkExternalFormatOHOS::externalFormat 504``` 505 506**Description** 507 508Externally defined format. 509 510 511### flags 512 513 514``` 515VkSurfaceCreateFlagsOHOS VkSurfaceCreateInfoOHOS::flags 516``` 517 518**Description** 519 520Reserved flag type. 521 522 523### format 524 525 526``` 527VkFormat VkNativeBufferFormatPropertiesOHOS::format 528``` 529 530**Description** 531 532Format properties. 533 534 535### formatFeatures 536 537 538``` 539VkFormatFeatureFlags VkNativeBufferFormatPropertiesOHOS::formatFeatures 540``` 541 542**Description** 543 544Features of the externally defined format. 545 546 547### memory 548 549 550``` 551VkDeviceMemory VkMemoryGetNativeBufferInfoOHOS::memory 552``` 553 554**Description** 555 556**VkDeviceMemory** instance. 557 558 559### memoryTypeBits 560 561 562``` 563uint32_t VkNativeBufferPropertiesOHOS::memoryTypeBits 564``` 565 566**Description** 567 568Memory type. 569 570 571### OHOSNativeBufferUsage 572 573 574``` 575uint64_t VkNativeBufferUsageOHOS::OHOSNativeBufferUsage 576``` 577 578**Description** 579 580Usage of a **NativeBuffer**. 581 582 583### pNext [1/7] 584 585 586``` 587const void* VkSurfaceCreateInfoOHOS::pNext 588``` 589 590**Description** 591 592Pointer to the next-level struct. 593 594 595### pNext [2/7] 596 597 598``` 599void* VkNativeBufferUsageOHOS::pNext 600``` 601 602**Description** 603 604Pointer to the next-level struct. 605 606 607### pNext [3/7] 608 609 610``` 611void* VkNativeBufferPropertiesOHOS::pNext 612``` 613 614**Description** 615 616Pointer to the next-level struct. 617 618 619### pNext [4/7] 620 621 622``` 623void* VkNativeBufferFormatPropertiesOHOS::pNext 624``` 625 626**Description** 627 628Pointer to the next-level struct. 629 630 631### pNext [5/7] 632 633 634``` 635const void* VkImportNativeBufferInfoOHOS::pNext 636``` 637 638**Description** 639 640Pointer to the next-level struct. 641 642 643### pNext [6/7] 644 645 646``` 647const void* VkMemoryGetNativeBufferInfoOHOS::pNext 648``` 649 650**Description** 651 652Pointer to the next-level struct. 653 654 655### pNext [7/7] 656 657 658``` 659void* VkExternalFormatOHOS::pNext 660``` 661 662**Description** 663 664Pointer to the next-level struct. 665 666 667### samplerYcbcrConversionComponents 668 669 670``` 671VkComponentMapping VkNativeBufferFormatPropertiesOHOS::samplerYcbcrConversionComponents 672``` 673 674**Description** 675 676A group of VkComponentSwizzles. 677 678 679### sType [1/7] 680 681 682``` 683VkStructureType VkSurfaceCreateInfoOHOS::sType 684``` 685 686**Description** 687 688Struct type. 689 690 691### sType [2/7] 692 693 694``` 695VkStructureType VkNativeBufferUsageOHOS::sType 696``` 697 698**Description** 699 700Struct type. 701 702 703### sType [3/7] 704 705 706``` 707VkStructureType VkNativeBufferPropertiesOHOS::sType 708``` 709 710**Description** 711 712Struct type. 713 714 715### sType [4/7] 716 717 718``` 719VkStructureType VkNativeBufferFormatPropertiesOHOS::sType 720``` 721 722**Description** 723 724Struct type. 725 726 727### sType [5/7] 728 729 730``` 731VkStructureType VkImportNativeBufferInfoOHOS::sType 732``` 733 734**Description** 735 736Struct type. 737 738 739### sType [6/7] 740 741 742``` 743VkStructureType VkMemoryGetNativeBufferInfoOHOS::sType 744``` 745 746**Description** 747 748Struct type. 749 750 751### sType [7/7] 752 753 754``` 755VkStructureType VkExternalFormatOHOS::sType 756``` 757 758**Description** 759 760Struct type. 761 762 763### suggestedXChromaOffset 764 765 766``` 767VkChromaLocation VkNativeBufferFormatPropertiesOHOS::suggestedXChromaOffset 768``` 769 770**Description** 771 772X chrominance offset. 773 774 775### suggestedYcbcrModel 776 777 778``` 779VkSamplerYcbcrModelConversion VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrModel 780``` 781 782**Description** 783 784Color model. 785 786 787### suggestedYcbcrRange 788 789 790``` 791VkSamplerYcbcrRange VkNativeBufferFormatPropertiesOHOS::suggestedYcbcrRange 792``` 793 794**Description** 795 796Color value range. 797 798 799### suggestedYChromaOffset 800 801 802``` 803VkChromaLocation VkNativeBufferFormatPropertiesOHOS::suggestedYChromaOffset 804``` 805 806**Description** 807 808Y chrominance offset. 809 810 811### window 812 813 814``` 815OHNativeWindow* VkSurfaceCreateInfoOHOS::window 816``` 817 818**Description** 819 820Pointer to an **OHNativeWindow** instance. 821