vulkan_headers/vulkan/
vulkan_screen.rs1use crate::prelude::*;
2use crate::platform::screen::*;
3use super::vulkan_core::*;
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct VkExternalFormatQNX {
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 VkImportScreenBufferInfoQNX {
16 pub sType: VkStructureType,
17 pub pNext: *const c_void,
18 pub buffer: *mut _screen_buffer,
19}
20
21#[derive(Clone, Copy)]
22#[repr(C)]
23pub struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
24 pub sType: VkStructureType,
25 pub pNext: *mut c_void,
26 pub screenBufferImport: VkBool32,
27}
28
29#[derive(Clone, Copy)]
30#[repr(C)]
31pub struct VkScreenBufferFormatPropertiesQNX {
32 pub sType: VkStructureType,
33 pub pNext: *mut c_void,
34 pub format: VkFormat,
35 pub externalFormat: u64,
36 pub screenUsage: u64,
37 pub formatFeatures: VkFormatFeatureFlags,
38 pub samplerYcbcrConversionComponents: VkComponentMapping,
39 pub suggestedYcbcrModel: VkSamplerYcbcrModelConversion,
40 pub suggestedYcbcrRange: VkSamplerYcbcrRange,
41 pub suggestedXChromaOffset: VkChromaLocation,
42 pub suggestedYChromaOffset: VkChromaLocation,
43}
44
45#[derive(Clone, Copy)]
46#[repr(C)]
47pub struct VkScreenBufferPropertiesQNX {
48 pub sType: VkStructureType,
49 pub pNext: *mut c_void,
50 pub allocationSize: VkDeviceSize,
51 pub memoryTypeBits: u32,
52}
53
54#[derive(Clone, Copy)]
55#[repr(C)]
56pub struct VkScreenSurfaceCreateInfoQNX {
57 pub sType: VkStructureType,
58 pub pNext: *const c_void,
59 pub flags: VkScreenSurfaceCreateFlagsQNX,
60 pub context: *mut _screen_context,
61 pub window: *mut _screen_window,
62}
63
64pub const VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX: VkExternalMemoryHandleTypeFlagBits = 1 << 14;
65pub const VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME: &CStr = c"VK_QNX_external_memory_screen_buffer";
66pub const VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION: u32 = 1;
67pub const VK_QNX_SCREEN_SURFACE_EXTENSION_NAME: &CStr = c"VK_QNX_screen_surface";
68pub const VK_QNX_SCREEN_SURFACE_SPEC_VERSION: u32 = 1;
69pub const VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX: VkStructureType = 1000529003;
70pub const VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX: VkStructureType = 1000529002;
71pub const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX: VkStructureType = 1000529004;
72pub const VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX: VkStructureType = 1000529001;
73pub const VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX: VkStructureType = 1000529000;
74pub const VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX: VkStructureType = 1000378000;
75
76unsafe extern "system" {
77 #[cfg(any(doc, feature = "prototypes"))]
79 pub fn vkCreateScreenSurfaceQNX(instance: VkInstance, pCreateInfo: *const VkScreenSurfaceCreateInfoQNX, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
80
81 #[cfg(any(doc, feature = "prototypes"))]
83 pub fn vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, window: *mut _screen_window) -> VkBool32;
84
85 #[cfg(any(doc, feature = "prototypes"))]
87 pub fn vkGetScreenBufferPropertiesQNX(device: VkDevice, buffer: *const _screen_buffer, pProperties: *mut VkScreenBufferPropertiesQNX) -> VkResult;
88}
89
90pub type NonNullPFN_vkCreateScreenSurfaceQNX = unsafe extern "system" fn(instance: VkInstance, pCreateInfo: *const VkScreenSurfaceCreateInfoQNX, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
91pub type NonNullPFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = unsafe extern "system" fn(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, window: *mut _screen_window) -> VkBool32;
92pub type NonNullPFN_vkGetScreenBufferPropertiesQNX = unsafe extern "system" fn(device: VkDevice, buffer: *const _screen_buffer, pProperties: *mut VkScreenBufferPropertiesQNX) -> VkResult;
93pub type PFN_vkCreateScreenSurfaceQNX = Option<NonNullPFN_vkCreateScreenSurfaceQNX>;
94pub type PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX = Option<NonNullPFN_vkGetPhysicalDeviceScreenPresentationSupportQNX>;
95pub type PFN_vkGetScreenBufferPropertiesQNX = Option<NonNullPFN_vkGetScreenBufferPropertiesQNX>;
96pub type VkScreenSurfaceCreateFlagsQNX = VkFlags;