diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-27 20:44:01 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-27 20:44:01 +0100 |
commit | 505560045a30dd1078480734a8cbf9b12c781170 (patch) | |
tree | 8a489e9576863d0e44b7a9cf8208a841050ab571 /client/src/interfaces | |
parent | f5caf8f9643c2e7d10afb4a83f980b1e8659eae7 (diff) | |
download | weareserver-505560045a30dd1078480734a8cbf9b12c781170.tar weareserver-505560045a30dd1078480734a8cbf9b12c781170.tar.bz2 weareserver-505560045a30dd1078480734a8cbf9b12c781170.tar.zst |
present mode setting
Diffstat (limited to 'client/src/interfaces')
-rw-r--r-- | client/src/interfaces/graphicsconfig.rs | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/client/src/interfaces/graphicsconfig.rs b/client/src/interfaces/graphicsconfig.rs index 8832e8d..0021100 100644 --- a/client/src/interfaces/graphicsconfig.rs +++ b/client/src/interfaces/graphicsconfig.rs @@ -15,8 +15,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ use super::InterfaceData; -use egui::{Grid, Slider, Widget}; +use egui::{ComboBox, Grid, Slider, Widget}; use std::sync::Arc; +use wgpu::PresentMode; pub struct GraphicsConfigInterface { pub idata: Arc<InterfaceData>, @@ -27,11 +28,21 @@ impl Widget for &mut GraphicsConfigInterface { let mut conf = self.idata.graphics_config.lock().unwrap(); Grid::new("gconf").show(ui, |ui| { ui.label("Primitive Multisampling AA"); - ui.horizontal(|ui| { - ui.radio_value(&mut conf.1.sample_count, 1, "No MSAA"); - ui.radio_value(&mut conf.1.sample_count, 2, "MSAAx2"); - ui.radio_value(&mut conf.1.sample_count, 4, "MSAAx4"); - ui.radio_value(&mut conf.1.sample_count, 8, "MSAAx8"); + ui.vertical(|ui| { + ComboBox::from_id_salt("msaa") + .selected_text(match conf.1.sample_count { + 1 => "No MSAA", + 2 => "MSAAx2", + 4 => "MSAAx4", + 8 => "MSAAx8", + _ => unreachable!(), + }) + .show_ui(ui, |ui| { + ui.selectable_value(&mut conf.1.sample_count, 1, "No MSAA"); + ui.selectable_value(&mut conf.1.sample_count, 2, "MSAAx2"); + ui.selectable_value(&mut conf.1.sample_count, 4, "MSAAx4"); + ui.selectable_value(&mut conf.1.sample_count, 8, "MSAAx8"); + }); }); ui.end_row(); ui.label("Mipmap Levels"); @@ -40,6 +51,28 @@ impl Widget for &mut GraphicsConfigInterface { ui.label("Maximum Anisotropy"); ui.add(Slider::new(&mut conf.1.max_anisotropy, 1..=32).show_value(true)); ui.end_row(); + ui.label("Present Mode"); + ui.vertical(|ui| { + ComboBox::from_id_salt("pm") + .selected_text(format!("{:?}", conf.1.present_mode)) + .show_ui(ui, |ui| { + for mode in [ + PresentMode::AutoVsync, + PresentMode::AutoNoVsync, + PresentMode::Fifo, + PresentMode::FifoRelaxed, + PresentMode::Immediate, + PresentMode::Mailbox, + ] { + ui.selectable_value( + &mut conf.1.present_mode, + mode, + format!("{mode:?}"), + ); + } + }); + }); + ui.end_row(); }); if ui.button("Apply").clicked() { conf.0 = true; |