27 lines
977 B
Rust
27 lines
977 B
Rust
use super::{BrushKind, RasterToolDef, RasterToolSettings};
|
|
use eframe::egui;
|
|
use lightningbeam_core::raster_layer::RasterBlendMode;
|
|
|
|
pub struct SpongeTool;
|
|
pub static SPONGE: SpongeTool = SpongeTool;
|
|
|
|
impl RasterToolDef for SpongeTool {
|
|
fn blend_mode(&self) -> RasterBlendMode { RasterBlendMode::Sponge }
|
|
fn header_label(&self) -> &'static str { "Sponge" }
|
|
fn brush_kind(&self) -> BrushKind { BrushKind::Sponge }
|
|
fn tool_params(&self, s: &RasterToolSettings) -> [f32; 4] {
|
|
[s.sponge_mode as f32, 0.0, 0.0, 0.0]
|
|
}
|
|
fn strength_label(&self) -> &'static str { "Flow" }
|
|
fn render_ui(&self, ui: &mut egui::Ui, s: &mut RasterToolSettings) {
|
|
ui.horizontal(|ui| {
|
|
if ui.selectable_label(s.sponge_mode == 0, "Saturate").clicked() {
|
|
s.sponge_mode = 0;
|
|
}
|
|
if ui.selectable_label(s.sponge_mode == 1, "Desaturate").clicked() {
|
|
s.sponge_mode = 1;
|
|
}
|
|
});
|
|
}
|
|
}
|