pub struct Instance { /* private fields */ }Implementations§
Source§impl Instance
impl Instance
pub const SURFACE_EXTS_WINDOWS: [&'static CStr; 2]
pub const SURFACE_EXTS_WAYLAND: [&'static CStr; 2]
pub const SURFACE_EXTS_XLIB: [&'static CStr; 2]
pub const SURFACE_EXTS_XCB: [&'static CStr; 2]
pub const SURFACE_EXTS_ANDROID: [&'static CStr; 2]
pub const SURFACE_EXTS_METAL: [&'static CStr; 2]
Sourcepub fn new_with_display_extensions(
entry: Arc<Entry>,
max_api_version: ApiVersion,
display_handle: RawDisplayHandle,
layer_names: Vec<CString>,
extension_names: Vec<CString>,
) -> Result<Self, InstanceError>
pub fn new_with_display_extensions( entry: Arc<Entry>, max_api_version: ApiVersion, display_handle: RawDisplayHandle, layer_names: Vec<CString>, extension_names: Vec<CString>, ) -> Result<Self, InstanceError>
This function will figure out the required surface extensions based on display_handle
e.g. VK_KHR_surface and platform specific ones like VK_KHR_win32_surface. Will also check
if the display extensions and extension_names are supported.
Sourcepub fn new(
entry: Arc<Entry>,
max_api_version: ApiVersion,
layer_names: Vec<CString>,
extension_names: Vec<CString>,
) -> Result<Self, InstanceError>
pub fn new( entry: Arc<Entry>, max_api_version: ApiVersion, layer_names: Vec<CString>, extension_names: Vec<CString>, ) -> Result<Self, InstanceError>
Doesn’t check for extension/layer support.
pub unsafe fn new_from_create_info( entry: Arc<Entry>, create_info_builder: InstanceCreateInfoBuilder<'_>, ) -> Result<Self, InstanceError>
Sourcepub fn any_unsupported_extensions(
entry: &Entry,
layer_name: Option<&CStr>,
extension_names: Vec<CString>,
) -> VkResult<Vec<CString>>
pub fn any_unsupported_extensions( entry: &Entry, layer_name: Option<&CStr>, extension_names: Vec<CString>, ) -> VkResult<Vec<CString>>
Returns any of the provided extension_names that are unsupported by this device.
Sourcepub fn supports_extension(
entry: &Entry,
layer_name: Option<&CStr>,
extension_name: CString,
) -> VkResult<bool>
pub fn supports_extension( entry: &Entry, layer_name: Option<&CStr>, extension_name: CString, ) -> VkResult<bool>
Sourcepub fn extension_name_is_in_properties_list(
extension_properties: &Vec<ExtensionProperties>,
extension_name: CString,
) -> bool
pub fn extension_name_is_in_properties_list( extension_properties: &Vec<ExtensionProperties>, extension_name: CString, ) -> bool
Sourcepub fn physical_device_features_1_0(
&self,
physical_device_handle: PhysicalDevice,
) -> PhysicalDeviceFeatures
pub fn physical_device_features_1_0( &self, physical_device_handle: PhysicalDevice, ) -> PhysicalDeviceFeatures
Vulkan 1.0 features
Sourcepub fn physical_device_features_1_1(
&self,
physical_device_handle: PhysicalDevice,
) -> Option<PhysicalDeviceVulkan11Features>
pub fn physical_device_features_1_1( &self, physical_device_handle: PhysicalDevice, ) -> Option<PhysicalDeviceVulkan11Features>
Vulkan 1.1 features. If api version < 1.1, these cannot be populated.
Sourcepub fn physical_device_features_1_2(
&self,
physical_device_handle: PhysicalDevice,
) -> Option<PhysicalDeviceVulkan12Features>
pub fn physical_device_features_1_2( &self, physical_device_handle: PhysicalDevice, ) -> Option<PhysicalDeviceVulkan12Features>
Vulkan 1.2 features. If api version < 1.2, these cannot be populated.
pub fn enumerate_physical_devices(&self) -> VkResult<Vec<PhysicalDevice>>
Sourcepub fn required_surface_extensions(
display_handle: RawDisplayHandle,
) -> Result<&'static [&'static CStr], InstanceError>
pub fn required_surface_extensions( display_handle: RawDisplayHandle, ) -> Result<&'static [&'static CStr], InstanceError>
Query the required instance extensions for creating a surface from a display handle.
This RawDisplayHandle can typically be acquired from a window, but is usually also
accessible earlier through an “event loop” concept to allow querying required instance
extensions and creation of a compatible Vulkan instance prior to creating a window.
The returned extensions will include all extension dependencies.
Note: this function was copied from ash to allow for better dependency control.
Sourcepub fn inner(&self) -> &Instance
pub fn inner(&self) -> &Instance
Access the ash::Instance struct that self contains. Allows you to access vulkan instance
functions.