use crate::device::physical::PhysicalDevice;
pub use crate::extensions::{
ExtensionRestriction, ExtensionRestrictionError, OneOfRequirements, SupportedExtensionsError,
};
use crate::instance::InstanceExtensions;
use crate::Version;
use std::ffi::{CStr, CString};
use std::fmt::Formatter;
include!(concat!(env!("OUT_DIR"), "/device_extensions.rs"));
impl DeviceExtensions {
#[deprecated(
since = "0.25",
note = "Use PhysicalDevice::supported_extensions instead"
)]
pub fn supported_by_device_raw(
physical_device: PhysicalDevice,
) -> Result<Self, SupportedExtensionsError> {
Ok(*physical_device.supported_extensions())
}
#[deprecated(
since = "0.25",
note = "Use PhysicalDevice::supported_extensions instead"
)]
pub fn supported_by_device(physical_device: PhysicalDevice) -> Self {
*physical_device.supported_extensions()
}
#[deprecated(
since = "0.25",
note = "Use PhysicalDevice::required_extensions instead"
)]
pub fn required_extensions(physical_device: PhysicalDevice) -> Self {
*physical_device.required_extensions()
}
}
#[cfg(test)]
mod tests {
use crate::device::DeviceExtensions;
use std::ffi::CString;
#[test]
fn empty_extensions() {
let d: Vec<CString> = (&DeviceExtensions::none()).into();
assert!(d.iter().next().is_none());
}
#[test]
fn required_if_supported_extensions() {
assert_eq!(
DeviceExtensions::required_if_supported_extensions(),
DeviceExtensions {
khr_portability_subset: true,
..DeviceExtensions::none()
}
)
}
}