mod large_label_format; mod label_format; pub use large_label_format::LargeLabelFormat; pub use label_format::LabelFormat; pub(crate) fn flood(source: &LargeLabelFormat, destination: &mut Vec, x: usize, y: usize, from_color: u32, to_color: u16) { let width = source.width; let destination_color = destination[x + y * width]; if destination_color != 0 { return; } let source_color = source.buffer[x + y * width]; if source_color != from_color { return; } destination[x + y * width] = to_color; if x > 0 { flood(source, destination, x-1, y, from_color, to_color); } if (x+1) < width { flood(source, destination, x+1, y, from_color, to_color); } if y > 0 { flood(source, destination, x, y-1, from_color, to_color); } if (y+1) < source.height { flood(source, destination, x, y+1, from_color, to_color); } }