use par_term_config::{ImageScalingMode, PowerPreference, VsyncMode};
pub trait VsyncModeWgpu {
fn to_present_mode(self) -> wgpu::PresentMode;
}
pub trait PowerPreferenceWgpu {
fn to_wgpu(self) -> wgpu::PowerPreference;
}
pub trait ImageScalingModeWgpu {
fn to_filter_mode(self) -> wgpu::FilterMode;
}
impl VsyncModeWgpu for VsyncMode {
fn to_present_mode(self) -> wgpu::PresentMode {
match self {
VsyncMode::Immediate => wgpu::PresentMode::Immediate,
VsyncMode::Mailbox => wgpu::PresentMode::Mailbox,
VsyncMode::Fifo => wgpu::PresentMode::Fifo,
}
}
}
impl PowerPreferenceWgpu for PowerPreference {
fn to_wgpu(self) -> wgpu::PowerPreference {
match self {
PowerPreference::None => wgpu::PowerPreference::None,
PowerPreference::LowPower => wgpu::PowerPreference::LowPower,
PowerPreference::HighPerformance => wgpu::PowerPreference::HighPerformance,
}
}
}
impl ImageScalingModeWgpu for ImageScalingMode {
fn to_filter_mode(self) -> wgpu::FilterMode {
match self {
ImageScalingMode::Nearest => wgpu::FilterMode::Nearest,
ImageScalingMode::Linear => wgpu::FilterMode::Linear,
}
}
}