pub fn lerp_u8(from: u8, to: u8, progress_permille: u16) -> u8Expand description
Linearly interpolates between two u8 values using permille progress.
Examples found in repository?
src/modal.rs (line 112)
100 pub fn current_with_panel(&self, bounds: Rectangle, panel: Rectangle) -> Option<ModalLayer<M>> {
101 let offscreen = offscreen_offset(bounds, panel);
102
103 match self.state {
104 ModalState::Hidden => None,
105 ModalState::Visible { modal } => Some(ModalLayer::new(modal, panel, 0, DIM_ALPHA_MAX)),
106 ModalState::Showing { modal, animation } => {
107 let progress = animation.progress_permille();
108 Some(ModalLayer::new(
109 modal,
110 panel,
111 lerp_i32(offscreen, 0, progress),
112 lerp_u8(0, DIM_ALPHA_MAX, progress),
113 ))
114 }
115 ModalState::Hiding { modal, animation } => {
116 let progress = animation.progress_permille();
117 Some(ModalLayer::new(
118 modal,
119 panel,
120 lerp_i32(0, offscreen, progress),
121 lerp_u8(DIM_ALPHA_MAX, 0, progress),
122 ))
123 }
124 }
125 }