vulkan_headers/vulkan/
vulkan_ohos.rs1use crate::prelude::*;
2use crate::platform::ohos::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkExternalFormatOHOS {
8 pub sType: VkStructureType,
9 pub pNext: *mut c_void,
10 pub externalFormat: u64,
11}
12
13#[derive(Clone, Copy)]
14#[repr(C)]
15pub struct VkImportNativeBufferInfoOHOS {
16 pub sType: VkStructureType,
17 pub pNext: *const c_void,
18 pub buffer: *mut OH_NativeBuffer,
19}
20
21#[derive(Clone, Copy)]
22#[repr(C)]
23pub struct VkMemoryGetNativeBufferInfoOHOS {
24 pub sType: VkStructureType,
25 pub pNext: *const c_void,
26 pub memory: VkDeviceMemory,
27}
28
29#[derive(Clone, Copy)]
30#[repr(C)]
31pub struct VkNativeBufferFormatPropertiesOHOS {
32 pub sType: VkStructureType,
33 pub pNext: *mut c_void,
34 pub format: VkFormat,
35 pub externalFormat: u64,
36 pub formatFeatures: VkFormatFeatureFlags,
37 pub samplerYcbcrConversionComponents: VkComponentMapping,
38 pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
39 pub suggestedYcbcrRange: VkSamplerYcbcrRange,
40 pub suggestedXChromaOffset: VkChromaLocation,
41 pub suggestedYChromaOffset: VkChromaLocation,
42}
43
44#[derive(Clone, Copy)]
45#[repr(C)]
46pub struct VkNativeBufferPropertiesOHOS {
47 pub sType: VkStructureType,
48 pub pNext: *mut c_void,
49 pub allocationSize: VkDeviceSize,
50 pub memoryTypeBits: u32,
51}
52
53#[derive(Clone, Copy)]
54#[repr(C)]
55pub struct VkNativeBufferUsageOHOS {
56 pub sType: VkStructureType,
57 pub pNext: *mut c_void,
58 pub OHOSNativeBufferUsage: u64,
59}
60
61#[derive(Clone, Copy)]
62#[repr(C)]
63pub struct VkSurfaceCreateInfoOHOS {
64 pub sType: VkStructureType,
65 pub pNext: *const c_void,
66 pub flags: VkSurfaceCreateFlagsOHOS,
67 pub window: *mut OHNativeWindow,
68}
69
70pub const VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS: VkExternalMemoryHandleTypeFlagBits = 1 << 15;
71pub const VK_OHOS_EXTERNAL_MEMORY_EXTENSION_NAME: &CStr = c"VK_OHOS_external_memory";
72pub const VK_OHOS_EXTERNAL_MEMORY_SPEC_VERSION: u32 = 1;
73pub const VK_OHOS_SURFACE_EXTENSION_NAME: &CStr = c"VK_OHOS_surface";
74pub const VK_OHOS_SURFACE_SPEC_VERSION: u32 = 1;
75pub const VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS: VkStructureType = 1000452005;
76pub const VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS: VkStructureType = 1000452003;
77pub const VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS: VkStructureType = 1000452004;
78pub const VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS: VkStructureType = 1000452002;
79pub const VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS: VkStructureType = 1000452001;
80pub const VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS: VkStructureType = 1000452000;
81pub const VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS: VkStructureType = 1000685000;
82
83unsafe extern "system" {
84 #[cfg(any(doc, feature = "prototypes"))]
86 pub fn vkCreateSurfaceOHOS(instance: VkInstance, pCreateInfo: *const VkSurfaceCreateInfoOHOS, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
87
88 #[cfg(any(doc, feature = "prototypes"))]
90 pub fn vkGetMemoryNativeBufferOHOS(device: VkDevice, pInfo: *const VkMemoryGetNativeBufferInfoOHOS, pBuffer: *mut *mut OH_NativeBuffer) -> VkResult;
91
92 #[cfg(any(doc, feature = "prototypes"))]
94 pub fn vkGetNativeBufferPropertiesOHOS(device: VkDevice, buffer: *const OH_NativeBuffer, pProperties: *mut VkNativeBufferPropertiesOHOS) -> VkResult;
95}
96
97pub type NonNullPFN_vkCreateSurfaceOHOS = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkSurfaceCreateInfoOHOS, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
98pub type NonNullPFN_vkGetMemoryNativeBufferOHOS = unsafe extern "system" fn(device: VkDevice, pInfo: *const VkMemoryGetNativeBufferInfoOHOS, pBuffer: *mut *mut OH_NativeBuffer) -> VkResult;
99pub type NonNullPFN_vkGetNativeBufferPropertiesOHOS = unsafe extern "system" fn(device: VkDevice, buffer: *const OH_NativeBuffer, pProperties: *mut VkNativeBufferPropertiesOHOS) -> VkResult;
100pub type PFN_vkCreateSurfaceOHOS = Option<NonNullPFN_vkCreateSurfaceOHOS>;
101pub type PFN_vkGetMemoryNativeBufferOHOS = Option<NonNullPFN_vkGetMemoryNativeBufferOHOS>;
102pub type PFN_vkGetNativeBufferPropertiesOHOS = Option<NonNullPFN_vkGetNativeBufferPropertiesOHOS>;
103pub type VkSurfaceCreateFlagsOHOS = VkFlags;