par_term_render/
wgpu_conversions.rs1use par_term_config::{ImageScalingMode, PowerPreference, VsyncMode};
15
16pub trait VsyncModeWgpu {
18 fn to_present_mode(self) -> wgpu::PresentMode;
19}
20
21pub trait PowerPreferenceWgpu {
23 fn to_wgpu(self) -> wgpu::PowerPreference;
24}
25
26pub trait ImageScalingModeWgpu {
28 fn to_filter_mode(self) -> wgpu::FilterMode;
29}
30
31impl VsyncModeWgpu for VsyncMode {
32 fn to_present_mode(self) -> wgpu::PresentMode {
33 match self {
34 VsyncMode::Immediate => wgpu::PresentMode::Immediate,
35 VsyncMode::Mailbox => wgpu::PresentMode::Mailbox,
36 VsyncMode::Fifo => wgpu::PresentMode::Fifo,
37 }
38 }
39}
40
41impl PowerPreferenceWgpu for PowerPreference {
42 fn to_wgpu(self) -> wgpu::PowerPreference {
43 match self {
44 PowerPreference::None => wgpu::PowerPreference::None,
45 PowerPreference::LowPower => wgpu::PowerPreference::LowPower,
46 PowerPreference::HighPerformance => wgpu::PowerPreference::HighPerformance,
47 }
48 }
49}
50
51impl ImageScalingModeWgpu for ImageScalingMode {
52 fn to_filter_mode(self) -> wgpu::FilterMode {
53 match self {
54 ImageScalingMode::Nearest => wgpu::FilterMode::Nearest,
55 ImageScalingMode::Linear => wgpu::FilterMode::Linear,
56 }
57 }
58}