use super::*;
#[derive(Debug, Clone)]
pub struct GpuInstance
{
pub wgpu: wgpu::Instance,
}
impl<'a> From<wgpu::Instance> for GpuInstance
{
fn from(surface: wgpu::Instance) -> Self { Self { wgpu: surface } }
}
impl<'a> From<GpuInstance> for wgpu::Instance
{
fn from(surface: GpuInstance) -> Self { surface.wgpu }
}
impl GpuInstance
{
pub fn new(desc: &InstanceDescriptor) -> Self
{
Self
{
wgpu:
wgpu::Instance::new(&wgpu::InstanceDescriptor
{
backends: desc.backends.into(),
flags: desc.wgpu.flags,
backend_options: desc.wgpu.backend_options.clone(),
}
)
}
}
}
#[non_exhaustive]
#[derive(Default, Debug, Clone)]
pub struct InstanceDescriptor
{
pub backends : BackendFlags,
pub wgpu: WgpuInstanceDescriptor,
}
#[non_exhaustive]
#[derive(Debug, Clone)]
pub struct WgpuInstanceDescriptor
{
pub flags: wgpu::InstanceFlags,
pub backend_options: wgpu::BackendOptions,
}
impl Default for WgpuInstanceDescriptor
{
fn default() -> Self {
Self { flags: Default::default(), backend_options: Default::default() }
}
}
impl Default for GpuInstance
{
fn default() -> Self {
Self::new(&___())
}
}