Skip to main content

vulkan_headers/vulkan/
vulkan_screen.rs

1use 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    /// Available if built with `prototypes`.
78    #[cfg(any(doc, feature = "prototypes"))]
79    pub fn vkCreateScreenSurfaceQNX(instance: VkInstance, pCreateInfo: *const VkScreenSurfaceCreateInfoQNX, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
80
81    /// Available if built with `prototypes`.
82    #[cfg(any(doc, feature = "prototypes"))]
83    pub fn vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice: VkPhysicalDevice, queueFamilyIndex: u32, window: *mut _screen_window) -> VkBool32;
84
85    /// Available if built with `prototypes`.
86    #[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;