add ohos surface extension

Signed-off-by: andrewhw <zhangzhao62@huawei.com>
This commit is contained in:
andrewhw 2022-08-27 10:39:32 +08:00
parent 841a390010
commit 9907f82fce
12 changed files with 376 additions and 18 deletions

View File

@ -27,14 +27,16 @@ config("vulkan_headers_config") {
include_dirs = [ "include" ]
if (is_ohos) {
defines = [ "VK_USE_PLATFORM_OHOS" ]
defines = [ "VK_USE_PLATFORM_OHOS_OPENHARMONY" ]
}
if (is_win) {
defines = [ "VK_USE_PLATFORM_WIN32_KHR" ]
}
if (is_linux) {
if (defined(vulkan_use_x11) && vulkan_use_x11) {
defines = [ "VK_USE_PLATFORM_XCB_KHR" ]
}
}
if (is_android) {
defines = [ "VK_USE_PLATFORM_ANDROID_KHR" ]
}

View File

@ -85,8 +85,7 @@
#include "vulkan_screen.h"
#endif
#ifdef VK_USE_PLATFORM_OHOS
#include <native_window/window.h>
#ifdef VK_USE_PLATFORM_OHOS_OPENHARMONY
#include "vulkan_ohos.h"
#endif

View File

@ -2952,6 +2952,18 @@ namespace VULKAN_HPP_NAMESPACE
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VkResult vkCreateOHOSSurfaceOpenHarmony(VkInstance instance,
const VkOHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VkAllocationCallbacks * pAllocator,
VkSurfaceKHR * pSurface ) const VULKAN_HPP_NOEXCEPT
{
return ::vkCreateOHOSSurfaceOpenHarmony( instance, pCreateInfo, pAllocator, pSurface );
}
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VkResult vkCreateDebugReportCallbackEXT( VkInstance instance,
@ -11378,6 +11390,13 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkGetPhysicalDeviceWin32PresentationSupportKHR_placeholder = 0;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0;
#else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0;
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0;
PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0;
@ -12426,6 +12445,12 @@ namespace VULKAN_HPP_NAMESPACE
vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) );
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) );
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
vkCreateDebugReportCallbackEXT =
PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) );

View File

