1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//! VK_KHR_display extensions

use libc::*;
use super::*;

mod nd_handle_base_ts { pub enum VkDisplayKHR {} pub enum VkDisplayModeKHR {} }
pub type VkDisplayKHR = VK_NON_DISPATCHABLE_HANDLE!(VkDisplayKHR);
pub type VkDisplayModeKHR = VK_NON_DISPATCHABLE_HANDLE!(VkDisplayModeKHR);

pub const VK_KHR_DISPLAY_SPEC_VERSION: usize = 21;
pub const VK_KHR_DISPLAY_EXTENSION_NAME: &str = "VK_KHR_display";

pub type VkDisplayPlaneAlphaFlagsKHR = VkFlags;
pub const VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR: VkDisplayPlaneAlphaFlagsKHR = 0x01;
pub const VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR: VkDisplayPlaneAlphaFlagsKHR = 0x02;
pub const VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR: VkDisplayPlaneAlphaFlagsKHR = 0x04;
pub const VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR: VkDisplayPlaneAlphaFlagsKHR = 0x08;
pub type VkDisplayModeCreateFlagsKHR = VkFlags;
pub type VkDisplaySurfaceCreateFlagsKHR = VkFlags;

#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayPropertiesKHR
{
    pub display: VkDisplayKHR, pub displayName: *const c_char,
    pub physicalDimensions: VkExtent2D, pub physicalResolution: VkExtent2D,
    pub supportedTransforms: VkSurfaceTransformFlagsKHR, pub planeReorderPossible: VkBool32,
    pub persistentContent: VkBool32
}
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayModeParametersKHR { pub visibleRegion: VkExtent2D, pub refreshRate: u32 }
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayModePropertiesKHR
{
    pub displayMode: VkDisplayModeKHR, pub parameters: VkDisplayModeParametersKHR
}
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayModeCreateInfoKHR
{
    pub sType: VkStructureType, pub pNext: *const c_void,
    pub flags: VkDisplayModeCreateFlagsKHR, pub parameters: VkDisplayModeParametersKHR
}
impl Default for VkDisplayModeCreateInfoKHR
{
    fn default() -> Self
    {
        VkDisplayModeCreateInfoKHR { sType: VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR, .. unsafe { std::mem::zeroed() } }
    }
}

#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayPlaneCapabilitiesKHR
{
    pub supportedAlpha: VkDisplayPlaneAlphaFlagsKHR,
    pub minSrcPosition: VkOffset2D, pub maxSrcPosition: VkOffset2D,
    pub minSrcExtent: VkExtent2D, pub maxSrcExtent: VkExtent2D,
    pub minDstPosition: VkOffset2D, pub maxDstPosition: VkOffset2D,
    pub minDstExtent: VkExtent2D, pub maxDstExtent: VkExtent2D
}
#[repr(C)] #[derive(Debug, Clone, PartialEq, Eq)]
pub struct VkDisplayPlanePropertiesKHR
{
    pub currentDisplay: VkDisplayKHR, pub currentStackIndex: u32
}
#[repr(C)] #[derive(Debug, Clone, PartialEq)]
pub struct VkDisplaySurfaceCreateInfoKHR
{
    pub sType: VkStructureType, pub pNext: *const c_void,
    pub flags: VkDisplaySurfaceCreateFlagsKHR,
    pub displayMode: VkDisplayModeKHR, pub planeIndex: u32, pub planeStackIndex: u32,
    pub transform: VkSurfaceTransformFlagsKHR, pub globalAlpha: c_float,
    pub alphaMode: VkDisplayPlaneAlphaFlagsKHR, pub imageExtent: VkExtent2D
}
impl Default for VkDisplaySurfaceCreateInfoKHR
{
    fn default() -> Self
    {
        VkDisplaySurfaceCreateInfoKHR { sType: VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR, .. unsafe { std::mem::zeroed() } }
    }
}

pub type PFN_vkGetPhysicalDeviceDisplayPropertiesKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut VkDisplayPropertiesKHR) -> VkResult;
pub type PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, pProertyCount: *mut u32, pProperties: *mut VkDisplayPlanePropertiesKHR) -> VkResult;
pub type PFN_vkGetDisplayPlaneSupportedDisplayKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, planeIndex: u32, pDisplayCount: *mut u32, pDisplays: *mut VkDisplayKHR) -> VkResult;
pub type PFN_vkGetDisplayModePropertiesKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: *mut u32, pProperties: *mut VkDisplayModePropertiesKHR) -> VkResult;
pub type PFN_vkCreateDisplayModeKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: *const VkDisplayModeCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pMode: *mut VkDisplayModeKHR) -> VkResult;
pub type PFN_vkGetDisplayPlaneCapabilitiesKHR = extern "system" fn(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: u32, pCapabilities: *mut VkDisplayPlaneCapabilitiesKHR) -> VkResult;
pub type PFN_vkCreateDisplayPlaneSurfaceKHR = extern "system" fn(instance: VkInstance, pCreateInfo: *const VkDisplaySurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;

#[cfg(feature = "Implements")]
extern "system"
{
    pub fn vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice: VkPhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut VkDisplayPropertiesKHR) -> VkResult;
    pub fn vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice: VkPhysicalDevice, pPropertyCount: *mut u32, pProperties: *mut VkDisplayPlanePropertiesKHR) -> VkResult;
    pub fn vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice: VkPhysicalDevice, planeIndex: u32, pDisplayCount: *mut u32, pDisplays: *mut VkDisplayKHR) -> VkResult;
    pub fn vkGetDisplayModePropertiesKHR(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pPropertyCount: *mut u32, pProperties: *mut VkDisplayModePropertiesKHR) -> VkResult;
    pub fn vkCreateDisplayModeKHR(physicalDevice: VkPhysicalDevice, display: VkDisplayKHR, pCreateInfo: *const VkDisplayModeCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pMode: *mut VkDisplayModeKHR) -> VkResult;
    pub fn vkGetDisplayPlaneCapabilitiesKHR(physicalDevice: VkPhysicalDevice, mode: VkDisplayModeKHR, planeIndex: u32, pCapabilities: *mut VkDisplayPlaneCapabilitiesKHR) -> VkResult;
    pub fn vkCreateDisplayPlaneSurfaceKHR(instance: VkInstance, pCreateInfo: *const VkDisplaySurfaceCreateInfoKHR, pAllocator: *const VkAllocationCallbacks, pSurface: *mut VkSurfaceKHR) -> VkResult;
}