veloren_voxygen_egui/
experimental_shaders.rs

1use crate::{EguiAction, EguiActions};
2use egui::{Context, Vec2, Window};
3
4pub fn draw_experimental_shaders_window(
5    ctx: &Context,
6    open: &mut bool,
7    egui_actions: &mut EguiActions,
8    experimental_shaders: &[(String, bool)],
9) {
10    Window::new("Experimental Shaders")
11        .open(open)
12        .default_width(250.0)
13        .default_height(600.0)
14        .show(ctx, |ui| {
15            ui.spacing_mut().item_spacing = Vec2::new(10.0, 10.0);
16            experimental_shaders.iter().for_each(|(shader, enabled)| {
17                let mut enabled_mut = *enabled;
18
19                ui.checkbox(&mut enabled_mut, shader);
20
21                if enabled_mut != *enabled {
22                    egui_actions.actions.push(EguiAction::SetExperimentalShader(
23                        shader.into(),
24                        enabled_mut,
25                    ));
26                }
27            })
28        });
29}