@ -926,6 +926,16 @@ typedef enum VkStructureType {
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = 1000413001,
VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = 1000413002,
VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = 1000413003,
VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY = 1000451000,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY = 1000452000,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY = 1000452001,
VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY = 1000452002,
VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY = 1000452003,
VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY = 1000452004,
VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY = 1000452005,
VK_STRUCTURE_TYPE_NATIVE_BUFFER_OPENHARMONY = 1000453001,
VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY = 1000453002,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY = 1000453003,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
@ -4612,6 +4622,7 @@ typedef enum VkExternalMemoryHandleTypeFlagBits {
VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY = 0x00002000,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,

View File

@ -5644,6 +5644,19 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_ohos_surface ===
enum class OHOSSurfaceCreateFlagsBitsOpenHarmony : VkOHOSSurfaceCreateFlagsOpenHarmony
{
};
VULKAN_HPP_INLINE std::string to_string( OHOSSurfaceCreateFlagsBitsOpenHarmony )
{
return "(void)";
}
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT
@ -15626,6 +15639,17 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
using OHOSSurfaceCreateFlagsOpenHarmony = Flags<OHOSSurfaceCreateFlagsBitsOpenHarmony>;
VULKAN_HPP_INLINE std::string to_string( OHOSSurfaceCreateFlagsOpenHarmony )
{
return "{}";
}
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
using DebugReportFlagsEXT = Flags<DebugReportFlagBitsEXT>;

View File

@ -8717,6 +8717,68 @@ namespace VULKAN_HPP_NAMESPACE
}
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
template <typename Dispatch>
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
Instance::createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
return static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( pCreateInfo ),
reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
}
# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
Instance::createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
Dispatch const & d ) const
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( &createInfo ),
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createOHOSSurfaceOpenHarmony" );
}
# ifndef VULKAN_HPP_NO_SMART_HANDLE
template <typename Dispatch>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
Instance::createOHOSSurfaceOpenHarmonyUnique( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
Dispatch const & d ) const
{
VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
Result result = static_cast<Result>(
d.vkCreateOHOSSurfaceOpenHarmony( m_instance,
reinterpret_cast<const VkOHOSSurfaceCreateInfoOpenHarmony *>( &createInfo ),
reinterpret_cast<const VkAllocationCallbacks *>(
static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
ObjectDestroy<Instance, Dispatch> deleter( *this, allocator, d );
return createResultValue<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>(
result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createOHOSSurfaceOpenHarmonyUnique", deleter );
}
# endif /*VULKAN_HPP_NO_SMART_HANDLE*/
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
template <typename Dispatch>

View File

@ -414,6 +414,11 @@ namespace VULKAN_HPP_NAMESPACE
struct Win32SurfaceCreateInfoKHR;
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
struct OHOSSurfaceCreateInfoOpenHarmony;
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
struct DebugReportCallbackCreateInfoEXT;
@ -13979,6 +13984,34 @@ namespace VULKAN_HPP_NAMESPACE
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_WIN32_KHR*/
#if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD Result
createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony * pCreateInfo,
const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT;
# ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createOHOSSurfaceOpenHarmony( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
# ifndef VULKAN_HPP_NO_SMART_HANDLE
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>
VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createOHOSSurfaceOpenHarmonyUnique( const VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony & createInfo,
Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator
VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT,
Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const;
# endif /*VULKAN_HPP_NO_SMART_HANDLE*/
# endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
#endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
template <typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE>

View File

@ -17,29 +17,93 @@
extern "C" {
#endif
#define VK_OHOS_openhm_surface 1
#define VK_OHOS_OPENHM_SURFACE_SPEC_VERSION 1
#define VK_OHOS_OPENHM_SURFACE_EXTENSION_NAME "VK_OHOS_openhm_surface"
typedef VkFlags VkOpenhmSurfaceCreateFlagsOHOS;
typedef struct VkOpenhmSurfaceCreateInfoOHOS {
#define VK_OpenHarmony_OHOS_surface 1
struct NativeWindow;
#define VK_OPENHARMONY_OHOS_SURFACE_SPEC_VERSION 1
#define VK_OPENHARMONY_OHOS_SURFACE_EXTENSION_NAME "VK_OpenHarmony_OHOS_surface"
// VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY
typedef VkFlags VkOHOSSurfaceCreateFlagsOpenHarmony;
typedef struct VkOHOSSurfaceCreateInfoOpenHarmony {
VkStructureType sType;
const void* pNext;
VkOpenhmSurfaceCreateFlagsOHOS flags;
OHNativeWindow* window;
} VkOpenhmSurfaceCreateInfoOHOS;
VkOHOSSurfaceCreateFlagsOpenHarmony flags;
NativeWindow* window;
} VkOHOSSurfaceCreateInfoOpenHarmony;
typedef VkResult (VKAPI_PTR *PFN_VkCreateOpenhmSurfaceOHOS)(VkInstance instance, const VkOpenhmSurfaceCreateInfoOHOS* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
typedef VkResult (VKAPI_PTR *PFN_vkCreateOHOSSurfaceOpenHarmony)(VkInstance instance, const VkOHOSSurfaceCreateInfoOpenHarmony* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL VkCreateOpenhmSurfaceOHOS(
VKAPI_ATTR VkResult VKAPI_CALL vkCreateOHOSSurfaceOpenHarmony(
VkInstance instance,
const VkOpenhmSurfaceCreateInfoOHOS* pCreateInfo,
const VkOHOSSurfaceCreateInfoOpenHarmony* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkSurfaceKHR* pSurface);
#endif
#define VK_OpenHarmony_external_memory_OHOS_native_buffer 1
struct OH_NativeBuffer;
#define VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_SPEC_VERSION 1
#define VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_EXTENSION_NAME "VK_OpenHarmony_external_memory_OHOS_native_buffer"
typedef struct VkOHOSNativeBufferUsageOpenHarmony {
VkStructureType sType;
void* pNext;
uint64_t OHOSNativeBufferUsage;
} VkOHOSNativeBufferUsageOpenHarmony;
typedef struct VkOHOSNativeBufferPropertiesOpenHarmony {
VkStructureType sType;
void* pNext;
VkDeviceSize allocationSize;
uint32_t memoryTypeBits;
} VkOHOSNativeBufferPropertiesOpenHarmony;
typedef struct VkOHOSNativeBufferFormatPropertiesOpenHarmony {
VkStructureType sType;
void* pNext;
VkFormat format;
uint64_t externalFormat;
VkFormatFeatureFlags formatFeatures;
VkComponentMapping samplerYcbcrConversionComponents;
VkSamplerYcbcrModelConversion suggestedYcbcrModel;
VkSamplerYcbcrRange suggestedYcbcrRange;
VkChromaLocation suggestedXChromaOffset;
VkChromaLocation suggestedYChromaOffset;
} VkOHOSNativeBufferFormatPropertiesOpenHarmony;
typedef struct VkImportOHOSNativeBufferInfoOpenHarmony {
VkStructureType sType;
const void* pNext;
struct OH_NativeBuffer* buffer;
} VkImportOHOSNativeBufferInfoOpenHarmony;
typedef struct VkMemoryGetOHOSNativeBufferInfoOpenHarmony {
VkStructureType sType;
const void* pNext;
VkDeviceMemory memory;
} VkMemoryGetOHOSNativeBufferInfoOpenHarmony;
typedef struct VkExternalFormatOpenHarmony {
VkStructureType sType;
void* pNext;
uint64_t externalFormat;
} VkExternalFormatOpenHarmony;
typedef VkResult (VKAPI_PTR *PFN_vkGetOHOSNativeBufferPropertiesOpenHarmony)(VkDevice device, const struct OH_NativeBuffer* buffer, VkOHOSNativeBufferPropertiesOpenHarmony* pProperties);
typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryOHOSNativeBufferOpenHarmony)(VkDevice device, const VkMemoryGetOHOSNativeBufferInfoOpenHarmony* pInfo, struct OH_NativeBuffer** pBuffer);
#ifndef VK_NO_PROTOTYPES
VKAPI_ATTR VkResult VKAPI_CALL vkGetOHOSNativeBufferPropertiesOpenHarmony(
VkDevice device,
const struct OH_NativeBuffer* buffer,
VkOHOSNativeBufferPropertiesOpenHarmony* pProperties);
VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryOHOSNativeBufferOpenHarmony(
VkDevice device,
const VkMemoryGetOHOSNativeBufferInfoOpenHarmony* pInfo,
struct OH_NativeBuffer** pBuffer);
#endif
#ifdef __cplusplus
}
#endif

View File

@ -204,6 +204,12 @@ namespace VULKAN_HPP_NAMESPACE
PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) );
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
vkCreateOHOSSurfaceOpenHarmony =
PFN_vkCreateOHOSSurfaceOpenHarmony( vkGetInstanceProcAddr( instance, "vkCreateOHOSSurfaceOpenHarmony" ) );
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_KHR_device_group ===
vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR(
vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) );
@ -517,6 +523,13 @@ namespace VULKAN_HPP_NAMESPACE
PFN_dummy vkCreateAndroidSurfaceKHR_placeholder = 0;
# endif /*VK_USE_PLATFORM_ANDROID_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
PFN_vkCreateOHOSSurfaceOpenHarmony vkCreateOHOSSurfaceOpenHarmony = 0;
# else
PFN_dummy vkCreateOHOSSurfaceOpenHarmony_placeholder = 0;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_KHR_device_group ===
PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0;
@ -2511,6 +2524,14 @@ namespace VULKAN_HPP_NAMESPACE
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR createOHOSSurfaceOpenHarmony(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator = nullptr ) const;
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT createDebugReportCallbackEXT(
@ -12440,6 +12461,18 @@ namespace VULKAN_HPP_NAMESPACE
}
# endif /*VK_USE_PLATFORM_WIN32_KHR*/
# if defined( VK_USE_PLATFORM_OHOS_OPENHARMONY )
//=== VK_OpenHarmony_OHOS_surface ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR Instance::createOHOSSurfaceOpenHarmony(
VULKAN_HPP_NAMESPACE::OHOSSurfaceCreateInfoOpenHarmony const & createInfo,
VULKAN_HPP_NAMESPACE::Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator ) const
{
return VULKAN_HPP_RAII_NAMESPACE::SurfaceKHR( *this, createInfo, allocator );
}
# endif /*VK_USE_PLATFORM_OHOS_OPENHARMONY*/
//=== VK_EXT_debug_report ===
VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_RAII_NAMESPACE::DebugReportCallbackEXT

View File

@ -397,6 +397,11 @@ def makeGenOpts(args):
[ 'vulkan_metal.h', [ 'VK_EXT_metal_surface' ], commonSuppressExtensions ],
[ 'vulkan_screen.h', [ 'VK_QNX_screen_surface' ], commonSuppressExtensions ],
[ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ],
[ 'vulkan_ohos.h', [ 'VK_OpenHarmony_OHOS_surface',
'VK_OpenHarmony_external_memory_ohos_native_buffer'
], commonSuppressExtensions +
[ 'VK_KHR_format_feature_flags2',
] ],
]
for platform in platforms:

View File

@ -38006,6 +38006,46 @@
}
]
},
"vkCreateOHOSSurfaceOpenHarmony": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-instance-parameter",
"text": " <code>instance</code> <strong class=\"purple\">must</strong> be a valid <a href=\"#VkInstance\">VkInstance</a> handle"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pCreateInfo-parameter",
"text": " <code>pCreateInfo</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkOHOSSurfaceCreateInfoOpenHarmony\">VkOHOSSurfaceCreateInfoOpenHarmony</a> structure"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pAllocator-parameter",
"text": " If <code>pAllocator</code> is not <code>NULL</code>, <code>pAllocator</code> <strong class=\"purple\">must</strong> be a valid pointer to a valid <a href=\"#VkAllocationCallbacks\">VkAllocationCallbacks</a> structure"
},
{
"vuid": "VUID-vkCreateOHOSSurfaceOpenHarmony-pSurface-parameter",
"text": " <code>pSurface</code> <strong class=\"purple\">must</strong> be a valid pointer to a <a href=\"#VkSurfaceKHR\">VkSurfaceKHR</a> handle"
}
]
},
"VkOHOSSurfaceCreateInfoOpenHarmony": {
"(VK_KHR_surface)+(VK_OpenHarmony_OHOS_surface)": [
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-window-01248",
"text": " <code>window</code> <strong class=\"purple\">must</strong> point to a valid OHOS <code>ANativeWindow</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-sType-sType",
"text": " <code>sType</code> <strong class=\"purple\">must</strong> be <code>VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-pNext-pNext",
"text": " <code>pNext</code> <strong class=\"purple\">must</strong> be <code>NULL</code>"
},
{
"vuid": "VUID-VkOHOSSurfaceCreateInfoOpenHarmony-flags-zerobitmask",
"text": " <code>flags</code> <strong class=\"purple\">must</strong> be <code>0</code>"
}
]
},
"vkDestroySurfaceKHR": {
"(VK_KHR_surface)": [
{

View File

@ -34,6 +34,7 @@ branch of the member gitlab server.
<platform name="ggp" protect="VK_USE_PLATFORM_GGP" comment="Google Games Platform"/>
<platform name="provisional" protect="VK_ENABLE_BETA_EXTENSIONS" comment="Enable declarations for beta/provisional extensions"/>
<platform name="screen" protect="VK_USE_PLATFORM_SCREEN_QNX" comment="QNX Screen Graphics Subsystem"/>
<platform name="OHOS" protect="VK_USE_PLATFORM_OHOS_OPENHARMONY" comment="OpenHarmony Graphics Subsystem"/>
</platforms>
<tags comment="Vulkan vendor/author tags for extensions and layers">
@ -72,6 +73,8 @@ branch of the member gitlab server.
<tag name="QNX" author="BlackBerry Limited" contact="Mike Gorchak @mgorchak-blackberry"/>
<tag name="JUICE" author="Juice Technologies, Inc." contact="David McCloskey @damcclos, Dean Beeler @canadacow"/>
<tag name="FB" author="Facebook, Inc" contact="Artem Bolgar @artyom17"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Xindong Shi @stonehwsxd"/>
<tag name="OpenHarmony" author="Huawei Technologies Co. Ltd." contact="Zhao Zhang @andrew0229"/>
</tags>
<types comment="Vulkan type definitions">
@ -334,6 +337,7 @@ typedef void <name>CAMetalLayer</name>;
<type category="bitmask">typedef <type>VkFlags</type> <name>VkStreamDescriptorSurfaceCreateFlagsGGP</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkHeadlessSurfaceCreateFlagsEXT</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkScreenSurfaceCreateFlagsQNX</name>;</type>
<type category="bitmask">typedef <type>VkFlags</type> <name>VkOHOSSurfaceCreateFlagsOpenHarmony</name>;</type>
<type requires="VkPeerMemoryFeatureFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkPeerMemoryFeatureFlags</name>;</type>
<type category="bitmask" name="VkPeerMemoryFeatureFlagsKHR" alias="VkPeerMemoryFeatureFlags"/>
<type requires="VkMemoryAllocateFlagBits" category="bitmask">typedef <type>VkFlags</type> <name>VkMemoryAllocateFlags</name>;</type>
@ -1940,6 +1944,12 @@ typedef void <name>CAMetalLayer</name>;
<member noautovalidity="true">struct <type>_screen_context</type>* <name>context</name></member>
<member noautovalidity="true">struct <type>_screen_window</type>* <name>window</name></member>
</type>
<type category="struct" name="VkOHOSSurfaceCreateInfoOpenHarmony">
<member values="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"><type>VkStructureType</type> <name>sType</name></member>
<member optional="true">const <type>void</type>* <name>pNext</name></member>
<member optional="true"><type>VkOHOSSurfaceCreateInfoOpenHarmony</type> <name>flags</name></member>
<member noautovalidity="true">struct <type>NativeWindow</type>* <name>window</name></member>
</type>
<type category="struct" name="VkSurfaceFormatKHR" returnedonly="true">
<member><type>VkFormat</type> <name>format</name><comment>Supported pair of rendering format</comment></member>
<member><type>VkColorSpaceKHR</type> <name>colorSpace</name><comment>and color space for the surface</comment></member>
@ -17634,6 +17644,56 @@ typedef void <name>CAMetalLayer</name>;
<enum value="&quot;VK_EXT_extension_438&quot;" name="VK_EXT_EXTENSION_438_EXTENSION_NAME"/>
</require>
</extension>
<extension name="VK_OpenHarmony_OHOS_surface" number="452" type="instance" requires="VK_KHR_surface" platform="OHOS" author="OpenHarmony" contact="Xindong Shi @stonehwsxd" supported="vulkan">
<require>
<enum value="1" name="VK_OpenHarmony_OHOS_SURFACE_SPEC_VERSION"/>
<enum value="&quot;VK_OpenHarmony_OHOS_surface&quot;" name="VK_OpenHarmony_OHOS_SURFACE_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_SURFACE_CREATE_INFO_OPENHARMONY"/>
<type name="VkOHOSSurfaceCreateFlagsOpenHarmony"/>
<type name="VkOHOSSurfaceCreateInfoOpenHarmony"/>
<command name="vkCreateOHOSSurfaceOpenHarmony"/>
</require>
</extension>
<extension name="VK_OpenHarmony_external_memory_OHOS_native_buffer" number="453" type="device" author="OpenHarmony" requires="VK_KHR_sampler_ycbcr_conversion,VK_KHR_external_memory,VK_EXT_queue_family_foreign,VK_KHR_dedicated_allocation" platform="OHOS" contact="Zhao Zhang @andrew0229" supported="vulkan">
<require>
<enum value="1" name="VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_OpenHarmony_external_memory_OHOS_native_buffer&quot;" name="VK_OPENHARMONY_EXTERNAL_MEMORY_OHOS_NATIVE_BUFFER_EXTENSION_NAME"/>
<enum bitpos="14" extends="VkExternalMemoryHandleTypeFlagBits" name="VK_EXTERNAL_MEMORY_HANDLE_TYPE_OHOS_NATIVE_BUFFER_BIT_OPENHARMONY"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_USAGE_OPENHARMONY"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_PROPERTIES_OPENHARMONY"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_OHOS_NATIVE_BUFFER_FORMAT_PROPERTIES_OPENHARMONY"/>
<enum offset="3" extends="VkStructureType" name="VK_STRUCTURE_TYPE_IMPORT_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"/>
<enum offset="4" extends="VkStructureType" name="VK_STRUCTURE_TYPE_MEMORY_GET_OHOS_NATIVE_BUFFER_INFO_OPENHARMONY"/>
<enum offset="5" extends="VkStructureType" name="VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OPENHARMONY"/>
<type name="VkOHOSNativeBufferUsageOpenHarmony"/>
<type name="VkOHOSNativeBufferPropertiesOpenHarmony"/>
<type name="VkOHOSNativeBufferFormatPropertiesOpenHarmony"/>
<type name="VkImportOHOSNativeBufferInfoOpenHarmony"/>
<type name="VkMemoryGetOHOSNativeBufferInfoOpenHarmony"/>
<type name="VkExternalFormatOpenHarmony"/>
<command name="vkGetOHOSNativeBufferPropertiesOpenHarmony"/>
<command name="vkGetMemoryOHOSNativeBufferOpenHarmony"/>
<type name="OH_NativeBuffer"/>
</require>
</extension>
<extension name="VK_OHOS_native_buffer" number="454" type="device" author="OpenHarmony" platform="OHOS" contact="Zhao Zhang @andrew0229" supported="disabled">
<require>
<comment>VK_OHOS_native_buffer is used between the OpenharmonyOS Vulkan loader and drivers to implement the WSI extensions.</comment>
<enum value="1" name="VK_OHOS_NATIVE_BUFFER_SPEC_VERSION"/>
<enum value="&quot;VK_OHOS_native_buffer&quot;" name="VK_OHOS_NATIVE_BUFFER_EXTENSION_NAME"/>
<enum offset="0" extends="VkStructureType" name="VK_STRUCTURE_TYPE_NATIVE_BUFFER_OPENHARMONY"/>
<enum offset="1" extends="VkStructureType" name="VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OPENHARMONY"/>
<enum offset="2" extends="VkStructureType" name="VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OPENHARMONY"/>
<type name="VkNativeBufferOpenHarmony"/>
<type name="VkSwapchainImageCreateInfoOpenHarmony"/>
<type name="VkPhysicalDevicePresentationPropertiesOpenHarmony"/>
<type name="VkSwapchainImageUsageFlagBitsOpenHarmony"/>
<type name="VkSwapchainImageUsageFlagsOpenHarmony"/>
<command name="vkGetSwapchainGrallocUsageOpenHarmony"/>
<command name="vkAcquireImageOpenHarmony"/>
<command name="vkQueueSignalReleaseImageOpenHarmony"/>
</require>
</extension>
</extensions>
<formats>
<format name="VK_FORMAT_R4G4_UNORM_PACK8" class="8-bit" blockSize="1" texelsPerBlock="1" packed="8">