use std::ffi::CStr;
use ash::vk;
use gpu_allocator::MemoryLocation;
use raw_window_handle::{RawDisplayHandle, RawWindowHandle};
pub struct RenderingDeviceInfo<'a> {
pub app_name: &'a CStr,
pub gpu_validation: bool,
pub pick_device: Option<usize>, pub surface: Option<(RawDisplayHandle, RawWindowHandle)>, }
impl RenderingDeviceInfo<'_> {
pub fn with_surface(display: RawDisplayHandle, window: RawWindowHandle) -> Self {
Self {
surface: Some((display, window)),
..Default::default()
}
}
pub fn with_gpu_validation(self) -> Self {
Self {
gpu_validation: true,
..self
}
}
}
impl Default for RenderingDeviceInfo<'_> {
fn default() -> Self {
Self {
app_name: c"vka app",
gpu_validation: false,
pick_device: None,
surface: None,
}
}
}